[PATCH] D136829: [SDAG] Fix v1i8 -> 1x i32 handling in getCopyToPartsVector

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 27 07:35:44 PDT 2022


arsenm added inline comments.


================
Comment at: llvm/test/CodeGen/AMDGPU/dagcombine-v1i8-extractvecelt-crash.ll:41
+  %load = load <1 x i8>, <1 x i8> addrspace(5)* %addr, align 1
+  store <1 x i8> poison, <1 x i8> addrspace(5)* %addr, align 1
+  store <1 x i8> %load, <1 x i8> addrspace(5)* %addr, align 1
----------------
Pierre-vh wrote:
> arsenm wrote:
> > Is this store of poison really doing anything here?
> Both the stores & the loop are needed somehow, removing either makes the bug disappear - I think it simplifies everything away in those cases
I think some IR code motion is happening before that. What you really need is a value with <1 x i8> live across blocks. The final assembly hoisted the load, and only has one of the stores. Can you pre-make those changes for the original IR? The tests in amdgcn.bitcast have a bit more code to ensure we hit this path


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136829/new/

https://reviews.llvm.org/D136829



More information about the llvm-commits mailing list