Without an additional check for NEON, the compiler crashes during legalization of vldN/vstN.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Thanks, Jeroen! This makes sense to me. I think we also need a test for the interleaved store lowering (I see that there is only a test for loads).
Also, would we need a similar change for AArch64?
Thanks,
Silviu
test/CodeGen/ARM/arm-interleaved-accesses-bug.ll | ||
---|---|---|
1 ↗ | (On Diff #36731) | Is -mcpu=cortex-a9 required here? |
Ouch! Thanks for the fix. :)
Could you add that run line to the existing test file and CHECK-NOTs to the respective places instead of in a new file?
@rengolin If it is possible to conditionalize the CHECK-NOT on the run line. Is that possible? I haven't seen that before.
test/CodeGen/ARM/arm-interleaved-accesses-bug.ll | ||
---|---|---|
1 ↗ | (On Diff #36731) | This was the easiest way for me to reproduce the crash. Just disabling NEON didn't do the trick. I'll have a look at exactly which attributes are needed to hit this particular code path. |
test/CodeGen/ARM/arm-interleaved-accesses-bug.ll | ||
---|---|---|
1 ↗ | (On Diff #36731) | Strange. This still triggers for me after removing the -mcpu. |
test/CodeGen/ARM/arm-interleaved-accesses-bug.ll | ||
---|---|---|
1 ↗ | (On Diff #36731) | I might have been using a different triple before. Dropping -mcpu also works for me. I'll drop it. |
Yeah, you just add:
; RUN: llc -mtriple=armv7a-eabi -mattr=-neon < %s | FileCheck --check-prefix=NONEON %s
then
; CHECK-NONEON-NOT: vld2
etc.
Also fix AArch64 and add the run line to existing test file instead (this also adds coverage for store tests).