[llvm] [AArch64] Fixes for BigEndian 128bit volatile, atomic and non-temporal loads/stores (PR #67413)
Victor Campos via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 26 03:35:19 PDT 2023
================
@@ -5705,11 +5705,11 @@ SDValue AArch64TargetLowering::LowerSTORE(SDValue Op,
// legalization will break up 256 bit inputs.
ElementCount EC = MemVT.getVectorElementCount();
if (StoreNode->isNonTemporal() && MemVT.getSizeInBits() == 256u &&
- EC.isKnownEven() &&
- ((MemVT.getScalarSizeInBits() == 8u ||
- MemVT.getScalarSizeInBits() == 16u ||
- MemVT.getScalarSizeInBits() == 32u ||
- MemVT.getScalarSizeInBits() == 64u))) {
+ EC.isKnownEven() && DAG.getDataLayout().isLittleEndian() &&
----------------
vhscampos wrote:
Can you please explain why this logic here is not constrained to little endian?
>From the PR description, I assumed that non-temporal stores would be now enabled for both endiannesses.
https://github.com/llvm/llvm-project/pull/67413
More information about the llvm-commits
mailing list