[llvm-branch-commits] [llvm] [X86] Remove extra MOV after widening atomic load (PR #138635)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 13 15:28:27 PDT 2025
================
@@ -1200,6 +1200,13 @@ def : Pat<(i16 (atomic_load_nonext_16 addr:$src)), (MOV16rm addr:$src)>;
def : Pat<(i32 (atomic_load_nonext_32 addr:$src)), (MOV32rm addr:$src)>;
def : Pat<(i64 (atomic_load_nonext_64 addr:$src)), (MOV64rm addr:$src)>;
+def : Pat<(v4i32 (scalar_to_vector (i32 (anyext (i16 (atomic_load_16 addr:$src)))))),
+ (MOVDI2PDIrm addr:$src)>; // load atomic <2 x i8>
----------------
jofrn wrote:
Without loss of generality, do we not need the `v2` in `--check-prefixes=CHECK,CHECKv2-O0` due to divergence of asm? https://github.com/llvm/llvm-project/blob/d27d0c7a5266f89f9d62464e71be98421aae598d/llvm/test/CodeGen/X86/atomic-load-store.ll#L7
https://github.com/llvm/llvm-project/pull/138635
More information about the llvm-branch-commits
mailing list