diff options
| author | Jubilee Young <workingjubilee@gmail.com> | 2025-06-07 11:04:40 -0700 |
|---|---|---|
| committer | Jubilee Young <workingjubilee@gmail.com> | 2025-06-09 17:40:05 -0700 |
| commit | 59069986e7446123556630a32adce7f101eeaf8d (patch) | |
| tree | 2dce3b819110684877dd738b8c822c3a50e8f649 /tests/codegen | |
| parent | f315e6145802e091ff9fceab6db627a4b4ec2b86 (diff) | |
| download | rust-59069986e7446123556630a32adce7f101eeaf8d.tar.gz rust-59069986e7446123556630a32adce7f101eeaf8d.zip | |
tests: Copy dont-shuffle-bswaps per tested opt level
Diffstat (limited to 'tests/codegen')
| -rw-r--r-- | tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs | 29 | ||||
| -rw-r--r-- | tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs (renamed from tests/codegen/dont-shuffle-bswaps.rs) | 3 |
2 files changed, 30 insertions, 2 deletions
diff --git a/tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs b/tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs new file mode 100644 index 00000000000..391cf1c639c --- /dev/null +++ b/tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs @@ -0,0 +1,29 @@ +//@ compile-flags: -Copt-level=2 + +#![crate_type = "lib"] +#![no_std] + +// The code is from https://github.com/rust-lang/rust/issues/122805. +// Ensure we do not generate the shufflevector instruction +// to avoid complicating the code. + +// CHECK-LABEL: define{{.*}}void @convert( +// CHECK-NOT: shufflevector +#[no_mangle] +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 = [ + 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) } +} diff --git a/tests/codegen/dont-shuffle-bswaps.rs b/tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs index c1dab2bc295..e105487ccca 100644 --- a/tests/codegen/dont-shuffle-bswaps.rs +++ b/tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs @@ -1,5 +1,4 @@ -//@ revisions: OPT2 OPT3 OPT3_S390X -//@[OPT2] compile-flags: -Copt-level=2 +//@ revisions: OPT3 OPT3_S390X //@[OPT3] compile-flags: -C opt-level=3 // some targets don't do the opt we are looking for //@[OPT3] only-64bit |
