diff --git a/src/doc/rustc-dev-guide/src/tests/directives.md b/src/doc/rustc-dev-guide/src/tests/directives.md index 5468fff2b7775..2146134307b3e 100644 --- a/src/doc/rustc-dev-guide/src/tests/directives.md +++ b/src/doc/rustc-dev-guide/src/tests/directives.md @@ -217,15 +217,15 @@ The following directives will check rustc build settings and target settings: The following directives will check LLVM support: -- `exact-llvm-major-version: 19` — ignores if the llvm major version does not - match the specified llvm major version. -- `min-llvm-version: 13.0` — ignored if the LLVM version is less than the given value -- `min-system-llvm-version: 12.0` — ignored if using a system LLVM and its - version is less than the given value -- `max-llvm-major-version: 19` — ignored if the LLVM major version is higher - than the given major version -- `ignore-llvm-version: 9.0` — ignores a specific LLVM version -- `ignore-llvm-version: 7.0 - 9.9.9` — ignores LLVM versions in a range (inclusive) +- `llvm-version: cmp` — ignore if the LLVM version doesn't match the comparator; examples of comparators that can be used: + - `=22` — ignored if the LLVM major version does not match the given value + - `>=22` — ignored if the LLVM major version is less than the given value + - `<=22` — ignored if the LLVM major version is higher than the given major version + - `>=22, <=23` — ignored if the LLVM major version is outside the given range + - all of the above can specify minor and patch version too, `=22.1`, `<=22.1`, `>=22.1` + - for a full list see [`semver` crate documentation](https://docs.rs/semver/latest/semver/struct.Comparator.html) +- `system-llvm-version: cmp` — ignored if using a system LLVM and its version does not match the comparator; see above for examples of comparators +- `ignore-llvm-version: cmp` — ignored if LLVM version **matches** the comparator; see above for examples of comparators - `needs-llvm-components: powerpc` — ignores if the specific LLVM component was not built. Note: The test will fail on CI (when `COMPILETEST_REQUIRE_ALL_LLVM_COMPONENTS` is set) if the component does not exist. diff --git a/src/tools/compiletest/src/directives.rs b/src/tools/compiletest/src/directives.rs index dc10430f038ec..b525316a173d7 100644 --- a/src/tools/compiletest/src/directives.rs +++ b/src/tools/compiletest/src/directives.rs @@ -805,36 +805,14 @@ fn parse_normalize_rule(raw_value: &str) -> Option<(String, String)> { Some((regex, replacement)) } -/// Given an llvm version string that looks like `1.2.3-rc1`, extract as semver. Note that this -/// accepts more than just strict `semver` syntax (as in `major.minor.patch`); this permits omitting -/// minor and patch version components so users can write e.g. `//@ min-llvm-version: 19` instead of -/// having to write `//@ min-llvm-version: 19.0.0`. +/// Given an llvm version string that looks like `1.2.3-rc1`, extract as semver. /// /// Currently panics if the input string is malformed, though we really should not use panic as an /// error handling strategy. /// /// FIXME(jieyouxu): improve error handling pub(crate) fn extract_llvm_version(version: &str) -> Version { - // The version substring we're interested in usually looks like the `1.2.3`, without any of the - // fancy suffix like `-rc1` or `meow`. - let version = version.trim(); - let uninterested = |c: char| !c.is_ascii_digit() && c != '.'; - let version_without_suffix = match version.split_once(uninterested) { - Some((prefix, _suffix)) => prefix, - None => version, - }; - - let components: Vec = version_without_suffix - .split('.') - .map(|s| s.parse().expect("llvm version component should consist of only digits")) - .collect(); - - match &components[..] { - [major] => Version::new(*major, 0, 0), - [major, minor] => Version::new(*major, *minor, 0), - [major, minor, patch] => Version::new(*major, *minor, *patch), - _ => panic!("malformed llvm version string, expected only 1-3 components: {version}"), - } + version.parse().expect("malformed LLVM version") } pub(crate) fn extract_llvm_version_from_binary(binary_path: &str) -> Option { @@ -844,7 +822,7 @@ pub(crate) fn extract_llvm_version_from_binary(binary_path: &str) -> Option) -> IgnoreDecision { }; } } - if let Some(actual_version) = &config.llvm_version { - // Note that these `min` versions will check for not just major versions. - if let Some(version_string) = config.parse_name_value_directive(line, "min-llvm-version") { - let min_version = extract_llvm_version(&version_string); - // Ignore if actual version is smaller than the minimum required version. - if *actual_version < min_version { - return IgnoreDecision::Ignore { - reason: format!( - "ignored when the LLVM version {actual_version} is older than {min_version}" - ), - }; - } - } else if let Some(version_string) = - config.parse_name_value_directive(line, "max-llvm-major-version") - { - let max_version = extract_llvm_version(&version_string); - // Ignore if actual major version is larger than the maximum required major version. - if actual_version.major > max_version.major { + if let Some(llvm_version) = &config.llvm_version { + if let Some(version_req) = config.parse_name_value_directive(line, "llvm-version") { + let version_req = semver::VersionReq::parse(&version_req) + .expect("malformed llvm version requirement"); + + if !version_req.matches(llvm_version) { return IgnoreDecision::Ignore { reason: format!( - "ignored when the LLVM version ({actual_version}) is newer than major\ - version {}", - max_version.major + "ignored when the LLVM version {llvm_version} does not match requirement {version_req}" ), }; } - } else if let Some(version_string) = - config.parse_name_value_directive(line, "min-system-llvm-version") - { - let min_version = extract_llvm_version(&version_string); - // Ignore if using system LLVM and actual version - // is smaller the minimum required version - if config.system_llvm && *actual_version < min_version { + } + + if let Some(version_req) = config.parse_name_value_directive(line, "system-llvm-version") { + let version_req = semver::VersionReq::parse(&version_req) + .expect("malformed llvm version requirement"); + + // Ignore if using system LLVM and its version doesn't match the requirement + if config.system_llvm && !version_req.matches(llvm_version) { return IgnoreDecision::Ignore { reason: format!( - "ignored when the system LLVM version {actual_version} is older than {min_version}" + "ignored when the system LLVM version {llvm_version} does not match requirement {version_req}" ), }; } - } else if let Some(version_range) = + } else if let Some(version_req) = config.parse_name_value_directive(line, "ignore-llvm-version") { - // Syntax is: "ignore-llvm-version: [- ]" - let (v_min, v_max) = - extract_version_range(&version_range, |s| Some(extract_llvm_version(s))) - .unwrap_or_else(|| { - panic!("couldn't parse version range: \"{version_range}\""); - }); - if v_max < v_min { - panic!("malformed LLVM version range where {v_max} < {v_min}") - } - // Ignore if version lies inside of range. - if *actual_version >= v_min && *actual_version <= v_max { - if v_min == v_max { - return IgnoreDecision::Ignore { - reason: format!("ignored when the LLVM version is {actual_version}"), - }; - } else { - return IgnoreDecision::Ignore { - reason: format!( - "ignored when the LLVM version is between {v_min} and {v_max}" - ), - }; - } - } - } else if let Some(version_string) = - config.parse_name_value_directive(line, "exact-llvm-major-version") - { - // Syntax is "exact-llvm-major-version: " - let version = extract_llvm_version(&version_string); - if actual_version.major != version.major { + let version_req = semver::VersionReq::parse(&version_req) + .expect("malformed llvm version requirement"); + + // Ignore if version matches the requirement + if version_req.matches(llvm_version) { return IgnoreDecision::Ignore { reason: format!( - "ignored when the actual LLVM major version is {}, but the test only targets major version {}", - actual_version.major, version.major + "ignored when the system LLVM version {llvm_version} matches requirement {version_req}" ), }; } } } + IgnoreDecision::Continue } diff --git a/src/tools/compiletest/src/directives/directive_names.rs b/src/tools/compiletest/src/directives/directive_names.rs index b73e782252148..46fbd7bd181de 100644 --- a/src/tools/compiletest/src/directives/directive_names.rs +++ b/src/tools/compiletest/src/directives/directive_names.rs @@ -35,7 +35,6 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[ "dont-require-annotations", "edition", "error-pattern", - "exact-llvm-major-version", "exec-env", "failure-status", "filecheck-flags", @@ -156,13 +155,11 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[ "lldb-command", "lldb-repr", "llvm-cov-flags", - "max-llvm-major-version", + "llvm-version", "min-apple-lldb-version", "min-cdb-version", "min-gdb-version", "min-llvm-lldb-version", - "min-llvm-version", - "min-system-llvm-version", "minicore-compile-flags", "needs-asm-ret", "needs-asm-support", @@ -301,6 +298,7 @@ pub(crate) const KNOWN_DIRECTIVE_NAMES: &[&str] = &[ "should-fail", "skip-filecheck", "stderr-per-bitwidth", + "system-llvm-version", "test-mir-pass", "unique-doc-out-dir", "unset-exec-env", diff --git a/src/tools/compiletest/src/directives/tests.rs b/src/tools/compiletest/src/directives/tests.rs index 992ace208a42f..6ce24bb6ba332 100644 --- a/src/tools/compiletest/src/directives/tests.rs +++ b/src/tools/compiletest/src/directives/tests.rs @@ -6,8 +6,8 @@ use semver::Version; use crate::common::{Config, Debugger, TestMode}; use crate::directives::{ self, AuxProps, DIRECTIVE_HANDLERS_MAP, DirectivesCache, EarlyProps, Edition, EditionRange, - FileDirectives, KNOWN_DIRECTIVE_NAMES_SET, LineNumber, extract_llvm_version, - extract_version_range, line_directive, parse_edition, parse_normalize_rule, + FileDirectives, KNOWN_DIRECTIVE_NAMES_SET, LineNumber, extract_llvm_version, line_directive, + parse_edition, parse_normalize_rule, }; use crate::executor::{CollectedTestDesc, ShouldFail, TestVariant}; @@ -319,52 +319,52 @@ fn revisions() { #[test] fn llvm_version() { let config: Config = cfg().llvm_version("8.1.2").build(); - assert!(check_ignore(&config, "//@ min-llvm-version: 9.0")); + assert!(check_ignore(&config, "//@ llvm-version: >=9.0")); let config: Config = cfg().llvm_version("9.0.1").build(); - assert!(check_ignore(&config, "//@ min-llvm-version: 9.2")); + assert!(check_ignore(&config, "//@ llvm-version: >=9.2")); let config: Config = cfg().llvm_version("9.3.1").build(); - assert!(!check_ignore(&config, "//@ min-llvm-version: 9.2")); + assert!(!check_ignore(&config, "//@ llvm-version: >=9.2")); let config: Config = cfg().llvm_version("10.0.0").build(); - assert!(!check_ignore(&config, "//@ min-llvm-version: 9.0")); + assert!(!check_ignore(&config, "//@ llvm-version: >=9.0")); let config: Config = cfg().llvm_version("10.0.0").build(); - assert!(check_ignore(&config, "//@ exact-llvm-major-version: 9.0")); + assert!(check_ignore(&config, "//@ llvm-version: =9")); let config: Config = cfg().llvm_version("9.0.0").build(); - assert!(check_ignore(&config, "//@ exact-llvm-major-version: 10.0")); + assert!(check_ignore(&config, "//@ llvm-version: =10.0")); let config: Config = cfg().llvm_version("10.0.0").build(); - assert!(!check_ignore(&config, "//@ exact-llvm-major-version: 10.0")); + assert!(!check_ignore(&config, "//@ llvm-version: =10.0")); let config: Config = cfg().llvm_version("10.0.0").build(); - assert!(!check_ignore(&config, "//@ exact-llvm-major-version: 10")); + assert!(!check_ignore(&config, "//@ llvm-version: =10")); let config: Config = cfg().llvm_version("10.6.2").build(); assert!(!check_ignore(&config, "//@ exact-llvm-major-version: 10")); let config: Config = cfg().llvm_version("19.0.0").build(); - assert!(!check_ignore(&config, "//@ max-llvm-major-version: 19")); + assert!(!check_ignore(&config, "//@ llvm-version: <=19")); let config: Config = cfg().llvm_version("19.1.2").build(); - assert!(!check_ignore(&config, "//@ max-llvm-major-version: 19")); + assert!(!check_ignore(&config, "//@ llvm-version: <=19")); let config: Config = cfg().llvm_version("20.0.0").build(); - assert!(check_ignore(&config, "//@ max-llvm-major-version: 19")); + assert!(check_ignore(&config, "//@ llvm-version: <=19")); } #[test] fn system_llvm_version() { let config: Config = cfg().system_llvm(true).llvm_version("17.0.0").build(); - assert!(check_ignore(&config, "//@ min-system-llvm-version: 18.0")); + assert!(check_ignore(&config, "//@ system-llvm-version: >=18")); let config: Config = cfg().system_llvm(true).llvm_version("18.0.0").build(); - assert!(!check_ignore(&config, "//@ min-system-llvm-version: 18.0")); + assert!(!check_ignore(&config, "//@ system-llvm-version: >=18")); let config: Config = cfg().llvm_version("17.0.0").build(); - assert!(!check_ignore(&config, "//@ min-system-llvm-version: 18.0")); + assert!(!check_ignore(&config, "//@ system-llvm-version: >=18")); } #[test] @@ -533,26 +533,35 @@ fn channel() { #[test] fn test_extract_llvm_version() { - // Note: officially, semver *requires* that versions at the minimum have all three - // `major.minor.patch` numbers, though for test-writer's convenience we allow omitting the minor - // and patch numbers (which will be stubbed out as 0). - assert_eq!(extract_llvm_version("0"), Version::new(0, 0, 0)); - assert_eq!(extract_llvm_version("0.0"), Version::new(0, 0, 0)); + fn version_with_pre(major: u64, minor: u64, patch: u64, pre: &str) -> Version { + Version { + major, + minor, + patch, + pre: semver::Prerelease::new(pre).unwrap(), + build: semver::BuildMetadata::EMPTY, + } + } + assert_eq!(extract_llvm_version("0.0.0"), Version::new(0, 0, 0)); - assert_eq!(extract_llvm_version("1"), Version::new(1, 0, 0)); - assert_eq!(extract_llvm_version("1.2"), Version::new(1, 2, 0)); assert_eq!(extract_llvm_version("1.2.3"), Version::new(1, 2, 3)); - assert_eq!(extract_llvm_version("4.5.6git"), Version::new(4, 5, 6)); - assert_eq!(extract_llvm_version("4.5.6-rc1"), Version::new(4, 5, 6)); - assert_eq!(extract_llvm_version("123.456.789-rc1"), Version::new(123, 456, 789)); - assert_eq!(extract_llvm_version("8.1.2-rust"), Version::new(8, 1, 2)); - assert_eq!(extract_llvm_version("9.0.1-rust-1.43.0-dev"), Version::new(9, 0, 1)); - assert_eq!(extract_llvm_version("9.3.1-rust-1.43.0-dev"), Version::new(9, 3, 1)); - assert_eq!(extract_llvm_version("10.0.0-rust"), Version::new(10, 0, 0)); + // assert_eq!(extract_llvm_version("4.5.6git"), Version::new(4, 5, 6)); + assert_eq!(extract_llvm_version("4.5.6-rc1"), version_with_pre(4, 5, 6, "rc1")); + assert_eq!(extract_llvm_version("123.456.789-rc1"), version_with_pre(123, 456, 789, "rc1")); + assert_eq!(extract_llvm_version("8.1.2-rust"), version_with_pre(8, 1, 2, "rust")); + assert_eq!( + extract_llvm_version("9.0.1-rust-1.43.0-dev"), + version_with_pre(9, 0, 1, "rust-1.43.0-dev") + ); + assert_eq!( + extract_llvm_version("9.3.1-rust-1.43.0-dev"), + version_with_pre(9, 3, 1, "rust-1.43.0-dev") + ); + assert_eq!(extract_llvm_version("10.0.0-rust"), version_with_pre(10, 0, 0, "rust")); assert_eq!(extract_llvm_version("11.1.0"), Version::new(11, 1, 0)); - assert_eq!(extract_llvm_version("12.0.0libcxx"), Version::new(12, 0, 0)); - assert_eq!(extract_llvm_version("12.0.0-rc3"), Version::new(12, 0, 0)); - assert_eq!(extract_llvm_version("13.0.0git"), Version::new(13, 0, 0)); + // assert_eq!(extract_llvm_version("12.0.0libcxx"), Version::new(12, 0, 0)); + assert_eq!(extract_llvm_version("12.0.0-rc3"), version_with_pre(12, 0, 0, "rc3")); + // assert_eq!(extract_llvm_version("13.0.0git"), Version::new(13, 0, 0)); } #[test] @@ -573,27 +582,6 @@ fn test_llvm_version_too_many_components() { extract_llvm_version("4.5.6.7"); } -#[test] -fn test_extract_version_range() { - let wrapped_extract = |s: &str| Some(extract_llvm_version(s)); - - assert_eq!( - extract_version_range("1.2.3 - 4.5.6", wrapped_extract), - Some((Version::new(1, 2, 3), Version::new(4, 5, 6))) - ); - assert_eq!( - extract_version_range("0 - 4.5.6", wrapped_extract), - Some((Version::new(0, 0, 0), Version::new(4, 5, 6))) - ); - assert_eq!(extract_version_range("1.2.3 -", wrapped_extract), None); - assert_eq!(extract_version_range("1.2.3 - ", wrapped_extract), None); - assert_eq!(extract_version_range("- 4.5.6", wrapped_extract), None); - assert_eq!(extract_version_range("-", wrapped_extract), None); - assert_eq!(extract_version_range(" - 4.5.6", wrapped_extract), None); - assert_eq!(extract_version_range(" - 4.5.6", wrapped_extract), None); - assert_eq!(extract_version_range("0 -", wrapped_extract), None); -} - #[test] #[should_panic(expected = "duplicate revision: `rpass1` in line ` rpass1 rpass1`")] fn test_duplicate_revisions() { diff --git a/tests/assembly-llvm/asm/loongarch-type.rs b/tests/assembly-llvm/asm/loongarch-type.rs index 5efad583a39df..057b75a62aa7f 100644 --- a/tests/assembly-llvm/asm/loongarch-type.rs +++ b/tests/assembly-llvm/asm/loongarch-type.rs @@ -8,7 +8,7 @@ //@[loongarch32r] compile-flags: --target loongarch32-unknown-none //@[loongarch32r] needs-llvm-components: loongarch -//@[loongarch32r] min-llvm-version: 22 +//@[loongarch32r] llvm-version: >=22 //@[loongarch64] compile-flags: --target loongarch64-unknown-none //@[loongarch64] needs-llvm-components: loongarch diff --git a/tests/assembly-llvm/asm/xtensa-types.rs b/tests/assembly-llvm/asm/xtensa-types.rs index 69c22d22b8b9a..76ba4d936ebcd 100644 --- a/tests/assembly-llvm/asm/xtensa-types.rs +++ b/tests/assembly-llvm/asm/xtensa-types.rs @@ -1,7 +1,7 @@ //@ add-minicore //@ assembly-output: emit-asm //@ compile-flags: --target xtensa-esp32-none-elf -Zmerge-functions=disabled -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ needs-llvm-components: xtensa #![feature(no_core, lang_items, rustc_attrs, asm_experimental_arch)] diff --git a/tests/assembly-llvm/bpf_unaligned.rs b/tests/assembly-llvm/bpf_unaligned.rs index 466c3e411ec2c..80cdb19f1a82d 100644 --- a/tests/assembly-llvm/bpf_unaligned.rs +++ b/tests/assembly-llvm/bpf_unaligned.rs @@ -1,7 +1,7 @@ //@ add-minicore //@ assembly-output: emit-asm //@ compile-flags: --target bpfel-unknown-none -C target_feature=+allows-misaligned-mem-access -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ needs-llvm-components: bpf #![feature(no_core)] #![crate_type = "rlib"] diff --git a/tests/assembly-llvm/c-variadic/xtensa.rs b/tests/assembly-llvm/c-variadic/xtensa.rs index 0038c4af4eee6..25f3318a9b6ac 100644 --- a/tests/assembly-llvm/c-variadic/xtensa.rs +++ b/tests/assembly-llvm/c-variadic/xtensa.rs @@ -1,6 +1,6 @@ //@ add-minicore //@ assembly-output: emit-asm -//@ min-llvm-version: 22 +//@ llvm-version: >=22 // //@ revisions: XTENSA //@ [XTENSA] compile-flags: -Copt-level=3 --target xtensa-esp32-none-elf diff --git a/tests/assembly-llvm/carryless-mul.rs b/tests/assembly-llvm/carryless-mul.rs index 99eece1d11d8a..4942d1d881dc5 100644 --- a/tests/assembly-llvm/carryless-mul.rs +++ b/tests/assembly-llvm/carryless-mul.rs @@ -4,10 +4,10 @@ // - Rust to LLVM IR: https://godbolt.org/z/sM914e4fo // - LLVM IR to assembly: https://godbolt.org/z/5Y7naa4cY // -//@revisions: x86_64 aarch64 riscv64 -//@assembly-output: emit-asm -//@min-llvm-version: 23 -//@compile-flags: -C opt-level=3 +//@ revisions: x86_64 aarch64 riscv64 +//@ assembly-output: emit-asm +//@ llvm-version: >=23 +//@ compile-flags: -C opt-level=3 // //@[x86_64] compile-flags: -C target-feature=+pclmulqdq,+avx2 -Cllvm-args=-x86-asm-syntax=intel //@[x86_64] only-x86_64-unknown-linux-gnu diff --git a/tests/assembly-llvm/cmse-clear-padding.rs b/tests/assembly-llvm/cmse-clear-padding.rs index 93b10845ea511..0544457b9b13a 100644 --- a/tests/assembly-llvm/cmse-clear-padding.rs +++ b/tests/assembly-llvm/cmse-clear-padding.rs @@ -1,5 +1,5 @@ //@ add-minicore -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ assembly-output: emit-asm //@ compile-flags: --target thumbv8m.main-none-eabi --crate-type lib -Copt-level=1 //@ needs-llvm-components: arm diff --git a/tests/assembly-llvm/simd-bitmask.rs b/tests/assembly-llvm/simd-bitmask.rs index 31862db7707e8..337cd0ae0e67d 100644 --- a/tests/assembly-llvm/simd-bitmask.rs +++ b/tests/assembly-llvm/simd-bitmask.rs @@ -8,10 +8,10 @@ //@ [x86-avx512] compile-flags: --target=x86_64-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel //@ [x86-avx512] compile-flags: -C target-feature=+avx512f,+avx512vl,+avx512bw,+avx512dq //@ [x86-avx512] needs-llvm-components: x86 -//@ [aarch64] min-llvm-version: 23 +//@ [aarch64] llvm-version: >=23 //@ [aarch64] compile-flags: --target=aarch64-unknown-linux-gnu //@ [aarch64] needs-llvm-components: aarch64 -//@ [aarch64-llvm-pre-23] max-llvm-major-version: 22 +//@ [aarch64-llvm-pre-23] llvm-version: <=22 //@ [aarch64-llvm-pre-23] compile-flags: --target=aarch64-unknown-linux-gnu //@ [aarch64-llvm-pre-23] needs-llvm-components: aarch64 //@ assembly-output: emit-asm diff --git a/tests/assembly-llvm/simd-intrinsic-mask-reduce.rs b/tests/assembly-llvm/simd-intrinsic-mask-reduce.rs index 37b22051ea906..7cfaa9b7c8142 100644 --- a/tests/assembly-llvm/simd-intrinsic-mask-reduce.rs +++ b/tests/assembly-llvm/simd-intrinsic-mask-reduce.rs @@ -7,10 +7,10 @@ //@ [x86] needs-llvm-components: x86 //@ [aarch64-llvm22] compile-flags: --target=aarch64-unknown-linux-gnu //@ [aarch64-llvm22] needs-llvm-components: aarch64 -//@ [aarch64-llvm22] max-llvm-major-version: 22 +//@ [aarch64-llvm22] llvm-version: <=22 //@ [aarch64] compile-flags: --target=aarch64-unknown-linux-gnu //@ [aarch64] needs-llvm-components: aarch64 -//@ [aarch64] min-llvm-version: 23 +//@ [aarch64] llvm-version: >=23 //@ assembly-output: emit-asm //@ compile-flags: --crate-type=lib -Copt-level=3 -C panic=abort diff --git a/tests/assembly-llvm/slice-is_ascii.rs b/tests/assembly-llvm/slice-is_ascii.rs index 6d660e78147c2..c4a2faf76cc71 100644 --- a/tests/assembly-llvm/slice-is_ascii.rs +++ b/tests/assembly-llvm/slice-is_ascii.rs @@ -9,7 +9,7 @@ // No longer optimizes as desired, tracked at: // https://github.com/rust-lang/rust/issues/154141 // https://github.com/llvm/llvm-project/issues/209216 -//@ max-llvm-major-version: 22 +//@ llvm-version: <=22 #![feature(str_internals)] diff --git a/tests/assembly-llvm/tail-call-indirect.rs b/tests/assembly-llvm/tail-call-indirect.rs index 2bc1743a9bafd..56f61b47ece36 100644 --- a/tests/assembly-llvm/tail-call-indirect.rs +++ b/tests/assembly-llvm/tail-call-indirect.rs @@ -1,5 +1,5 @@ //@ add-minicore -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ assembly-output: emit-asm //@ needs-llvm-components: x86 //@ compile-flags: --target=x86_64-unknown-linux-gnu diff --git a/tests/codegen-llvm/amdgpu-addrspacecast.rs b/tests/codegen-llvm/amdgpu-addrspacecast.rs index 144565f7e28ca..831df66655100 100644 --- a/tests/codegen-llvm/amdgpu-addrspacecast.rs +++ b/tests/codegen-llvm/amdgpu-addrspacecast.rs @@ -4,8 +4,8 @@ //@ needs-llvm-components: amdgpu //@ add-minicore //@ revisions: LLVM21 LLVM22 -//@ [LLVM21] max-llvm-major-version: 21 -//@ [LLVM22] min-llvm-version: 22 +//@ [LLVM21] llvm-version: <=21 +//@ [LLVM22] llvm-version: >=22 #![feature(no_core)] #![no_core] diff --git a/tests/codegen-llvm/array-cmp.rs b/tests/codegen-llvm/array-cmp.rs index 5b0a802f4097e..6d4ea1fb0358c 100644 --- a/tests/codegen-llvm/array-cmp.rs +++ b/tests/codegen-llvm/array-cmp.rs @@ -3,8 +3,8 @@ //@ compile-flags: -C opt-level=2 //@ needs-deterministic-layouts (checks depend on tuple layout) //@ revisions: LLVM22 LLVM23 -//@ [LLVM22] max-llvm-major-version: 22 -//@ [LLVM23] min-llvm-version: 23 +//@ [LLVM22] llvm-version: <=22 +//@ [LLVM23] llvm-version: >=23 #![crate_type = "lib"] diff --git a/tests/codegen-llvm/array-equality.rs b/tests/codegen-llvm/array-equality.rs index c0f716b6067e5..359a0084998e3 100644 --- a/tests/codegen-llvm/array-equality.rs +++ b/tests/codegen-llvm/array-equality.rs @@ -1,6 +1,6 @@ //@ revisions: llvm-current llvm-next -//@[llvm-current] max-llvm-major-version: 22 -//@[llvm-next] min-llvm-version: 23 +//@[llvm-current] llvm-version: <=22 +//@[llvm-next] llvm-version: >=23 //@ compile-flags: -Copt-level=3 -Z merge-functions=disabled //@ only-x86_64 #![crate_type = "lib"] diff --git a/tests/codegen-llvm/enum/enum-match.rs b/tests/codegen-llvm/enum/enum-match.rs index a0cba452e123c..c570c99f508aa 100644 --- a/tests/codegen-llvm/enum/enum-match.rs +++ b/tests/codegen-llvm/enum/enum-match.rs @@ -1,8 +1,8 @@ //@ compile-flags: -Copt-level=1 //@ only-64bit //@ revisions: LLVM22 LLVM23 -//@ [LLVM22] max-llvm-major-version: 22 -//@ [LLVM23] min-llvm-version: 23 +//@ [LLVM22] llvm-version: <=22 +//@ [LLVM23] llvm-version: >=23 #![crate_type = "lib"] #![feature(core_intrinsics)] diff --git a/tests/codegen-llvm/gpu-launch-sized-workgroup-memory.rs b/tests/codegen-llvm/gpu-launch-sized-workgroup-memory.rs index 4764160fd0b59..2ec2c4004af5a 100644 --- a/tests/codegen-llvm/gpu-launch-sized-workgroup-memory.rs +++ b/tests/codegen-llvm/gpu-launch-sized-workgroup-memory.rs @@ -9,10 +9,10 @@ //@ [nvptx-pre-llvm-23] compile-flags: --target nvptx64-nvidia-cuda //@ [nvptx-pre-llvm-23] needs-llvm-components: nvptx -//@ [nvptx-pre-llvm-23] max-llvm-major-version: 22 +//@ [nvptx-pre-llvm-23] llvm-version: <=22 //@ [nvptx-post-llvm-23] compile-flags: --target nvptx64-nvidia-cuda //@ [nvptx-post-llvm-23] needs-llvm-components: nvptx -//@ [nvptx-post-llvm-23] min-llvm-version: 23 +//@ [nvptx-post-llvm-23] llvm-version: >=23 //@ add-minicore #![feature(intrinsics, no_core, rustc_attrs)] #![no_core] diff --git a/tests/codegen-llvm/issues/issue-118306.rs b/tests/codegen-llvm/issues/issue-118306.rs index 19623e17815d0..b407075c6bcb1 100644 --- a/tests/codegen-llvm/issues/issue-118306.rs +++ b/tests/codegen-llvm/issues/issue-118306.rs @@ -1,8 +1,8 @@ //@ compile-flags: -Copt-level=3 //@ only-x86_64 //@ revisions: LLVM22 LLVM23 -//@ [LLVM22] max-llvm-major-version: 22 -//@ [LLVM23] min-llvm-version: 23 +//@ [LLVM22] llvm-version: <=22 +//@ [LLVM23] llvm-version: >=23 // Test for #118306. // Make sure we don't create `br` or `select` instructions. diff --git a/tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs b/tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs index 5b100d2cdc381..1632d08d9f7ef 100644 --- a/tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs +++ b/tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs @@ -1,7 +1,7 @@ //@ compile-flags: -Copt-level=3 //@ revisions: new old -//@ [old] max-llvm-major-version: 21 -//@ [new] min-llvm-version: 22 +//@ [old] llvm-version: <=21 +//@ [new] llvm-version: >=22 #![crate_type = "lib"] diff --git a/tests/codegen-llvm/issues/issue-37945.rs b/tests/codegen-llvm/issues/issue-37945.rs index 3167a045575a8..01252b231c032 100644 --- a/tests/codegen-llvm/issues/issue-37945.rs +++ b/tests/codegen-llvm/issues/issue-37945.rs @@ -1,8 +1,8 @@ //@ compile-flags: -Copt-level=3 -Zmerge-functions=disabled //@ ignore-32bit LLVM has a bug with them //@ revisions: new old -//@ [old] max-llvm-major-version: 22 -//@ [new] min-llvm-version: 23 +//@ [old] llvm-version: <=22 +//@ [new] llvm-version: >=23 // Check that LLVM understands that `Iter` pointer is not null. Issue #37945. diff --git a/tests/codegen-llvm/issues/matches-logical-or-141497.rs b/tests/codegen-llvm/issues/matches-logical-or-141497.rs index 59869fd70012a..ea1f5c2623b0d 100644 --- a/tests/codegen-llvm/issues/matches-logical-or-141497.rs +++ b/tests/codegen-llvm/issues/matches-logical-or-141497.rs @@ -2,7 +2,7 @@ // `f == FrameType::Inter || f == FrameType::Switch`. //@ compile-flags: -Copt-level=3 -//@ min-llvm-version: 23 +//@ llvm-version: >=23 #![crate_type = "lib"] diff --git a/tests/codegen-llvm/pow_known_base.rs b/tests/codegen-llvm/pow_known_base.rs index f7e649ef089ea..76718b3941bed 100644 --- a/tests/codegen-llvm/pow_known_base.rs +++ b/tests/codegen-llvm/pow_known_base.rs @@ -1,7 +1,7 @@ //@ compile-flags: -Copt-level=3 //@ revisions: LLVM22 LLVM23 -//@ [LLVM22] max-llvm-major-version: 22 -//@ [LLVM23] min-llvm-version: 23 +//@ [LLVM22] llvm-version: <=22 +//@ [LLVM23] llvm-version: >=23 // Test that `pow` can use a faster implementation when `base` is a // known power of two diff --git a/tests/codegen-llvm/scalable-vectors/debuginfo.rs b/tests/codegen-llvm/scalable-vectors/debuginfo.rs index 8b2724f06f3e0..7d187482d9029 100644 --- a/tests/codegen-llvm/scalable-vectors/debuginfo.rs +++ b/tests/codegen-llvm/scalable-vectors/debuginfo.rs @@ -3,8 +3,8 @@ //@ only-linux //@ compile-flags: -Cdebuginfo=2 -Copt-level=0 //@ revisions: POST-LLVM-22 PRE-LLVM-22 -//@ [PRE-LLVM-22] max-llvm-major-version: 21 -//@ [POST-LLVM-22] min-llvm-version: 22 +//@ [PRE-LLVM-22] llvm-version: <=21 +//@ [POST-LLVM-22] llvm-version: >=22 #![crate_type = "lib"] #![allow(incomplete_features, internal_features)] diff --git a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs index d79a9cf96ada3..7117fed7c51e0 100644 --- a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs +++ b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs @@ -2,8 +2,8 @@ //@ compile-flags: -C no-prepopulate-passes //@ revisions: LLVM21 LLVM22 -//@ [LLVM22] min-llvm-version: 22 -//@ [LLVM21] max-llvm-major-version: 21 +//@ [LLVM22] llvm-version: >=22 +//@ [LLVM21] llvm-version: <=21 // ignore-tidy-linelength #![crate_type = "lib"] @@ -12,10 +12,10 @@ #[path = "../../auxiliary/minisimd.rs"] mod minisimd; -use minisimd::*; - use std::intrinsics::simd::simd_gather; +use minisimd::*; + pub type Vec2 = Simd; pub type Vec4 = Simd; diff --git a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs index ffe3851c5ad71..eba1dd3d33c45 100644 --- a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs +++ b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-load.rs @@ -1,7 +1,7 @@ //@ compile-flags: -C no-prepopulate-passes //@ revisions: LLVM21 LLVM22 -//@ [LLVM22] min-llvm-version: 22 -//@ [LLVM21] max-llvm-major-version: 21 +//@ [LLVM22] llvm-version: >=22 +//@ [LLVM21] llvm-version: <=21 // ignore-tidy-linelength #![crate_type = "lib"] @@ -10,10 +10,10 @@ #[path = "../../auxiliary/minisimd.rs"] mod minisimd; -use minisimd::*; - use std::intrinsics::simd::{SimdAlign, simd_masked_load}; +use minisimd::*; + pub type Vec2 = Simd; pub type Vec4 = Simd; diff --git a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-store.rs b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-store.rs index efeeceec09d12..1cee7cbc09c1f 100644 --- a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-store.rs +++ b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-masked-store.rs @@ -1,7 +1,7 @@ //@ compile-flags: -C no-prepopulate-passes //@ revisions: LLVM21 LLVM22 -//@ [LLVM22] min-llvm-version: 22 -//@ [LLVM21] max-llvm-major-version: 21 +//@ [LLVM22] llvm-version: >=22 +//@ [LLVM21] llvm-version: <=21 // ignore-tidy-linelength #![crate_type = "lib"] @@ -10,10 +10,10 @@ #[path = "../../auxiliary/minisimd.rs"] mod minisimd; -use minisimd::*; - use std::intrinsics::simd::{SimdAlign, simd_masked_store}; +use minisimd::*; + pub type Vec2 = Simd; pub type Vec4 = Simd; diff --git a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs index 533fa429ae700..6cbe47b3e0fd7 100644 --- a/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs +++ b/tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs @@ -2,8 +2,8 @@ //@ compile-flags: -C no-prepopulate-passes //@ revisions: LLVM21 LLVM22 -//@ [LLVM22] min-llvm-version: 22 -//@ [LLVM21] max-llvm-major-version: 21 +//@ [LLVM22] llvm-version: >=22 +//@ [LLVM21] llvm-version: <=21 // ignore-tidy-linelength #![crate_type = "lib"] @@ -12,10 +12,10 @@ #[path = "../../auxiliary/minisimd.rs"] mod minisimd; -use minisimd::*; - use std::intrinsics::simd::simd_scatter; +use minisimd::*; + pub type Vec2 = Simd; pub type Vec4 = Simd; diff --git a/tests/codegen-llvm/slp-vectorization-mul3.rs b/tests/codegen-llvm/slp-vectorization-mul3.rs index 38c0949b82713..93acea694f37b 100644 --- a/tests/codegen-llvm/slp-vectorization-mul3.rs +++ b/tests/codegen-llvm/slp-vectorization-mul3.rs @@ -1,7 +1,7 @@ //! Regression test for #142519 //@ only-x86_64 //@ compile-flags: -O -//@ min-llvm-version: 22 +//@ llvm-version: >=22 #![crate_type = "lib"] diff --git a/tests/codegen-llvm/store-captures.rs b/tests/codegen-llvm/store-captures.rs index 33d24032ee450..8144970c3ccd1 100644 --- a/tests/codegen-llvm/store-captures.rs +++ b/tests/codegen-llvm/store-captures.rs @@ -1,4 +1,4 @@ -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ compile-flags: -O -C no-prepopulate-passes #![crate_type = "lib"] diff --git a/tests/codegen-llvm/tail-call-u128.rs b/tests/codegen-llvm/tail-call-u128.rs index 25dfc47a2bfec..98a7712f1a5ec 100644 --- a/tests/codegen-llvm/tail-call-u128.rs +++ b/tests/codegen-llvm/tail-call-u128.rs @@ -1,6 +1,6 @@ //@ add-minicore //@ revisions: win linux -//@ min-llvm-version: 22 +//@ llvm-version: >=22 // //@ compile-flags: -Copt-level=3 //@[linux] compile-flags: --target x86_64-unknown-linux-gnu diff --git a/tests/codegen-llvm/vec_pop_push_noop.rs b/tests/codegen-llvm/vec_pop_push_noop.rs index 977c220b3baef..7babb6c7f663c 100644 --- a/tests/codegen-llvm/vec_pop_push_noop.rs +++ b/tests/codegen-llvm/vec_pop_push_noop.rs @@ -1,7 +1,7 @@ //@ compile-flags: -Copt-level=3 //@ revisions: new old -//@ [old] max-llvm-major-version: 21 -//@ [new] min-llvm-version: 22 +//@ [old] llvm-version: <=21 +//@ [new] llvm-version: >=22 #![crate_type = "lib"] diff --git a/tests/codegen-llvm/vecdeque_pop_push.rs b/tests/codegen-llvm/vecdeque_pop_push.rs index 6f9ad6674d6cd..d0d4306c03eff 100644 --- a/tests/codegen-llvm/vecdeque_pop_push.rs +++ b/tests/codegen-llvm/vecdeque_pop_push.rs @@ -1,7 +1,7 @@ //@ compile-flags: -Copt-level=3 //@ revisions: new old -//@ [old] max-llvm-major-version: 21 -//@ [new] min-llvm-version: 22 +//@ [old] llvm-version: <=21 +//@ [new] llvm-version: >=22 #![crate_type = "lib"] diff --git a/tests/coverage/async.coverage b/tests/coverage/async.coverage index fe1a353b5f1a1..abcad885c052f 100644 --- a/tests/coverage/async.coverage +++ b/tests/coverage/async.coverage @@ -4,7 +4,7 @@ LL| |#![rustfmt::skip] LL| |//@ edition: 2018 LL| |//@ compile-flags: -Copt-level=1 - LL| |//@ min-llvm-version: 23 + LL| |//@ llvm-version: >=23 LL| |//@ aux-build: executor.rs LL| |extern crate executor; LL| | diff --git a/tests/coverage/async.rs b/tests/coverage/async.rs index d8f608df81535..9cda086963780 100644 --- a/tests/coverage/async.rs +++ b/tests/coverage/async.rs @@ -4,7 +4,7 @@ #![rustfmt::skip] //@ edition: 2018 //@ compile-flags: -Copt-level=1 -//@ min-llvm-version: 23 +//@ llvm-version: >=23 //@ aux-build: executor.rs extern crate executor; diff --git a/tests/coverage/coroutine.coverage b/tests/coverage/coroutine.coverage index 02fc91bcf5863..5c022743557a5 100644 --- a/tests/coverage/coroutine.coverage +++ b/tests/coverage/coroutine.coverage @@ -1,4 +1,4 @@ - LL| |//@ min-llvm-version: 23 + LL| |//@ llvm-version: >=23 LL| |#![feature(coroutines, coroutine_trait, stmt_expr_attributes)] LL| | LL| |use std::ops::{Coroutine, CoroutineState}; diff --git a/tests/coverage/coroutine.rs b/tests/coverage/coroutine.rs index 9a11abd934e4a..a1eed85737c65 100644 --- a/tests/coverage/coroutine.rs +++ b/tests/coverage/coroutine.rs @@ -1,4 +1,4 @@ -//@ min-llvm-version: 23 +//@ llvm-version: >=23 #![feature(coroutines, coroutine_trait, stmt_expr_attributes)] use std::ops::{Coroutine, CoroutineState}; diff --git a/tests/coverage/yield.coverage b/tests/coverage/yield.coverage index 2fea2d94dae4b..573b8dfaee95d 100644 --- a/tests/coverage/yield.coverage +++ b/tests/coverage/yield.coverage @@ -1,4 +1,4 @@ - LL| |//@ min-llvm-version: 23 + LL| |//@ llvm-version: >=23 LL| |#![feature(coroutines, coroutine_trait, stmt_expr_attributes)] LL| |#![allow(unused_assignments)] LL| | diff --git a/tests/coverage/yield.rs b/tests/coverage/yield.rs index da868e39f5893..28abcd5f66602 100644 --- a/tests/coverage/yield.rs +++ b/tests/coverage/yield.rs @@ -1,4 +1,4 @@ -//@ min-llvm-version: 23 +//@ llvm-version: >=23 #![feature(coroutines, coroutine_trait, stmt_expr_attributes)] #![allow(unused_assignments)] diff --git a/tests/ui/asm/riscv/riscv32e-registers.rs b/tests/ui/asm/riscv/riscv32e-registers.rs index a5f4151b2c80a..05c0fbf098b60 100644 --- a/tests/ui/asm/riscv/riscv32e-registers.rs +++ b/tests/ui/asm/riscv/riscv32e-registers.rs @@ -7,24 +7,24 @@ //@ compile-flags: --crate-type=rlib //@ [riscv32e_llvm23] needs-llvm-components: riscv //@ [riscv32e_llvm23] compile-flags: --target=riscv32e-unknown-none-elf -//@ [riscv32e_llvm23] max-llvm-major-version: 23 +//@ [riscv32e_llvm23] llvm-version: <=23 //@ [riscv32e_llvm24] needs-llvm-components: riscv //@ [riscv32e_llvm24] compile-flags: --target=riscv32e-unknown-none-elf -//@ [riscv32e_llvm24] min-llvm-version: 24 +//@ [riscv32e_llvm24] llvm-version: >=24 //@ [riscv32em_llvm23] needs-llvm-components: riscv //@ [riscv32em_llvm23] compile-flags: --target=riscv32em-unknown-none-elf -//@ [riscv32em_llvm23] max-llvm-major-version: 23 +//@ [riscv32em_llvm23] llvm-version: <=23 //@ [riscv32em_llvm24] needs-llvm-components: riscv //@ [riscv32em_llvm24] compile-flags: --target=riscv32em-unknown-none-elf -//@ [riscv32em_llvm24] min-llvm-version: 24 +//@ [riscv32em_llvm24] llvm-version: >=24 //@ [riscv32emc_llvm23] needs-llvm-components: riscv //@ [riscv32emc_llvm23] compile-flags: --target=riscv32emc-unknown-none-elf -//@ [riscv32emc_llvm23] max-llvm-major-version: 23 +//@ [riscv32emc_llvm23] llvm-version: <=23 //@ [riscv32emc_llvm24] needs-llvm-components: riscv //@ [riscv32emc_llvm24] compile-flags: --target=riscv32emc-unknown-none-elf -//@ [riscv32emc_llvm24] min-llvm-version: 24 +//@ [riscv32emc_llvm24] llvm-version: >=24 //@ ignore-backends: gcc // Unlike bad-reg.rs, this tests if the assembler can reject invalid registers diff --git a/tests/ui/codegen/huge-stacks.rs b/tests/ui/codegen/huge-stacks.rs index 790de95eb7416..c54f4720cb9cc 100644 --- a/tests/ui/codegen/huge-stacks.rs +++ b/tests/ui/codegen/huge-stacks.rs @@ -2,7 +2,7 @@ //@[optimized]compile-flags: -O //@ run-pass //@ only-64bit -//@ min-llvm-version: 22 +//@ llvm-version: >=22 // Regression test for https://github.com/rust-lang/rust/issues/83060 // Verifies a program is not miscompiled if it includes a 4GB array on the stack diff --git a/tests/ui/explicit-tail-calls/no-unsized-arguments.rs b/tests/ui/explicit-tail-calls/no-unsized-arguments.rs index a0c5b53d8df0c..c86e99a4d32aa 100644 --- a/tests/ui/explicit-tail-calls/no-unsized-arguments.rs +++ b/tests/ui/explicit-tail-calls/no-unsized-arguments.rs @@ -1,6 +1,6 @@ //@ add-minicore //@ ignore-backends: gcc -//@ min-llvm-version: 22 +//@ llvm-version: >=22 // //@ revisions: x86 x86_64 aarch64 // diff --git a/tests/ui/explicit-tail-calls/support/basic.rs b/tests/ui/explicit-tail-calls/support/basic.rs index d46dd726c0bd1..338546404cc93 100644 --- a/tests/ui/explicit-tail-calls/support/basic.rs +++ b/tests/ui/explicit-tail-calls/support/basic.rs @@ -1,7 +1,7 @@ //@ build-pass //@ ignore-backends: gcc //@ add-minicore -//@ min-llvm-version: 22 +//@ llvm-version: >=22 // //@ revisions: i686 //@[i686] compile-flags: --target i686-unknown-linux-gnu diff --git a/tests/ui/explicit-tail-calls/support/bystack.rs b/tests/ui/explicit-tail-calls/support/bystack.rs index c89ad194f8ba1..de1e18ce83ffe 100644 --- a/tests/ui/explicit-tail-calls/support/bystack.rs +++ b/tests/ui/explicit-tail-calls/support/bystack.rs @@ -1,7 +1,7 @@ //@ build-pass //@ ignore-backends: gcc //@ add-minicore -//@ min-llvm-version: 22 +//@ llvm-version: >=22 // //@ revisions: i686 //@[i686] compile-flags: --target i686-unknown-linux-gnu @@ -36,11 +36,11 @@ //@ revisions: loongarch32 //@[loongarch32] compile-flags: --target loongarch32-unknown-none //@[loongarch32] needs-llvm-components: loongarch -//@[loongarch32] max-llvm-major-version: 21 +//@[loongarch32] llvm-version: <=21 //@ revisions: loongarch64 //@[loongarch64] compile-flags: --target loongarch64-unknown-linux-gnu //@[loongarch64] needs-llvm-components: loongarch -//@[loongarch64] max-llvm-major-version: 21 +//@[loongarch64] llvm-version: <=21 //@ revisions: bpf //@[bpf] compile-flags: --target bpfeb-unknown-none //@[bpf] needs-llvm-components: bpf diff --git a/tests/ui/explicit-tail-calls/support/byval.rs b/tests/ui/explicit-tail-calls/support/byval.rs index e6f26b9292eb6..b8645bb77a649 100644 --- a/tests/ui/explicit-tail-calls/support/byval.rs +++ b/tests/ui/explicit-tail-calls/support/byval.rs @@ -1,7 +1,7 @@ //@ build-pass //@ ignore-backends: gcc //@ add-minicore -//@ min-llvm-version: 22 +//@ llvm-version: >=22 // //@ revisions: i686 //@[i686] compile-flags: --target i686-unknown-linux-gnu @@ -36,11 +36,11 @@ //@ revisions: loongarch32 //@[loongarch32] compile-flags: --target loongarch32-unknown-none //@[loongarch32] needs-llvm-components: loongarch -//@[loongarch32] max-llvm-major-version: 21 +//@[loongarch32] llvm-version: <=21 //@ revisions: loongarch64 //@[loongarch64] compile-flags: --target loongarch64-unknown-linux-gnu //@[loongarch64] needs-llvm-components: loongarch -//@[loongarch64] max-llvm-major-version: 21 +//@[loongarch64] llvm-version: <=21 //@ revisions: bpf //@[bpf] compile-flags: --target bpfeb-unknown-none //@[bpf] needs-llvm-components: bpf diff --git a/tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs b/tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs index 9c9085ca1daca..613c8c440857b 100644 --- a/tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs +++ b/tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs @@ -1,6 +1,6 @@ //@ run-pass //@ ignore-backends: gcc -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ revisions: x86_64 aarch64 // // FIXME: enable x86 on LLVM 23. diff --git a/tests/ui/feature-gates/feature-gate-xtensa-target-feature.rs b/tests/ui/feature-gates/feature-gate-xtensa-target-feature.rs index e9d6a35e0ab30..81dd2778e17c2 100644 --- a/tests/ui/feature-gates/feature-gate-xtensa-target-feature.rs +++ b/tests/ui/feature-gates/feature-gate-xtensa-target-feature.rs @@ -1,6 +1,6 @@ //@ add-minicore //@ needs-llvm-components: xtensa -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ compile-flags: --target=xtensa-esp32-none-elf --crate-type=rlib //@ ignore-backends: gcc #![no_core] diff --git a/tests/ui/float/classify-runtime-const.rs b/tests/ui/float/classify-runtime-const.rs index e3b97386a3124..06520a0815977 100644 --- a/tests/ui/float/classify-runtime-const.rs +++ b/tests/ui/float/classify-runtime-const.rs @@ -2,7 +2,7 @@ //@ revisions: opt noopt ctfe //@[opt] compile-flags: -O //@[noopt] compile-flags: -Zmir-opt-level=0 -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ compile-flags: --check-cfg=cfg(target_has_reliable_f16) // ignore-tidy-file-linelength #![feature(cfg_target_has_reliable_f16_f128)] diff --git a/tests/ui/float/minmax.rs b/tests/ui/float/minmax.rs index e6bac901d7922..d590f91a33f9d 100644 --- a/tests/ui/float/minmax.rs +++ b/tests/ui/float/minmax.rs @@ -1,7 +1,7 @@ //FIXME(llvm21) This should be a library test, but old LLVM miscompiles things so we can't just // test this properly everywhere. Once we require LLVM 22, remove this test and enable the // commented-out tests in `library/coretests/tests/floats/mod.rs` instead. -//@ min-llvm-version: 22 +//@ llvm-version: >=22 //@ run-pass use std::hint::black_box;