[llvm] [SelectionDAG] Fold low-prefix masked memops (PR #205118)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 22 11:45:58 PDT 2026
Andarwinux wrote:
It should be more aggressive to also fold this:
```llvm
define void @load_store_v32i8(ptr %0, ptr %1) {
%3 = tail call <32 x i8> @llvm.masked.load.v32i8.p0(ptr %0, <32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 false>, <32 x i8> poison)
tail call void @llvm.masked.store.v32i8.p0(<32 x i8> %3 , ptr %1, <32 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 false>)
ret void
}
define void @load_store_v33i8(ptr %0, ptr %1) {
%3 = tail call <33 x i8> @llvm.masked.load.v33i8.p0(ptr %0, <33 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 false, i1 false>, <33 x i8> poison)
tail call void @llvm.masked.store.v33i8.p0(<33 x i8> %3 , ptr %1, <33 x i1> <i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 false, i1 false>)
ret void
}
```
```asm
load_store_v32i8: # @load_store_v32i8
mov eax, 2147483647
kmovd k1, eax
vmovdqu8 ymm0 {k1} {z}, ymmword ptr [rdi]
vmovdqu8 ymmword ptr [rsi] {k1}, ymm0
vzeroupper
ret
load_store_v33i8: # @load_store_v33i8
mov eax, 2147483647
kmovq k1, rax
vmovdqu8 zmm0 {k1} {z}, zmmword ptr [rdi]
vmovdqu8 zmmword ptr [rsi] {k1}, zmm0
vzeroupper
ret
```
https://github.com/llvm/llvm-project/pull/205118
More information about the llvm-commits
mailing list