Skip to content

Commit c24e1c3

Browse files
committed
add s390x z17 target features
1 parent 4455c89 commit c24e1c3

File tree

3 files changed

+36
-10
lines changed

3 files changed

+36
-10
lines changed

compiler/rustc_codegen_llvm/src/llvm_util.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,14 @@ pub(crate) fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> Option<LLVMFea
282282
}
283283
// Filter out features that are not supported by the current LLVM version
284284
("riscv32" | "riscv64", "zacas") if get_version().0 < 20 => None,
285+
(
286+
"s390x",
287+
"message-security-assist-extension12"
288+
| "concurrent-functions"
289+
| "miscellaneous-extensions-4"
290+
| "vector-enhancements-3"
291+
| "vector-packed-decimal-enhancement-3",
292+
) if get_version().0 < 20 => None,
285293
// Enable the evex512 target feature if an avx512 target feature is enabled.
286294
("x86", s) if s.starts_with("avx512") => Some(LLVMFeature::with_dependencies(
287295
s,

compiler/rustc_target/src/target_features.rs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -710,29 +710,35 @@ static LOONGARCH_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
710710
// tidy-alphabetical-end
711711
];
712712

713+
#[rustfmt::skip]
713714
const IBMZ_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
714715
// tidy-alphabetical-start
715716
("backchain", Unstable(sym::s390x_target_feature), &[]),
717+
("concurrent-functions", Unstable(sym::s390x_target_feature), &[]),
716718
("deflate-conversion", Unstable(sym::s390x_target_feature), &[]),
717719
("enhanced-sort", Unstable(sym::s390x_target_feature), &[]),
718720
("guarded-storage", Unstable(sym::s390x_target_feature), &[]),
719721
("high-word", Unstable(sym::s390x_target_feature), &[]),
722+
// LLVM does not define message-security-assist-extension versions 1, 2, 6, 10 and 11.
723+
("message-security-assist-extension12", Unstable(sym::s390x_target_feature), &[]),
724+
("message-security-assist-extension3", Unstable(sym::s390x_target_feature), &[]),
725+
("message-security-assist-extension4", Unstable(sym::s390x_target_feature), &[]),
726+
("message-security-assist-extension5", Unstable(sym::s390x_target_feature), &[]),
727+
("message-security-assist-extension8", Unstable(sym::s390x_target_feature), &["message-security-assist-extension3"]),
728+
("message-security-assist-extension9", Unstable(sym::s390x_target_feature), &["message-security-assist-extension3", "message-security-assist-extension4"]),
729+
("miscellaneous-extensions-2", Unstable(sym::s390x_target_feature), &[]),
730+
("miscellaneous-extensions-3", Unstable(sym::s390x_target_feature), &[]),
731+
("miscellaneous-extensions-4", Unstable(sym::s390x_target_feature), &[]),
720732
("nnp-assist", Unstable(sym::s390x_target_feature), &["vector"]),
721733
("transactional-execution", Unstable(sym::s390x_target_feature), &[]),
722734
("vector", Unstable(sym::s390x_target_feature), &[]),
723735
("vector-enhancements-1", Unstable(sym::s390x_target_feature), &["vector"]),
724736
("vector-enhancements-2", Unstable(sym::s390x_target_feature), &["vector-enhancements-1"]),
737+
("vector-enhancements-3", Unstable(sym::s390x_target_feature), &["vector-enhancements-2"]),
725738
("vector-packed-decimal", Unstable(sym::s390x_target_feature), &["vector"]),
726-
(
727-
"vector-packed-decimal-enhancement",
728-
Unstable(sym::s390x_target_feature),
729-
&["vector-packed-decimal"],
730-
),
731-
(
732-
"vector-packed-decimal-enhancement-2",
733-
Unstable(sym::s390x_target_feature),
734-
&["vector-packed-decimal-enhancement"],
735-
),
739+
("vector-packed-decimal-enhancement", Unstable(sym::s390x_target_feature), &["vector-packed-decimal"]),
740+
("vector-packed-decimal-enhancement-2", Unstable(sym::s390x_target_feature), &["vector-packed-decimal-enhancement"]),
741+
("vector-packed-decimal-enhancement-3", Unstable(sym::s390x_target_feature), &["vector-packed-decimal-enhancement-2"]),
736742
// tidy-alphabetical-end
737743
];
738744

tests/ui/check-cfg/target_feature.stderr

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ LL | cfg!(target_feature = "_UNEXPECTED_VALUE");
6262
`c`
6363
`cache`
6464
`cmpxchg16b`
65+
`concurrent-functions`
6566
`crc`
6667
`crt-static`
6768
`cssc`
@@ -159,6 +160,15 @@ LL | cfg!(target_feature = "_UNEXPECTED_VALUE");
159160
`lzcnt`
160161
`m`
161162
`mclass`
163+
`message-security-assist-extension12`
164+
`message-security-assist-extension3`
165+
`message-security-assist-extension4`
166+
`message-security-assist-extension5`
167+
`message-security-assist-extension8`
168+
`message-security-assist-extension9`
169+
`miscellaneous-extensions-2`
170+
`miscellaneous-extensions-3`
171+
`miscellaneous-extensions-4`
162172
`mops`
163173
`movbe`
164174
`movrs`
@@ -287,9 +297,11 @@ LL | cfg!(target_feature = "_UNEXPECTED_VALUE");
287297
`vector`
288298
`vector-enhancements-1`
289299
`vector-enhancements-2`
300+
`vector-enhancements-3`
290301
`vector-packed-decimal`
291302
`vector-packed-decimal-enhancement`
292303
`vector-packed-decimal-enhancement-2`
304+
`vector-packed-decimal-enhancement-3`
293305
`vfp2`
294306
`vfp3`
295307
`vfp4`

0 commit comments

Comments
 (0)