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

``