[llvm] [X86] Combine `store + vselect` to `masked_store` (PR #145176)
Abhishek Kaushik via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 23 03:16:34 PDT 2025
================
@@ -53403,6 +53404,76 @@ static SDValue combineMaskedStore(SDNode *N, SelectionDAG &DAG,
return SDValue();
}
+static SDValue foldToMaskedStore(StoreSDNode *Store, SelectionDAG &DAG,
+ const SDLoc &Dl,
+ const X86Subtarget &Subtarget) {
----------------
abhishek-kaushik22 wrote:
Sorry, I was thinking that this would translate to a mstore in initial DAG and then custom lowered
```
define void @foo(<8 x i32> %x, ptr %ptr1, <8 x i1> %cmp) {
tail call void @llvm.masked.store.v8i32.p0(<8 x i32> %x, ptr %ptr1, i32 32, <8 x i1> %cmp)
ret void
}
```
Makes sense to put this in DAGCombiner, but I don't have any way to test on non-x86 platforms
https://github.com/llvm/llvm-project/pull/145176
More information about the llvm-commits
mailing list