[llvm] r288170 - Avoid repeated calls to MVT getSizeInBits and getScalarSizeInBits(). NFCI.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 29 09:57:49 PST 2016
Author: rksimon
Date: Tue Nov 29 11:57:48 2016
New Revision: 288170
URL: http://llvm.org/viewvc/llvm-project?rev=288170&view=rev
Log:
Avoid repeated calls to MVT getSizeInBits and getScalarSizeInBits(). NFCI.
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=288170&r1=288169&r2=288170&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Tue Nov 29 11:57:48 2016
@@ -5474,6 +5474,10 @@ static bool getFauxShuffleMask(SDValue N
MVT VT = N.getSimpleValueType();
unsigned NumElts = VT.getVectorNumElements();
+ unsigned NumSizeInBits = VT.getSizeInBits();
+ unsigned NumBitsPerElt = VT.getScalarSizeInBits();
+ assert((NumBitsPerElt % 8) == 0 && (NumSizeInBits % 8) == 0 &&
+ "Expected byte aligned value types");
unsigned Opcode = N.getOpcode();
switch (Opcode) {
@@ -5481,7 +5485,7 @@ static bool getFauxShuffleMask(SDValue N
case X86ISD::VSRLI: {
uint64_t ShiftVal = N.getConstantOperandVal(1);
// Out of range bit shifts are guaranteed to be zero.
- if (VT.getScalarSizeInBits() <= ShiftVal) {
+ if (NumBitsPerElt <= ShiftVal) {
Mask.append(NumElts, SM_SentinelZero);
return true;
}
@@ -5491,8 +5495,8 @@ static bool getFauxShuffleMask(SDValue N
break;
uint64_t ByteShift = ShiftVal / 8;
- unsigned NumBytes = VT.getSizeInBits() / 8;
- unsigned NumBytesPerElt = VT.getScalarSizeInBits() / 8;
+ unsigned NumBytes = NumSizeInBits / 8;
+ unsigned NumBytesPerElt = NumBitsPerElt / 8;
Ops.push_back(N.getOperand(0));
// Clear mask to all zeros and insert the shifted byte indices.
@@ -5511,11 +5515,12 @@ static bool getFauxShuffleMask(SDValue N
}
case X86ISD::VZEXT: {
// TODO - add support for VPMOVZX with smaller input vector types.
- SDValue Op0 = N.getOperand(0);
- if (VT.getSizeInBits() != Op0.getValueSizeInBits())
+ SDValue Src = N.getOperand(0);
+ MVT SrcVT = Src.getSimpleValueType();
+ if (NumSizeInBits != SrcVT.getSizeInBits())
break;
- DecodeZeroExtendMask(Op0.getSimpleValueType().getScalarType(), VT, Mask);
- Ops.push_back(Op0);
+ DecodeZeroExtendMask(SrcVT.getScalarType(), VT, Mask);
+ Ops.push_back(Src);
return true;
}
}
More information about the llvm-commits
mailing list