From: Simon Pilgrim Date: Sat, 12 Jan 2019 12:00:43 +0000 (+0000) Subject: Use getShiftAmountTy for shift amounts. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=019755c53ef7b5222a7128696d09aa067e990c60;p=llvm Use getShiftAmountTy for shift amounts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351005 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 1d8615ccce9..0175bcd7339 100644 --- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -4719,6 +4719,7 @@ bool TargetLowering::expandABS(SDNode *N, SDValue &Result, SelectionDAG &DAG) const { SDLoc dl(N); EVT VT = N->getValueType(0); + EVT ShVT = getShiftAmountTy(VT, DAG.getDataLayout()); SDValue Op = N->getOperand(0); // Only expand vector types if we have the appropriate vector operations. @@ -4729,7 +4730,7 @@ bool TargetLowering::expandABS(SDNode *N, SDValue &Result, SDValue Shift = DAG.getNode(ISD::SRA, dl, VT, Op, - DAG.getConstant(VT.getScalarSizeInBits() - 1, dl, VT)); + DAG.getConstant(VT.getScalarSizeInBits() - 1, dl, ShVT)); SDValue Add = DAG.getNode(ISD::ADD, dl, VT, Op, Shift); Result = DAG.getNode(ISD::XOR, dl, VT, Add, Shift); return true;