about summary refs log tree commit diff
path: root/library/stdarch/crates/std_detect/src
diff options
context:
space:
mode:
authorAmanieu d'Antras <amanieu@gmail.com>2023-10-19 16:15:54 +0100
committerAmanieu d'Antras <amanieu@gmail.com>2023-10-21 16:29:18 +0200
commit7f5fd0955ab49f1eb7ac40828c00647818dd3d78 (patch)
tree50428d2ada3877bf16a51136606d209971dcd291 /library/stdarch/crates/std_detect/src
parent45f28923ce62f85e6f339835f2a672c72deb4b66 (diff)
downloadrust-7f5fd0955ab49f1eb7ac40828c00647818dd3d78.tar.gz
rust-7f5fd0955ab49f1eb7ac40828c00647818dd3d78.zip
Disable NEON intrinsics on big-endian ARM
These are currently broken because the order of elements inside
vectors is reversed on big-endian systems: the ARM ABI requires that
element 0 is located at the highest address of the vector type. However
LLVM intrinsics expect element 0 to be located at the lowest address.

See https://llvm.org/docs/BigEndianNEON.html and `arm_neon.h` in
Clang for more details.

Although this is a breaking change, this is acceptable for 2 reasons:
- big endian ARM targets are only tier 3.
- it is preferable to stop existing code from compiling than to let it
run and produce incorrect results.
Diffstat (limited to 'library/stdarch/crates/std_detect/src')
0 files changed, 0 insertions, 0 deletions