From c43e709630f19f94863485b31e3c43aa052f2bdb Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Wed, 27 Mar 2019 02:08:03 +0000 Subject: [PATCH] [X86] Simplify some code in matchBitExtract by using ANY_EXTEND. We were manually outputting the code we would get from selecting ANY_EXTEND. We can save some code by just letting an ANY_EXTEND go through isel on its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357045 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86ISelDAGToDAG.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp index 5e2b90ff881..f5483ef8803 100644 --- a/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -3025,11 +3025,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) { // Great, just emit the the BZHI.. if (XVT != MVT::i32) { // But have to place the bit count into the wide-enough register first. - SDValue ImplDef = SDValue( - CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, DL, XVT), 0); - insertDAGNode(*CurDAG, SDValue(Node, 0), ImplDef); - NBits = CurDAG->getTargetInsertSubreg(X86::sub_32bit, DL, XVT, ImplDef, - NBits); + NBits = CurDAG->getNode(ISD::ANY_EXTEND, DL, XVT, NBits); insertDAGNode(*CurDAG, SDValue(Node, 0), NBits); } @@ -3072,11 +3068,7 @@ bool X86DAGToDAGISel::matchBitExtract(SDNode *Node) { // But have to place the 'control' into the wide-enough register first. if (XVT != MVT::i32) { - SDValue ImplDef = - SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, DL, XVT), 0); - insertDAGNode(*CurDAG, SDValue(Node, 0), ImplDef); - Control = CurDAG->getTargetInsertSubreg(X86::sub_32bit, DL, XVT, ImplDef, - Control); + Control = CurDAG->getNode(ISD::ANY_EXTEND, DL, XVT, Control); insertDAGNode(*CurDAG, SDValue(Node, 0), Control); } -- 2.50.1