-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AArch64] Crash in call lowering for function taking vector of non-p2 integer type on big endian #103032
Comments
@llvm/issue-subscribers-backend-aarch64 Author: Alex Rønne Petersen (alexrp)
```llvm
target datalayout = "E-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64_be-unknown-linux-musl"
define fastcc void @foo(<4 x i6> %0) {
|
BE is not supported for AArch64 and GlobalIsel, Please use little endian. |
We should be falling back to SDAG before we get to the point of crashing. We already fall back, but it continues on getting as far as loweringArguments. #103310 will make sure we bail out earlier and is one fix until the crashes are fixed. |
Yourare not running the current toolchain. The repo has no assert at: |
I tried your example with a current toolchain:
The assert is indeed in upstream:
Maybe BE was just a teaser and the real issue is the odd parameter. |
I definitely can't speak to the internals of GlobalISel, but fwiw, the repro above works fine if you change it to LE ( |
If we continue through the function we can currently hit crashes. We can bail out early and fall back to SDAG. Fixes #103032
/cherry-pick 05d17a1 |
If we continue through the function we can currently hit crashes. We can bail out early and fall back to SDAG. Fixes llvm#103032 (cherry picked from commit 05d17a1)
/pull-request #104823 |
If we continue through the function we can currently hit crashes. We can bail out early and fall back to SDAG. Fixes llvm#103032 (cherry picked from commit 05d17a1)
The text was updated successfully, but these errors were encountered: