[llvm] c60b930 - Revert "[X86][CodeGen] Convert masked.load/store to CLOAD/CSTORE node only when vector size = 1"

Shengchen Kan via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 5 00:16:21 PDT 2024


Author: Shengchen Kan
Date: 2024-07-05T15:14:30+08:00
New Revision: c60b9307d003517ba8813eebc20d4a01fcbbda5c

URL: https://github.com/llvm/llvm-project/commit/c60b9307d003517ba8813eebc20d4a01fcbbda5c
DIFF: https://github.com/llvm/llvm-project/commit/c60b9307d003517ba8813eebc20d4a01fcbbda5c.diff

LOG: Revert "[X86][CodeGen] Convert masked.load/store to CLOAD/CSTORE node only when vector size = 1"

This reverts commit 74984dee51307779a3eab10a8cd6102be37e1081.

It caused AArch64 test sve-nontemporal-masked-ldst.ll to fail.

Added: 
    

Modified: 
    llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    llvm/test/CodeGen/X86/apx/cf.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index 95a7dee94f3cc..cc55d53597b65 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -4798,11 +4798,8 @@ void SelectionDAGBuilder::visitMaskedStore(const CallInst &I,
   const auto &TTI =
       TLI.getTargetMachine().getTargetTransformInfo(*I.getFunction());
   SDValue StoreNode =
-      !IsCompressing &&
-              cast<FixedVectorType>(I.getArgOperand(0)->getType())
-                      ->getNumElements() == 1 &&
-              TTI.hasConditionalLoadStoreForType(
-                  I.getArgOperand(0)->getType()->getScalarType())
+      !IsCompressing && TTI.hasConditionalLoadStoreForType(
+                            I.getArgOperand(0)->getType()->getScalarType())
           ? TLI.visitMaskedStore(DAG, sdl, getMemoryRoot(), MMO, Ptr, Src0,
                                  Mask)
           : DAG.getMaskedStore(getMemoryRoot(), sdl, Src0, Ptr, Offset, Mask,
@@ -4987,10 +4984,8 @@ void SelectionDAGBuilder::visitMaskedLoad(const CallInst &I, bool IsExpanding) {
   // variables.
   SDValue Load;
   SDValue Res;
-  if (!IsExpanding &&
-      cast<FixedVectorType>(Src0Operand->getType())->getNumElements() == 1 &&
-      TTI.hasConditionalLoadStoreForType(
-          Src0Operand->getType()->getScalarType()))
+  if (!IsExpanding && TTI.hasConditionalLoadStoreForType(
+                          Src0Operand->getType()->getScalarType()))
     Res = TLI.visitMaskedLoad(DAG, sdl, InChain, MMO, Load, Ptr, Src0, Mask);
   else
     Res = Load =

diff  --git a/llvm/test/CodeGen/X86/apx/cf.ll b/llvm/test/CodeGen/X86/apx/cf.ll
index c71d7768834f3..7db1d524ebdeb 100644
--- a/llvm/test/CodeGen/X86/apx/cf.ll
+++ b/llvm/test/CodeGen/X86/apx/cf.ll
@@ -1,5 +1,5 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc < %s -mtriple=x86_64 -mattr=+cf,+avx512f -verify-machineinstrs | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64 -mattr=+cf -verify-machineinstrs | FileCheck %s
 
 define void @basic(i32 %a, ptr %b, ptr %p, ptr %q) {
 ; CHECK-LABEL: basic:
@@ -103,24 +103,3 @@ entry:
   %2 = bitcast <1 x i64> %1 to i64
   ret i64 %2
 }
-
-define void @no_crash(ptr %p, <4 x i1> %cond1, <4 x i1> %cond2) {
-; CHECK-LABEL: no_crash:
-; CHECK:       # %bb.0: # %entry
-; CHECK-NEXT:    vpslld $31, %xmm1, %xmm1
-; CHECK-NEXT:    vptestmd %zmm1, %zmm1, %k0
-; CHECK-NEXT:    kshiftlw $12, %k0, %k0
-; CHECK-NEXT:    kshiftrw $12, %k0, %k1
-; CHECK-NEXT:    vpslld $31, %xmm0, %xmm0
-; CHECK-NEXT:    vptestmd %zmm0, %zmm0, %k0
-; CHECK-NEXT:    kshiftlw $12, %k0, %k0
-; CHECK-NEXT:    kshiftrw $12, %k0, %k2
-; CHECK-NEXT:    vmovdqu64 (%rdi), %zmm0 {%k2} {z}
-; CHECK-NEXT:    vmovdqu64 %zmm0, (%rdi) {%k1}
-; CHECK-NEXT:    vzeroupper
-; CHECK-NEXT:    retq
-entry:
-  %0 = call <4 x i64> @llvm.masked.load.v4i64.p0(ptr %p, i32 8, <4 x i1> %cond1, <4 x i64> poison)
-  call void @llvm.masked.store.v4i64.p0(<4 x i64> %0, ptr %p, i32 8, <4 x i1> %cond2)
-  ret void
-}


        


More information about the llvm-commits mailing list