[llvm] r365628 - [X86] EltsFromConsecutiveLoads - cleanup Zero/Undef/Load element collection. NFCI.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 10 06:28:13 PDT 2019
Author: rksimon
Date: Wed Jul 10 06:28:13 2019
New Revision: 365628
URL: http://llvm.org/viewvc/llvm-project?rev=365628&view=rev
Log:
[X86] EltsFromConsecutiveLoads - cleanup Zero/Undef/Load element collection. 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=365628&r1=365627&r2=365628&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Wed Jul 10 06:28:13 2019
@@ -7525,21 +7525,26 @@ static SDValue EltsFromConsecutiveLoads(
SDValue Elt = peekThroughBitcasts(Elts[i]);
if (!Elt.getNode())
return SDValue();
-
- if (Elt.isUndef())
+ if (Elt.isUndef()) {
UndefMask.setBit(i);
- else if (X86::isZeroNode(Elt) || ISD::isBuildVectorAllZeros(Elt.getNode()))
+ continue;
+ }
+ if (X86::isZeroNode(Elt) || ISD::isBuildVectorAllZeros(Elt.getNode())) {
ZeroMask.setBit(i);
- else if (ISD::isNON_EXTLoad(Elt.getNode())) {
- Loads[i] = cast<LoadSDNode>(Elt);
- LoadMask.setBit(i);
- LastLoadedElt = i;
- // Each loaded element must be the correct fractional portion of the
- // requested vector load.
- if ((NumElems * Elt.getValueSizeInBits()) != VT.getSizeInBits())
- return SDValue();
- } else
+ continue;
+ }
+
+ // Each loaded element must be the correct fractional portion of the
+ // requested vector load.
+ if ((NumElems * Elt.getValueSizeInBits()) != VT.getSizeInBits())
return SDValue();
+
+ if (!ISD::isNON_EXTLoad(Elt.getNode()))
+ return SDValue();
+
+ Loads[i] = cast<LoadSDNode>(Elt);
+ LoadMask.setBit(i);
+ LastLoadedElt = i;
}
assert((ZeroMask.countPopulation() + UndefMask.countPopulation() +
LoadMask.countPopulation()) == NumElems &&
More information about the llvm-commits
mailing list