diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-12-02 12:34:57 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-12-02 16:29:37 +0000 |
commit | 0dab7ecc5dd1e34267dba4cb1595a70f1d08aa58 (patch) | |
tree | 52b6c140b040ccaa5b7c0883b5ecd5babde9bd46 /llvm/lib | |
parent | 21d74172dff79378c5c45ca21b7faa70df64f41a (diff) | |
download | llvm-0dab7ecc5dd1e34267dba4cb1595a70f1d08aa58.zip llvm-0dab7ecc5dd1e34267dba4cb1595a70f1d08aa58.tar.gz llvm-0dab7ecc5dd1e34267dba4cb1595a70f1d08aa58.tar.bz2 |
[X86] EltsFromConsecutiveLoads - pull out repeated NumLoadedElts. NFCI.
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 3020354..eefd721 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -8414,7 +8414,8 @@ static SDValue EltsFromConsecutiveLoads(EVT VT, ArrayRef<SDValue> Elts, assert(LDBase && "Did not find base load for merging consecutive loads"); unsigned BaseSizeInBits = EltBaseVT.getStoreSizeInBits(); unsigned BaseSizeInBytes = BaseSizeInBits / 8; - int LoadSizeInBits = (1 + LastLoadedElt - FirstLoadedElt) * BaseSizeInBits; + int NumLoadedElts = (1 + LastLoadedElt - FirstLoadedElt); + int LoadSizeInBits = NumLoadedElts * BaseSizeInBits; assert((BaseSizeInBits % 8) == 0 && "Sub-byte element loads detected"); // TODO: Support offsetting the base load. @@ -8476,7 +8477,7 @@ static SDValue EltsFromConsecutiveLoads(EVT VT, ArrayRef<SDValue> Elts, // base pointer. If the vector contains zeros, then attempt to shuffle those // elements. if (FirstLoadedElt == 0 && - (LastLoadedElt == (int)(NumElems - 1) || IsDereferenceable) && + (NumLoadedElts == (int)NumElems || IsDereferenceable) && (IsConsecutiveLoad || IsConsecutiveLoadWithZeros)) { if (isAfterLegalize && !TLI.isOperationLegal(ISD::LOAD, VT)) return SDValue(); |