-
Notifications
You must be signed in to change notification settings - Fork 277
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
arm neon vld1*x tests fail on arm hw due to misaligned pointers #1217
Comments
The alignment should be that of |
In my test clang compiles the load with 64-bit alignment as well ( |
As we are directly calling the LLVM intrinsics here without any possibility to specify alignment solution 2) seems to be the only way. |
I agree. We can describe 1) in the document and try to find a better way in the future |
I don't know if the LLVM behavior is intended. For GCC does not even have the Fixing the test generation is a bit of a pain, but having a failing CI on native arm hw is not a good idea. Qemu will supposedly check for unaligned access in a recent or future version (Stackoverflow answer), then the GH CI will fail as well. |
Here is another test case: https://rust.godbolt.org/z/qjx6znnq4 |
Upstream issue: llvm/llvm-project#59081 |
These seem to have been introduced by recent LLVM changes. * The instruction limit for vld*/vst* has been raised. This is not a significant issue, it is only used for testing. * vld*/vst* instructions are generated with overly strict alignments: rust-lang#1217 * vtbl/vtbx instrinsics are failing intrinsic-test for unknown reasons.
These seem to have been introduced by recent LLVM changes. * The instruction limit for vld*/vst* has been raised. This is not a significant issue, it is only used for testing. * vld*/vst* instructions are generated with overly strict alignments: #1217 * vtbl/vtbx instrinsics are failing intrinsic-test for unknown reasons.
llvm/llvm-project#59081 is fixed; what is the status of this issue? |
llvm/llvm-project@a7697c8 needs to be backported to our LLVM version. |
vld1x intrinsics are compiled to have alignment requirements, e.g. the assembly emitted for:
is
and requires
a
to be 64-bit aligned (denoted by the:64
in the assembly). Clang does the same AFAICS.Two problems:
Possible solutions:
cc @SparrowLii
The text was updated successfully, but these errors were encountered: