summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2019-07-03 10:04:16 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2019-07-03 10:04:16 +0000
commit7b7b9b78a2d87df558910714816572c24ee1d22b (patch)
tree287006b083b3e26db054adc43df28fc044de5b61 /llvm
parent347692e2dedb516b9a61524b1679eb21505ef0df (diff)
downloadbcm5719-llvm-7b7b9b78a2d87df558910714816572c24ee1d22b.tar.gz
bcm5719-llvm-7b7b9b78a2d87df558910714816572c24ee1d22b.zip
[X86] LowerFunnelShift - use modulo constant shift amount.
This avoids the use of getZExtValue and uses the modulo shift amount which is whats expected for funnel shifts anyhow. llvm-svn: 365016
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 3807ad68ee9..65a72fea379 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -17831,7 +17831,7 @@ static SDValue LowerFunnelShift(SDValue Op, const X86Subtarget &Subtarget,
APInt APIntShiftAmt;
if (isConstantSplat(Amt, APIntShiftAmt)) {
- uint64_t ShiftAmt = APIntShiftAmt.getZExtValue();
+ uint64_t ShiftAmt = APIntShiftAmt.urem(VT.getScalarSizeInBits());
return DAG.getNode(IsFSHR ? X86ISD::VSHRD : X86ISD::VSHLD, DL, VT,
Op0, Op1, DAG.getConstant(ShiftAmt, DL, MVT::i8));
}
OpenPOWER on IntegriCloud