Auto merge of #138742 - taiki-e:riscv-vector, r=Amanieu · rust-lang/rust@85f518e (original) (raw)
`@@ -497,7 +497,8 @@ static RISCV_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
`
497
497
`("m", Stable, &[]),
`
498
498
`("relax", Unstable(sym::riscv_target_feature), &[]),
`
499
499
`("unaligned-scalar-mem", Unstable(sym::riscv_target_feature), &[]),
`
500
``
`-
("v", Unstable(sym::riscv_target_feature), &[]),
`
``
500
`+
("unaligned-vector-mem", Unstable(sym::riscv_target_feature), &[]),
`
``
501
`+
("v", Unstable(sym::riscv_target_feature), &["zvl128b", "zve64d"]),
`
501
502
`("za128rs", Unstable(sym::riscv_target_feature), &[]),
`
502
503
`("za64rs", Unstable(sym::riscv_target_feature), &[]),
`
503
504
`("zaamo", Unstable(sym::riscv_target_feature), &[]),
`
`@@ -529,6 +530,41 @@ static RISCV_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
`
529
530
`("zksed", Stable, &[]),
`
530
531
`("zksh", Stable, &[]),
`
531
532
`("zkt", Stable, &[]),
`
``
533
`+
("zvbb", Unstable(sym::riscv_target_feature), &["zvkb"]),
`
``
534
`+
("zvbc", Unstable(sym::riscv_target_feature), &["zve64x"]),
`
``
535
`+
("zve32f", Unstable(sym::riscv_target_feature), &["zve32x", "f"]),
`
``
536
`+
("zve32x", Unstable(sym::riscv_target_feature), &["zvl32b"]),
`
``
537
`+
("zve64d", Unstable(sym::riscv_target_feature), &["zve64f", "d"]),
`
``
538
`+
("zve64f", Unstable(sym::riscv_target_feature), &["zve32f", "zve64x"]),
`
``
539
`+
("zve64x", Unstable(sym::riscv_target_feature), &["zve32x", "zvl64b"]),
`
``
540
`+
("zvfh", Unstable(sym::riscv_target_feature), &["zvfhmin", "zfhmin"]),
`
``
541
`+
("zvfhmin", Unstable(sym::riscv_target_feature), &["zve32f"]),
`
``
542
`+
("zvkb", Unstable(sym::riscv_target_feature), &["zve32x"]),
`
``
543
`+
("zvkg", Unstable(sym::riscv_target_feature), &["zve32x"]),
`
``
544
`+
("zvkn", Unstable(sym::riscv_target_feature), &["zvkned", "zvknhb", "zvkb", "zvkt"]),
`
``
545
`+
("zvknc", Unstable(sym::riscv_target_feature), &["zvkn", "zvbc"]),
`
``
546
`+
("zvkned", Unstable(sym::riscv_target_feature), &["zve32x"]),
`
``
547
`+
("zvkng", Unstable(sym::riscv_target_feature), &["zvkn", "zvkg"]),
`
``
548
`+
("zvknha", Unstable(sym::riscv_target_feature), &["zve32x"]),
`
``
549
`+
("zvknhb", Unstable(sym::riscv_target_feature), &["zve64x"]),
`
``
550
`+
("zvks", Unstable(sym::riscv_target_feature), &["zvksed", "zvksh", "zvkb", "zvkt"]),
`
``
551
`+
("zvksc", Unstable(sym::riscv_target_feature), &["zvks", "zvbc"]),
`
``
552
`+
("zvksed", Unstable(sym::riscv_target_feature), &["zve32x"]),
`
``
553
`+
("zvksg", Unstable(sym::riscv_target_feature), &["zvks", "zvkg"]),
`
``
554
`+
("zvksh", Unstable(sym::riscv_target_feature), &["zve32x"]),
`
``
555
`+
("zvkt", Unstable(sym::riscv_target_feature), &[]),
`
``
556
`+
("zvl1024b", Unstable(sym::riscv_target_feature), &["zvl512b"]),
`
``
557
`+
("zvl128b", Unstable(sym::riscv_target_feature), &["zvl64b"]),
`
``
558
`+
("zvl16384b", Unstable(sym::riscv_target_feature), &["zvl8192b"]),
`
``
559
`+
("zvl2048b", Unstable(sym::riscv_target_feature), &["zvl1024b"]),
`
``
560
`+
("zvl256b", Unstable(sym::riscv_target_feature), &["zvl128b"]),
`
``
561
`+
("zvl32768b", Unstable(sym::riscv_target_feature), &["zvl16384b"]),
`
``
562
`+
("zvl32b", Unstable(sym::riscv_target_feature), &[]),
`
``
563
`+
("zvl4096b", Unstable(sym::riscv_target_feature), &["zvl2048b"]),
`
``
564
`+
("zvl512b", Unstable(sym::riscv_target_feature), &["zvl256b"]),
`
``
565
`+
("zvl64b", Unstable(sym::riscv_target_feature), &["zvl32b"]),
`
``
566
`+
("zvl65536b", Unstable(sym::riscv_target_feature), &["zvl32768b"]),
`
``
567
`+
("zvl8192b", Unstable(sym::riscv_target_feature), &["zvl4096b"]),
`
532
568
`// tidy-alphabetical-end
`
533
569
`];
`
534
570
``
`@@ -704,8 +740,20 @@ const ARM_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[(1
`
704
740
`const POWERPC_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[(128, "altivec")];
`
705
741
`const WASM_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[(128, "simd128")];
`
706
742
`const S390X_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[(128, "vector")];
`
707
``
`-
const RISCV_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] =
`
708
``
`-
&[/*(64, "zvl64b"), */ (128, "v")];
`
``
743
`+
const RISCV_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[
`
``
744
`+
(32, "zvl32b"),
`
``
745
`+
(64, "zvl64b"),
`
``
746
`+
(128, "zvl128b"),
`
``
747
`+
(256, "zvl256b"),
`
``
748
`+
(512, "zvl512b"),
`
``
749
`+
(1024, "zvl1024b"),
`
``
750
`+
(2048, "zvl2048b"),
`
``
751
`+
(4096, "zvl4096b"),
`
``
752
`+
(8192, "zvl8192b"),
`
``
753
`+
(16384, "zvl16384b"),
`
``
754
`+
(32768, "zvl32768b"),
`
``
755
`+
(65536, "zvl65536b"),
`
``
756
`+
];
`
709
757
`// Always warn on SPARC, as the necessary target features cannot be enabled in Rust at the moment.
`
710
758
`const SPARC_FEATURES_FOR_CORRECT_VECTOR_ABI: &'static [(u64, &'static str)] = &[/(64, "vis")/];
`
711
759
``