diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-07-03 10:04:16 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-07-03 10:04:16 +0000 |
| commit | 7b7b9b78a2d87df558910714816572c24ee1d22b (patch) | |
| tree | 287006b083b3e26db054adc43df28fc044de5b61 /llvm | |
| parent | 347692e2dedb516b9a61524b1679eb21505ef0df (diff) | |
| download | bcm5719-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.cpp | 2 |
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)); } |

