See https://bugs.chromium.org/p/chromium/issues/detail?id=811767#c1 for reproducer.
Bisection points to this one: --- Author: evandro Date: Mon Feb 12 08:41:41 2018 New Revision: 324903 URL: http://llvm.org/viewvc/llvm-project?rev=324903&view=rev Log: [AArch64] Refactor identification of SIMD immediates Get rid of icky goto loops and make the code easier to maintain (NFC). Differential revision: https://reviews.llvm.org/D42723 Modified: llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp ---
Reverted in r325034 in the meantime
Would it be possible to attach a preprocessed version of the offending code, please?
(In reply to Evandro Menezes from comment #3) > Would it be possible to attach a preprocessed version of the offending code, > please? It was too large to attach here directly, so I added it to https://bugs.chromium.org/p/chromium/issues/detail?id=811767#c1 which I linked to above.
That file doesn't seem to be the preprocessed output that results when the -E option is specified. I'm still getting too many compilation errors and cannot confirm the fix for it. Please, attach the .i file to the Chromium bug as well.
Posted fix for review at https://reviews.llvm.org/D42133
Created attachment 19881 [details] preprocessed repro (In reply to Evandro Menezes from comment #5) > That file doesn't seem to be the preprocessed output that results when the > -E option is specified. I'm still getting too many compilation errors and > cannot confirm the fix for it. Please, attach the .i file to the Chromium > bug as well. It's the reproducer created by clang when it crashed. I think that means it's got all the #include files pulled in, but it still has other preprocessor directives. Attaching a preprocessed version which shows the error when invoked as: $ clang -cc1 -triple aarch64--linux-android -emit-obj -target-cpu generic -target-feature +neon -target-abi aapcs -Oz -std=gnu++14 -vectorize-slp -x c++ /tmp/a.ii
(In reply to Evandro Menezes from comment #6) > Posted fix for review at https://reviews.llvm.org/D42133 I applied this on top of r324903 but still get the same error using the repro in #c7.
(In reply to Hans Wennborg from comment #8) > (In reply to Evandro Menezes from comment #6) > > Posted fix for review at https://reviews.llvm.org/D42133 > > I applied this on top of r324903 but still get the same error using the > repro in #c7. Oh, or did you mean https://reviews.llvm.org/D43364 ? I applied this too, but still get the same failure.
Got it narrowed down to: define void @v2i32st(<2 x i32>* %p) nounwind { store <2 x i32> <i32 0, i32 1073741824>, <2 x i32>* %p, align 8 ret void } Thank you!
Please, confirm solution in https://reviews.llvm.org/D43364. Thank you.
(In reply to Evandro Menezes from comment #11) > Please, confirm solution in https://reviews.llvm.org/D43364. Yes, that seems to work.
I'd appreciate if you could review the patch too. Thanks for confirming this bug fixed.
(In reply to Evandro Menezes from comment #13) > I'd appreciate if you could review the patch too. Thanks for confirming > this bug fixed. Sorry, I don't know anything about aarch64 isel, so I'm not a good reviewer for this.