]> granicus.if.org Git - llvm/commitdiff
[X86] In matchBitExtract, if we need to truncate the BEXTR make sure we put the BEXTR...
authorCraig Topper <craig.topper@intel.com>
Tue, 26 Mar 2019 05:12:23 +0000 (05:12 +0000)
committerCraig Topper <craig.topper@intel.com>
Tue, 26 Mar 2019 05:12:23 +0000 (05:12 +0000)
We were using OrigNBits, but that doesn't guarantee that it will be selected before the nodes that make up X.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356978 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelDAGToDAG.cpp

index 4cf7b02a24c9d49206665f1fa791ed71ec033166..38c1c6ba8d0ebef3217a2f1f2883e07293ca4c96 100644 (file)
@@ -3086,7 +3086,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) {
 
   // The 'X' was originally truncated. Do that now.
   if (XVT != NVT) {
-    insertDAGNode(*CurDAG, OrigNBits, Extract);
+    insertDAGNode(*CurDAG, SDValue(Node, 0), Extract);
     Extract = CurDAG->getNode(ISD::TRUNCATE, DL, NVT, Extract);
   }