Merge commit 46673763f from llvm git (by Craig Topper):
[X86] Place new constant node in topological order in X86DAGToDAGISel::matchBitExtract Fixes PR47482 This should fix 'Assertion failed: (Op->getNodeId() != -1 && "Node has already selected predecessor node"), function DoInstructionSelection, file /usr/src/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp, line 1149' when compiling part of the project_painter project, while targeting the bdver2 (or higher) CPU. Reported by: jkim MFC after: 6 weeks X-MFC-With: r364284
This commit is contained in:
parent
927c847d5f
commit
82bf979d53
@ -3496,6 +3496,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) {
|
||||
// Shift NBits left by 8 bits, thus producing 'control'.
|
||||
// This makes the low 8 bits to be zero.
|
||||
SDValue C8 = CurDAG->getConstant(8, DL, MVT::i8);
|
||||
insertDAGNode(*CurDAG, SDValue(Node, 0), C8);
|
||||
SDValue Control = CurDAG->getNode(ISD::SHL, DL, MVT::i32, NBits, C8);
|
||||
insertDAGNode(*CurDAG, SDValue(Node, 0), Control);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user