[PATCH] D23984: [X86] Fix bug in masked compress

Elena Demikhovsky via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 31 02:06:32 PDT 2016

delena added inline comments.

Comment at: lib/Target/X86/X86ISelLowering.cpp:18874
@@ -18873,1 +18873,3 @@
+    SDValue LoadAddress = DAG.getLoad(VT, SDLoc(Op), Chain, Addr,
+                         MemIntr->getPointerInfo(), MemIntr->getAlignment());
We discussed with Igor and got into conclusion that this solution is not safe. The existing solution has the same problem.
If any of subsequent optimizations will break the store-vselect-compess sequence it may end up with memory exception.
In all other cases we handle masked store as a sole node in order to exclude this situation.

I suggest to add "IsCompressed" flag to MaskedStoreSDNode and than use it for COMPRESS_TO_MEM. Igor implemented masked_truncstore, you can take a look.


More information about the llvm-commits mailing list