@@ -375,7 +375,7 @@ const AARCH64_TIED_FEATURES: &[&[&str]] = &[
375
375
376
376
static X86_FEATURES : & [ ( & str , Stability , ImpliedFeatures ) ] = & [
377
377
// tidy-alphabetical-start
378
- ( "adx" , Stable , & [ ] ) ,
378
+ ( "adx" , Stable , & [ "cpuid" ] ) ,
379
379
( "aes" , Stable , & [ "sse2" ] ) ,
380
380
( "amx-avx512" , Unstable ( sym:: x86_amx_intrinsics) , & [ "amx-tile" ] ) ,
381
381
( "amx-bf16" , Unstable ( sym:: x86_amx_intrinsics) , & [ "amx-tile" ] ) ,
@@ -385,9 +385,9 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
385
385
( "amx-int8" , Unstable ( sym:: x86_amx_intrinsics) , & [ "amx-tile" ] ) ,
386
386
( "amx-movrs" , Unstable ( sym:: x86_amx_intrinsics) , & [ "amx-tile" ] ) ,
387
387
( "amx-tf32" , Unstable ( sym:: x86_amx_intrinsics) , & [ "amx-tile" ] ) ,
388
- ( "amx-tile" , Unstable ( sym:: x86_amx_intrinsics) , & [ ] ) ,
388
+ ( "amx-tile" , Unstable ( sym:: x86_amx_intrinsics) , & [ "cpuid" ] ) ,
389
389
( "amx-transpose" , Unstable ( sym:: x86_amx_intrinsics) , & [ "amx-tile" ] ) ,
390
- ( "apxf" , Unstable ( sym:: apx_target_feature) , & [ ] ) ,
390
+ ( "apxf" , Unstable ( sym:: apx_target_feature) , & [ "cpuid" ] ) ,
391
391
( "avx" , Stable , & [ "sse4.2" ] ) ,
392
392
( "avx2" , Stable , & [ "avx" ] ) ,
393
393
(
@@ -429,24 +429,25 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
429
429
( "avxvnni" , Stable , & [ "avx2" ] ) ,
430
430
( "avxvnniint8" , Stable , & [ "avx2" ] ) ,
431
431
( "avxvnniint16" , Stable , & [ "avx2" ] ) ,
432
- ( "bmi1" , Stable , & [ ] ) ,
433
- ( "bmi2" , Stable , & [ ] ) ,
434
- ( "cmpxchg16b" , Stable , & [ ] ) ,
435
- ( "ermsb" , Unstable ( sym:: ermsb_target_feature) , & [ ] ) ,
432
+ ( "bmi1" , Stable , & [ "cpuid" ] ) ,
433
+ ( "bmi2" , Stable , & [ "cpuid" ] ) ,
434
+ ( "cmpxchg16b" , Stable , & [ "cpuid" ] ) ,
435
+ ( "cpuid" , Unstable ( sym:: cpuid_target_feature) , & [ ] ) ,
436
+ ( "ermsb" , Unstable ( sym:: ermsb_target_feature) , & [ "cpuid" ] ) ,
436
437
( "f16c" , Stable , & [ "avx" ] ) ,
437
438
( "fma" , Stable , & [ "avx" ] ) ,
438
- ( "fxsr" , Stable , & [ ] ) ,
439
+ ( "fxsr" , Stable , & [ "cpuid" ] ) ,
439
440
( "gfni" , Stable , & [ "sse2" ] ) ,
440
441
( "kl" , Stable , & [ "sse2" ] ) ,
441
- ( "lahfsahf" , Unstable ( sym:: lahfsahf_target_feature) , & [ ] ) ,
442
- ( "lzcnt" , Stable , & [ ] ) ,
443
- ( "movbe" , Stable , & [ ] ) ,
444
- ( "movrs" , Unstable ( sym:: movrs_target_feature) , & [ ] ) ,
442
+ ( "lahfsahf" , Unstable ( sym:: lahfsahf_target_feature) , & [ "cpuid" ] ) ,
443
+ ( "lzcnt" , Stable , & [ "cpuid" ] ) ,
444
+ ( "movbe" , Stable , & [ "cpuid" ] ) ,
445
+ ( "movrs" , Unstable ( sym:: movrs_target_feature) , & [ "cpuid" ] ) ,
445
446
( "pclmulqdq" , Stable , & [ "sse2" ] ) ,
446
- ( "popcnt" , Stable , & [ ] ) ,
447
- ( "prfchw" , Unstable ( sym:: prfchw_target_feature) , & [ ] ) ,
448
- ( "rdrand" , Stable , & [ ] ) ,
449
- ( "rdseed" , Stable , & [ ] ) ,
447
+ ( "popcnt" , Stable , & [ "cpuid" ] ) ,
448
+ ( "prfchw" , Unstable ( sym:: prfchw_target_feature) , & [ "cpuid" ] ) ,
449
+ ( "rdrand" , Stable , & [ "cpuid" ] ) ,
450
+ ( "rdseed" , Stable , & [ "cpuid" ] ) ,
450
451
(
451
452
"retpoline-external-thunk" ,
452
453
Stability :: Forbidden { reason : "use `-Zretpoline-external-thunk` compiler flag instead" } ,
@@ -462,28 +463,28 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
462
463
Stability :: Forbidden { reason : "use `-Zretpoline` compiler flag instead" } ,
463
464
& [ ] ,
464
465
) ,
465
- ( "rtm" , Unstable ( sym:: rtm_target_feature) , & [ ] ) ,
466
+ ( "rtm" , Unstable ( sym:: rtm_target_feature) , & [ "cpuid" ] ) ,
466
467
( "sha" , Stable , & [ "sse2" ] ) ,
467
468
( "sha512" , Stable , & [ "avx2" ] ) ,
468
469
( "sm3" , Stable , & [ "avx" ] ) ,
469
470
( "sm4" , Stable , & [ "avx2" ] ) ,
470
471
// This cannot actually be toggled, the ABI always fixes it, so it'd make little sense to
471
472
// stabilize. It must be in this list for the ABI check to be able to use it.
472
473
( "soft-float" , Stability :: Unstable ( sym:: x87_target_feature) , & [ ] ) ,
473
- ( "sse" , Stable , & [ ] ) ,
474
+ ( "sse" , Stable , & [ "cpuid" ] ) ,
474
475
( "sse2" , Stable , & [ "sse" ] ) ,
475
476
( "sse3" , Stable , & [ "sse2" ] ) ,
476
477
( "sse4.1" , Stable , & [ "ssse3" ] ) ,
477
478
( "sse4.2" , Stable , & [ "sse4.1" ] ) ,
478
479
( "sse4a" , Stable , & [ "sse3" ] ) ,
479
480
( "ssse3" , Stable , & [ "sse3" ] ) ,
480
- ( "tbm" , Stable , & [ ] ) ,
481
+ ( "tbm" , Stable , & [ "cpuid" ] ) ,
481
482
( "vaes" , Stable , & [ "avx2" , "aes" ] ) ,
482
483
( "vpclmulqdq" , Stable , & [ "avx" , "pclmulqdq" ] ) ,
483
484
( "widekl" , Stable , & [ "kl" ] ) ,
484
- ( "x87" , Unstable ( sym:: x87_target_feature) , & [ ] ) ,
485
+ ( "x87" , Unstable ( sym:: x87_target_feature) , & [ "cpuid" ] ) ,
485
486
( "xop" , Unstable ( sym:: xop_target_feature) , & [ /*"fma4", */ "avx" , "sse4a" ] ) ,
486
- ( "xsave" , Stable , & [ ] ) ,
487
+ ( "xsave" , Stable , & [ "cpuid" ] ) ,
487
488
( "xsavec" , Stable , & [ "xsave" ] ) ,
488
489
( "xsaveopt" , Stable , & [ "xsave" ] ) ,
489
490
( "xsaves" , Stable , & [ "xsave" ] ) ,
0 commit comments