[compiler-rt] [compiler-rt] Make Arm builtins aware of endianness in VMOVs (PR #123204)
Peter Smith via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 20 08:57:55 PST 2025
================
@@ -24,7 +24,7 @@ DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp)
#else
vmov s15, r0 // move int to float register s15
vcvt.f64.u32 d7, s15 // convert 32-bit int in s15 to double in d7
- vmov r0, r1, d7 // move d7 to result register pair r0/r1
+ VMOV_FROM_DOUBLE(r0, r1, r7) // move d7 to result register pair r0/r1
----------------
smithp35 wrote:
It looks like the compiler-rt test suite would have caught this if it were built and run on exactly the right target with test/floatunssidfvfp_test.c
It looks like the little-endian side should be tested via the clang-armv7-2stage https://lab.llvm.org/buildbot/#/builders/79 as that will run the compiler-rt unit tests directly.
Testing big-endian is more difficult as we'd likely need to find a very old linux big-endian eabihf sysroot and use qemu-arm as our test executor.
https://github.com/llvm/llvm-project/pull/123204
More information about the llvm-commits
mailing list