diff options
| author | Jubilee <46493976+workingjubilee@users.noreply.github.com> | 2024-06-12 03:57:22 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-12 03:57:22 -0700 |
| commit | 0ed474a6358f56a685a3ec22914bfa9af503df56 (patch) | |
| tree | 61dc8ef29bbcc90c1e1e7e537c3280c43bc2d40e | |
| parent | 3997b62968fb7e724303a3c263ced064d87842d0 (diff) | |
| parent | 26fa5c2c300f3c3a3ee3109c009bd4a6803a2a4c (diff) | |
| download | rust-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.rs | 21 |
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) } } |
