about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJubilee <46493976+workingjubilee@users.noreply.github.com>2024-06-12 03:57:22 -0700
committerGitHub <noreply@github.com>2024-06-12 03:57:22 -0700
commit0ed474a6358f56a685a3ec22914bfa9af503df56 (patch)
tree61dc8ef29bbcc90c1e1e7e537c3280c43bc2d40e
parent3997b62968fb7e724303a3c263ced064d87842d0 (diff)
parent26fa5c2c300f3c3a3ee3109c009bd4a6803a2a4c (diff)
downloadrust-0ed474a6358f56a685a3ec22914bfa9af503df56.tar.gz
rust-0ed474a6358f56a685a3ec22914bfa9af503df56.zip
Rollup merge of #126263 - nikic:s390x-codegen-test-fix, r=jieyouxu
Make issue-122805.rs big endian compatible

Instead of not generating the function at all on big endian (which makes the CHECK lines fail), instead use to_le() on big endian, so that we essentially perform a bswap for both endiannesses.
-rw-r--r--tests/codegen/issues/issue-122805.rs21
1 files changed, 12 insertions, 9 deletions
diff --git a/tests/codegen/issues/issue-122805.rs b/tests/codegen/issues/issue-122805.rs
index 6d108ada6dd..8e03c6c8884 100644
--- a/tests/codegen/issues/issue-122805.rs
+++ b/tests/codegen/issues/issue-122805.rs
@@ -39,17 +39,20 @@
 // OPT3WINX64-NEXT: store <8 x i16>
 // CHECK-NEXT: ret void
 #[no_mangle]
-#[cfg(target_endian = "little")]
 pub fn convert(value: [u16; 8]) -> [u8; 16] {
+    #[cfg(target_endian = "little")]
+    let bswap = u16::to_be;
+    #[cfg(target_endian = "big")]
+    let bswap = u16::to_le;
     let addr16 = [
-        value[0].to_be(),
-        value[1].to_be(),
-        value[2].to_be(),
-        value[3].to_be(),
-        value[4].to_be(),
-        value[5].to_be(),
-        value[6].to_be(),
-        value[7].to_be(),
+        bswap(value[0]),
+        bswap(value[1]),
+        bswap(value[2]),
+        bswap(value[3]),
+        bswap(value[4]),
+        bswap(value[5]),
+        bswap(value[6]),
+        bswap(value[7]),
     ];
     unsafe { core::mem::transmute::<_, [u8; 16]>(addr16) }
 }