-
Notifications
You must be signed in to change notification settings - Fork 13.4k
[ARM][BUG] Run bad result for vect_type in arm32be #97782
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
Comments
@llvm/issue-subscribers-backend-arm Author: None (hstk30-hw)
https://godbolt.org/z/vYKsfos5o
The expected
the result is
I guess (The vectorize for big endian mode in llvm use |
@llvm/issue-subscribers-bug Author: None (hstk30-hw)
https://godbolt.org/z/vYKsfos5o
The expected
the result is
I guess (The vectorize for big endian mode in llvm use |
Hi - The last vrev64.32 looks suspicious. There is a call to bitcast here: llvm-project/llvm/lib/Target/ARM/ARMISelLowering.cpp Line 14801 in 74984de
|
Thx bro, the last |
Fixed it. |
Hi, I have a question. Is there any other BITCAST should be ARMISD::VECTOR_REG_CAST in ARMISelLowering.cpp? All bitcasts of the vector type need to be converted, is that right? for example:
|
There might well be other places where this is wrong for sure. It shouldn't matter in others though. If the element size is there same then there should not be a differences between the two operations IIRC, and if the value is all zeros (as in getZeroVector), then it would still be all-zeroes after a bitcast/VECTOR_REG_CAST. |
https://godbolt.org/z/vYKsfos5o
The expected
sr
is[73, -2280, 16380, 1023, 1023, 18, 396, 78]
the result is
[-2280, 73, 1023, 16380, 18, 1023, 78, 396]
I guess
rev
instruction is misused.(The vectorize for big endian mode in llvm use
rev
to handle byte ordering, and introduces manyrev
instrution, also some bugs.https://llvm.org/docs/BigEndianNEON.html)
The text was updated successfully, but these errors were encountered: