[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