[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