]> granicus.if.org Git - llvm/commitdiff
[DAGCombine] visitVSELECT - use getShiftAmountTy for shift amounts.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 30 Aug 2019 13:30:37 +0000 (13:30 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 30 Aug 2019 13:30:37 +0000 (13:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370471 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index e22bd48fe6456f3642b4537d2c07f41cf78a167c..d06fc7a3d660e731785f1755b5079d3f94898aca 100644 (file)
@@ -8715,9 +8715,9 @@ SDValue DAGCombiner::visitVSELECT(SDNode *N) {
       if (TLI.isOperationLegalOrCustom(ISD::ABS, VT))
         return DAG.getNode(ISD::ABS, DL, VT, LHS);
 
-      SDValue Shift = DAG.getNode(
-          ISD::SRA, DL, VT, LHS,
-          DAG.getConstant(VT.getScalarSizeInBits() - 1, DL, VT));
+      SDValue Shift = DAG.getNode(ISD::SRA, DL, VT, LHS,
+                                  DAG.getConstant(VT.getScalarSizeInBits() - 1,
+                                                  DL, getShiftAmountTy(VT)));
       SDValue Add = DAG.getNode(ISD::ADD, DL, VT, LHS, Shift);
       AddToWorklist(Shift.getNode());
       AddToWorklist(Add.getNode());