From 6b0deb2161b730be16c1ec13c1ab47455c054f37 Mon Sep 17 00:00:00 2001 From: Jubilee Young Date: Sat, 7 Jun 2025 11:12:38 -0700 Subject: tests: Revise dont-shuffle-bswaps-opt3 per tested arch Some architectures gain target-cpu minimums in doing so. --- tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs | 2 ++ tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs | 29 +++++++++++------------ 2 files changed, 16 insertions(+), 15 deletions(-) (limited to 'tests/codegen') diff --git a/tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs b/tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs index 391cf1c639c..c354228acc5 100644 --- a/tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs +++ b/tests/codegen/autovec/dont-shuffle-bswaps-opt2.rs @@ -3,6 +3,8 @@ #![crate_type = "lib"] #![no_std] +// This test is paired with the arch-specific -opt3.rs test. + // 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. diff --git a/tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs b/tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs index e105487ccca..203d12005de 100644 --- a/tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs +++ b/tests/codegen/autovec/dont-shuffle-bswaps-opt3.rs @@ -1,28 +1,27 @@ -//@ 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 -//@[OPT3] ignore-s390x -//@[OPT3_S390X] compile-flags: -C opt-level=3 -C target-cpu=z13 -//@[OPT3_S390X] only-s390x +//@ revisions: AARCH64 X86_64 Z13 +//@ compile-flags: -Copt-level=3 +//@[AARCH64] only-aarch64 +//@[X86_64] only-x86_64 +//@[Z13] only-s390x +//@[Z13] compile-flags: -Ctarget-cpu=z13 #![crate_type = "lib"] #![no_std] +// This test is paired with the arch-neutral -opt2.rs test + // 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 + // On higher opt levels, this should just be a bswap: -// OPT3: load <8 x i16> -// OPT3-NEXT: call <8 x i16> @llvm.bswap -// OPT3-NEXT: store <8 x i16> -// OPT3-NEXT: ret void -// OPT3_S390X: load <8 x i16> -// OPT3_S390X-NEXT: call <8 x i16> @llvm.bswap -// OPT3_S390X-NEXT: store <8 x i16> -// OPT3_S390X-NEXT: ret void +// CHECK: load <8 x i16> +// CHECK-NEXT: call <8 x i16> @llvm.bswap +// CHECK-NEXT: store <8 x i16> +// CHECK-NEXT: ret void #[no_mangle] pub fn convert(value: [u16; 8]) -> [u8; 16] { #[cfg(target_endian = "little")] -- cgit 1.4.1-3-g733a5