@@ -244,8 +244,9 @@ pub(crate) fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> Option<LLVMFea
244
244
( "aarch64" , "paca" ) => Some ( LLVMFeature :: new ( "pauth" ) ) ,
245
245
( "aarch64" , "pacg" ) => Some ( LLVMFeature :: new ( "pauth" ) ) ,
246
246
// Before LLVM 20 those two features were packaged together as b16b16
247
- ( "aarch64" , "sve-b16b16" ) if get_version ( ) . 0 < 20 => Some ( LLVMFeature :: new ( "b16b16" ) ) ,
248
- ( "aarch64" , "sme-b16b16" ) if get_version ( ) . 0 < 20 => Some ( LLVMFeature :: new ( "b16b16" ) ) ,
247
+ ( "aarch64" , "sve-b16b16" | "sme-b16b16" ) if get_version ( ) . 0 < 20 => {
248
+ Some ( LLVMFeature :: new ( "b16b16" ) )
249
+ }
249
250
( "aarch64" , "flagm2" ) => Some ( LLVMFeature :: new ( "altnzcv" ) ) ,
250
251
// Rust ties fp and neon together.
251
252
( "aarch64" , "neon" ) => Some ( LLVMFeature :: with_dependencies (
@@ -260,14 +261,10 @@ pub(crate) fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> Option<LLVMFea
260
261
( "aarch64" , "fpmr" ) => None , // only existed in 18
261
262
( "arm" , "fp16" ) => Some ( LLVMFeature :: new ( "fullfp16" ) ) ,
262
263
// NVPTX targets added in LLVM 20
263
- ( "nvptx64" , "sm_100" ) if get_version ( ) . 0 < 20 => None ,
264
- ( "nvptx64" , "sm_100a" ) if get_version ( ) . 0 < 20 => None ,
265
- ( "nvptx64" , "sm_101" ) if get_version ( ) . 0 < 20 => None ,
266
- ( "nvptx64" , "sm_101a" ) if get_version ( ) . 0 < 20 => None ,
267
- ( "nvptx64" , "sm_120" ) if get_version ( ) . 0 < 20 => None ,
268
- ( "nvptx64" , "sm_120a" ) if get_version ( ) . 0 < 20 => None ,
269
- ( "nvptx64" , "ptx86" ) if get_version ( ) . 0 < 20 => None ,
270
- ( "nvptx64" , "ptx87" ) if get_version ( ) . 0 < 20 => None ,
264
+ (
265
+ "nvptx64" ,
266
+ "sm_100" | "sm_100a" | "sm_101" | "sm_101a" | "sm_120" | "sm_120a" | "ptx86" | "ptx87" ,
267
+ ) if get_version ( ) . 0 < 20 => None ,
271
268
// Filter out features that are not supported by the current LLVM version
272
269
( "loongarch64" , "div32" | "lam-bh" | "lamcas" | "ld-seq-sa" | "scq" )
273
270
if get_version ( ) . 0 < 20 =>
@@ -301,12 +298,10 @@ pub(crate) fn to_llvm_features<'a>(sess: &Session, s: &'a str) -> Option<LLVMFea
301
298
( "sparc" , "v8plus" ) if get_version ( ) . 0 == 19 => Some ( LLVMFeature :: new ( "v9" ) ) ,
302
299
( "powerpc" , "power8-crypto" ) => Some ( LLVMFeature :: new ( "crypto" ) ) ,
303
300
// These new `amx` variants and `movrs` were introduced in LLVM20
304
- ( "x86" , "amx-avx512" | "amx-fp8" | "amx-movrs" | "amx-tf32" | "amx-transpose" )
305
- if get_version ( ) . 0 < 20 =>
306
- {
307
- None
308
- }
309
- ( "x86" , "movrs" ) if get_version ( ) . 0 < 20 => None ,
301
+ (
302
+ "x86" ,
303
+ "amx-avx512" | "amx-fp8" | "amx-movrs" | "amx-tf32" | "amx-transpose" | "movrs" ,
304
+ ) if get_version ( ) . 0 < 20 => None ,
310
305
( "x86" , "avx10.1" ) => Some ( LLVMFeature :: new ( "avx10.1-512" ) ) ,
311
306
( "x86" , "avx10.2" ) => ( get_version ( ) . 0 >= 20 ) . then ( || LLVMFeature :: new ( "avx10.2-512" ) ) ,
312
307
( "x86" , "apxf" ) => Some ( LLVMFeature :: with_dependencies (
0 commit comments