[PATCH] D132634: [AArch64] Add index check before lowerInterleavedStore() uses ShuffleVectorInst's mask
Peter Rong via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 25 11:06:05 PDT 2022
Peter added inline comments.
================
Comment at: llvm/test/CodeGen/AArch64/aarch64-shuffle-undef.ll:24
+ %B = urem <32 x i16> <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>, <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
+ %S = shufflevector <32 x i16> %B, <32 x i16> %B, <32 x i32> undef
+ store <32 x i16> %S, <32 x i16>* %A2, align 64
----------------
fhahn wrote:
> can the vectors be shortened here? Does it also crash with a `poison` mask?
>From my experience, it seems only lengths of 32 will trigger the bug.
I just tested again. `undef` crashes both Debug and Release build. `poison` only crashes Debug build. This just adds the mystery for me...
I checked the failed testcases in Transform, it seems they only considered when part of the Mask is undef or poison, not the whole Mask.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D132634/new/
https://reviews.llvm.org/D132634
More information about the llvm-commits
mailing list