| author | bors <bors@rust-lang.org> 2025-07-22 15:25:31 UTC |
| committer | bors <bors@rust-lang.org> 2025-07-22 15:25:31 UTC |
| log | 2e5367566819ca7878baa9600ae7a93eb0e37bbf |
| tree | 6b65029625eb4b6e726b826197e617728788430e |
| parent | 35487a2e7c80012129c38f55c970109a1538c91f |
| parent | 9b7d31c851cabc2e6e541d3cf146787d597a9166 |
stdarch subtree update
Subtree update of `stdarch` to https://github.com/rust-lang/stdarch/commit/5531955678494ee28ec02130a6d94082ad4532da.
Created using https://github.com/rust-lang/josh-sync.
I saw that there were non-trivial changes made to `std_detect` in `stdarch` recently. So I want to get them merged here before we move forward with https://github.com/rust-lang/rust/pull/143412.
r? `@folkertdev`72 files changed, 4642 insertions(+), 5042 deletions(-)
library/stdarch/.github/workflows/main.yml+23| ... | @@ -255,6 +255,28 @@ jobs: | ... | @@ -255,6 +255,28 @@ jobs: |
| 255 | env: | 255 | env: |
| 256 | TARGET: ${{ matrix.target.tuple }} | 256 | TARGET: ${{ matrix.target.tuple }} |
| 257 | 257 | ||
| 258 | # Check that the generated files agree with the checked-in versions. | ||
| 259 | check-stdarch-gen: | ||
| 260 | needs: [style] | ||
| 261 | name: Check stdarch-gen-{arm, loongarch} output | ||
| 262 | runs-on: ubuntu-latest | ||
| 263 | steps: | ||
| 264 | - uses: actions/checkout@v4 | ||
| 265 | - name: Install Rust | ||
| 266 | run: rustup update nightly && rustup default nightly && rustup component add rustfmt | ||
| 267 | - name: Check arm spec | ||
| 268 | run: | | ||
| 269 | cargo run --bin=stdarch-gen-arm --release -- crates/stdarch-gen-arm/spec | ||
| 270 | git diff --exit-code | ||
| 271 | - name: Check lsx.spec | ||
| 272 | run: | | ||
| 273 | cargo run --bin=stdarch-gen-loongarch --release -- crates/stdarch-gen-loongarch/lsx.spec | ||
| 274 | git diff --exit-code | ||
| 275 | - name: Check lasx.spec | ||
| 276 | run: | | ||
| 277 | cargo run --bin=stdarch-gen-loongarch --release -- crates/stdarch-gen-loongarch/lasx.spec | ||
| 278 | git diff --exit-code | ||
| 279 | |||
| 258 | build-std-detect: | 280 | build-std-detect: |
| 259 | needs: [style] | 281 | needs: [style] |
| 260 | name: Build std_detect | 282 | name: Build std_detect |
| ... | @@ -271,6 +293,7 @@ jobs: | ... | @@ -271,6 +293,7 @@ jobs: |
| 271 | - verify | 293 | - verify |
| 272 | - test | 294 | - test |
| 273 | - build-std-detect | 295 | - build-std-detect |
| 296 | - check-stdarch-gen | ||
| 274 | runs-on: ubuntu-latest | 297 | runs-on: ubuntu-latest |
| 275 | # We need to ensure this job does *not* get skipped if its dependencies fail, | 298 | # We need to ensure this job does *not* get skipped if its dependencies fail, |
| 276 | # because a skipped job is considered a success by GitHub. So we have to | 299 | # because a skipped job is considered a success by GitHub. So we have to |
library/stdarch/.github/workflows/rustc-pull.yml created+22| ... | @@ -0,0 +1,22 @@ | ||
| 1 | # Perform a subtree sync (pull) using the josh-sync tool once every few days (or on demand). | ||
| 2 | name: rustc-pull | ||
| 3 | |||
| 4 | on: | ||
| 5 | workflow_dispatch: | ||
| 6 | schedule: | ||
| 7 | # Run at 04:00 UTC every Monday and Thursday | ||
| 8 | - cron: '0 4 * * 1,4' | ||
| 9 | |||
| 10 | jobs: | ||
| 11 | pull: | ||
| 12 | if: github.repository == 'rust-lang/stdarch' | ||
| 13 | uses: rust-lang/josh-sync/.github/workflows/rustc-pull.yml@main | ||
| 14 | with: | ||
| 15 | # https://rust-lang.zulipchat.com/#narrow/channel/208962-t-libs.2Fstdarch/topic/Subtree.20sync.20automation/with/528461782 | ||
| 16 | zulip-stream-id: 208962 | ||
| 17 | zulip-bot-email: "stdarch-ci-bot@rust-lang.zulipchat.com" | ||
| 18 | pr-base-branch: master | ||
| 19 | branch-name: rustc-pull | ||
| 20 | secrets: | ||
| 21 | zulip-api-token: ${{ secrets.ZULIP_API_TOKEN }} | ||
| 22 | token: ${{ secrets.GITHUB_TOKEN }} | ||
library/stdarch/Cargo.lock+39-33| ... | @@ -73,20 +73,26 @@ version = "0.1.0" | ... | @@ -73,20 +73,26 @@ version = "0.1.0" |
| 73 | dependencies = [ | 73 | dependencies = [ |
| 74 | "proc-macro2", | 74 | "proc-macro2", |
| 75 | "quote", | 75 | "quote", |
| 76 | "syn 2.0.102", | 76 | "syn 2.0.104", |
| 77 | ] | 77 | ] |
| 78 | 78 | ||
| 79 | [[package]] | 79 | [[package]] |
| 80 | name = "autocfg" | 80 | name = "autocfg" |
| 81 | version = "1.4.0" | 81 | version = "1.5.0" |
| 82 | source = "registry+https://github.com/rust-lang/crates.io-index" | 82 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 83 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" | 83 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" |
| 84 | |||
| 85 | [[package]] | ||
| 86 | name = "bitflags" | ||
| 87 | version = "2.9.1" | ||
| 88 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| 89 | checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" | ||
| 84 | 90 | ||
| 85 | [[package]] | 91 | [[package]] |
| 86 | name = "cc" | 92 | name = "cc" |
| 87 | version = "1.2.26" | 93 | version = "1.2.30" |
| 88 | source = "registry+https://github.com/rust-lang/crates.io-index" | 94 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 89 | checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" | 95 | checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" |
| 90 | dependencies = [ | 96 | dependencies = [ |
| 91 | "shlex", | 97 | "shlex", |
| 92 | ] | 98 | ] |
| ... | @@ -99,9 +105,9 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" | ... | @@ -99,9 +105,9 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" |
| 99 | 105 | ||
| 100 | [[package]] | 106 | [[package]] |
| 101 | name = "clap" | 107 | name = "clap" |
| 102 | version = "4.5.40" | 108 | version = "4.5.41" |
| 103 | source = "registry+https://github.com/rust-lang/crates.io-index" | 109 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 104 | checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" | 110 | checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" |
| 105 | dependencies = [ | 111 | dependencies = [ |
| 106 | "clap_builder", | 112 | "clap_builder", |
| 107 | "clap_derive", | 113 | "clap_derive", |
| ... | @@ -109,9 +115,9 @@ dependencies = [ | ... | @@ -109,9 +115,9 @@ dependencies = [ |
| 109 | 115 | ||
| 110 | [[package]] | 116 | [[package]] |
| 111 | name = "clap_builder" | 117 | name = "clap_builder" |
| 112 | version = "4.5.40" | 118 | version = "4.5.41" |
| 113 | source = "registry+https://github.com/rust-lang/crates.io-index" | 119 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 114 | checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" | 120 | checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" |
| 115 | dependencies = [ | 121 | dependencies = [ |
| 116 | "anstream", | 122 | "anstream", |
| 117 | "anstyle", | 123 | "anstyle", |
| ... | @@ -121,14 +127,14 @@ dependencies = [ | ... | @@ -121,14 +127,14 @@ dependencies = [ |
| 121 | 127 | ||
| 122 | [[package]] | 128 | [[package]] |
| 123 | name = "clap_derive" | 129 | name = "clap_derive" |
| 124 | version = "4.5.40" | 130 | version = "4.5.41" |
| 125 | source = "registry+https://github.com/rust-lang/crates.io-index" | 131 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 126 | checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" | 132 | checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" |
| 127 | dependencies = [ | 133 | dependencies = [ |
| 128 | "heck", | 134 | "heck", |
| 129 | "proc-macro2", | 135 | "proc-macro2", |
| 130 | "quote", | 136 | "quote", |
| 131 | "syn 2.0.102", | 137 | "syn 2.0.104", |
| 132 | ] | 138 | ] |
| 133 | 139 | ||
| 134 | [[package]] | 140 | [[package]] |
| ... | @@ -338,9 +344,9 @@ dependencies = [ | ... | @@ -338,9 +344,9 @@ dependencies = [ |
| 338 | 344 | ||
| 339 | [[package]] | 345 | [[package]] |
| 340 | name = "indexmap" | 346 | name = "indexmap" |
| 341 | version = "2.9.0" | 347 | version = "2.10.0" |
| 342 | source = "registry+https://github.com/rust-lang/crates.io-index" | 348 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 343 | checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" | 349 | checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" |
| 344 | dependencies = [ | 350 | dependencies = [ |
| 345 | "equivalent", | 351 | "equivalent", |
| 346 | "hashbrown 0.15.4", | 352 | "hashbrown 0.15.4", |
| ... | @@ -403,9 +409,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" | ... | @@ -403,9 +409,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" |
| 403 | 409 | ||
| 404 | [[package]] | 410 | [[package]] |
| 405 | name = "libc" | 411 | name = "libc" |
| 406 | version = "0.2.172" | 412 | version = "0.2.174" |
| 407 | source = "registry+https://github.com/rust-lang/crates.io-index" | 413 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 408 | checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" | 414 | checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" |
| 409 | 415 | ||
| 410 | [[package]] | 416 | [[package]] |
| 411 | name = "linked-hash-map" | 417 | name = "linked-hash-map" |
| ... | @@ -624,7 +630,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" | ... | @@ -624,7 +630,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" |
| 624 | dependencies = [ | 630 | dependencies = [ |
| 625 | "proc-macro2", | 631 | "proc-macro2", |
| 626 | "quote", | 632 | "quote", |
| 627 | "syn 2.0.102", | 633 | "syn 2.0.104", |
| 628 | ] | 634 | ] |
| 629 | 635 | ||
| 630 | [[package]] | 636 | [[package]] |
| ... | @@ -685,7 +691,7 @@ version = "0.1.0" | ... | @@ -685,7 +691,7 @@ version = "0.1.0" |
| 685 | dependencies = [ | 691 | dependencies = [ |
| 686 | "proc-macro2", | 692 | "proc-macro2", |
| 687 | "quote", | 693 | "quote", |
| 688 | "syn 2.0.102", | 694 | "syn 2.0.104", |
| 689 | ] | 695 | ] |
| 690 | 696 | ||
| 691 | [[package]] | 697 | [[package]] |
| ... | @@ -703,7 +709,6 @@ name = "stdarch-gen-arm" | ... | @@ -703,7 +709,6 @@ name = "stdarch-gen-arm" |
| 703 | version = "0.1.0" | 709 | version = "0.1.0" |
| 704 | dependencies = [ | 710 | dependencies = [ |
| 705 | "itertools", | 711 | "itertools", |
| 706 | "lazy_static", | ||
| 707 | "proc-macro2", | 712 | "proc-macro2", |
| 708 | "quote", | 713 | "quote", |
| 709 | "regex", | 714 | "regex", |
| ... | @@ -727,7 +732,6 @@ dependencies = [ | ... | @@ -727,7 +732,6 @@ dependencies = [ |
| 727 | "assert-instr-macro", | 732 | "assert-instr-macro", |
| 728 | "cc", | 733 | "cc", |
| 729 | "cfg-if", | 734 | "cfg-if", |
| 730 | "lazy_static", | ||
| 731 | "rustc-demangle", | 735 | "rustc-demangle", |
| 732 | "simd-test-macro", | 736 | "simd-test-macro", |
| 733 | "wasmprinter", | 737 | "wasmprinter", |
| ... | @@ -742,7 +746,7 @@ dependencies = [ | ... | @@ -742,7 +746,7 @@ dependencies = [ |
| 742 | "quote", | 746 | "quote", |
| 743 | "serde", | 747 | "serde", |
| 744 | "serde_json", | 748 | "serde_json", |
| 745 | "syn 2.0.102", | 749 | "syn 2.0.104", |
| 746 | ] | 750 | ] |
| 747 | 751 | ||
| 748 | [[package]] | 752 | [[package]] |
| ... | @@ -780,9 +784,9 @@ dependencies = [ | ... | @@ -780,9 +784,9 @@ dependencies = [ |
| 780 | 784 | ||
| 781 | [[package]] | 785 | [[package]] |
| 782 | name = "syn" | 786 | name = "syn" |
| 783 | version = "2.0.102" | 787 | version = "2.0.104" |
| 784 | source = "registry+https://github.com/rust-lang/crates.io-index" | 788 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 785 | checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462" | 789 | checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" |
| 786 | dependencies = [ | 790 | dependencies = [ |
| 787 | "proc-macro2", | 791 | "proc-macro2", |
| 788 | "quote", | 792 | "quote", |
| ... | @@ -834,21 +838,23 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" | ... | @@ -834,21 +838,23 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" |
| 834 | 838 | ||
| 835 | [[package]] | 839 | [[package]] |
| 836 | name = "wasmparser" | 840 | name = "wasmparser" |
| 837 | version = "0.113.3" | 841 | version = "0.235.0" |
| 838 | source = "registry+https://github.com/rust-lang/crates.io-index" | 842 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 839 | checksum = "286049849b5a5bd09a8773171be96824afabffc7cc3df6caaf33a38db6cd07ae" | 843 | checksum = "161296c618fa2d63f6ed5fffd1112937e803cb9ec71b32b01a76321555660917" |
| 840 | dependencies = [ | 844 | dependencies = [ |
| 841 | "indexmap 2.9.0", | 845 | "bitflags", |
| 846 | "indexmap 2.10.0", | ||
| 842 | "semver", | 847 | "semver", |
| 843 | ] | 848 | ] |
| 844 | 849 | ||
| 845 | [[package]] | 850 | [[package]] |
| 846 | name = "wasmprinter" | 851 | name = "wasmprinter" |
| 847 | version = "0.2.67" | 852 | version = "0.235.0" |
| 848 | source = "registry+https://github.com/rust-lang/crates.io-index" | 853 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 849 | checksum = "f6615a5587149e753bf4b93f90fa3c3f41c88597a7a2da72879afcabeda9648f" | 854 | checksum = "75aa8e9076de6b9544e6dab4badada518cca0bf4966d35b131bbd057aed8fa0a" |
| 850 | dependencies = [ | 855 | dependencies = [ |
| 851 | "anyhow", | 856 | "anyhow", |
| 857 | "termcolor", | ||
| 852 | "wasmparser", | 858 | "wasmparser", |
| 853 | ] | 859 | ] |
| 854 | 860 | ||
| ... | @@ -945,20 +951,20 @@ dependencies = [ | ... | @@ -945,20 +951,20 @@ dependencies = [ |
| 945 | 951 | ||
| 946 | [[package]] | 952 | [[package]] |
| 947 | name = "zerocopy" | 953 | name = "zerocopy" |
| 948 | version = "0.8.25" | 954 | version = "0.8.26" |
| 949 | source = "registry+https://github.com/rust-lang/crates.io-index" | 955 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 950 | checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" | 956 | checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" |
| 951 | dependencies = [ | 957 | dependencies = [ |
| 952 | "zerocopy-derive", | 958 | "zerocopy-derive", |
| 953 | ] | 959 | ] |
| 954 | 960 | ||
| 955 | [[package]] | 961 | [[package]] |
| 956 | name = "zerocopy-derive" | 962 | name = "zerocopy-derive" |
| 957 | version = "0.8.25" | 963 | version = "0.8.26" |
| 958 | source = "registry+https://github.com/rust-lang/crates.io-index" | 964 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 959 | checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" | 965 | checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" |
| 960 | dependencies = [ | 966 | dependencies = [ |
| 961 | "proc-macro2", | 967 | "proc-macro2", |
| 962 | "quote", | 968 | "quote", |
| 963 | "syn 2.0.102", | 969 | "syn 2.0.104", |
| 964 | ] | 970 | ] |
library/stdarch/Cargo.toml+2-1| ... | @@ -5,7 +5,8 @@ members = [ | ... | @@ -5,7 +5,8 @@ members = [ |
| 5 | "examples", | 5 | "examples", |
| 6 | ] | 6 | ] |
| 7 | exclude = [ | 7 | exclude = [ |
| 8 | "crates/wasm-assert-instr-tests" | 8 | "crates/wasm-assert-instr-tests", |
| 9 | "rust_programs", | ||
| 9 | ] | 10 | ] |
| 10 | 11 | ||
| 11 | [profile.release] | 12 | [profile.release] |
library/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile+2-2| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 3 | gcc \ | 3 | gcc \ |
| 4 | g++ \ | 4 | g++ \ |
| ... | @@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ | ... | @@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 10 | qemu-user \ | 10 | qemu-user \ |
| 11 | make \ | 11 | make \ |
| 12 | file \ | 12 | file \ |
| 13 | clang-19 \ | 13 | clang \ |
| 14 | lld | 14 | lld |
| 15 | 15 | ||
| 16 | ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \ | 16 | ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \ |
library/stdarch/ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile+4-4| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc \ | 4 | gcc \ |
| ... | @@ -9,15 +9,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ | ... | @@ -9,15 +9,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 9 | qemu-user \ | 9 | qemu-user \ |
| 10 | make \ | 10 | make \ |
| 11 | file \ | 11 | file \ |
| 12 | clang-19 \ | 12 | clang \ |
| 13 | curl \ | 13 | curl \ |
| 14 | xz-utils \ | 14 | xz-utils \ |
| 15 | lld | 15 | lld |
| 16 | 16 | ||
| 17 | ENV TOOLCHAIN="arm-gnu-toolchain-14.2.rel1-x86_64-aarch64_be-none-linux-gnu" | 17 | ENV TOOLCHAIN="arm-gnu-toolchain-14.3.rel1-x86_64-aarch64_be-none-linux-gnu" |
| 18 | 18 | ||
| 19 | # Download the aarch64_be gcc toolchain | 19 | # Download the aarch64_be gcc toolchain |
| 20 | RUN curl -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/${TOOLCHAIN}.tar.xz" -o "${TOOLCHAIN}.tar.xz" | 20 | RUN curl -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.rel1/binrel/${TOOLCHAIN}.tar.xz" -o "${TOOLCHAIN}.tar.xz" |
| 21 | RUN tar -xvf "${TOOLCHAIN}.tar.xz" | 21 | RUN tar -xvf "${TOOLCHAIN}.tar.xz" |
| 22 | RUN mkdir /toolchains && mv "./${TOOLCHAIN}" /toolchains | 22 | RUN mkdir /toolchains && mv "./${TOOLCHAIN}" /toolchains |
| 23 | 23 |
library/stdarch/ci/docker/arm-unknown-linux-gnueabihf/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 3 | gcc \ | 3 | gcc \ |
| 4 | ca-certificates \ | 4 | ca-certificates \ |
library/stdarch/ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile+1-1| ... | @@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ | ... | @@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 10 | qemu-user \ | 10 | qemu-user \ |
| 11 | make \ | 11 | make \ |
| 12 | file \ | 12 | file \ |
| 13 | clang-19 \ | 13 | clang \ |
| 14 | lld | 14 | lld |
| 15 | ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ | 15 | ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ |
| 16 | CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -cpu max -L /usr/arm-linux-gnueabihf" \ | 16 | CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -cpu max -L /usr/arm-linux-gnueabihf" \ |
library/stdarch/ci/docker/i586-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 3 | gcc-multilib \ | 3 | gcc-multilib \ |
| 4 | libc6-dev \ | 4 | libc6-dev \ |
library/stdarch/ci/docker/i686-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 3 | gcc-multilib \ | 3 | gcc-multilib \ |
| 4 | libc6-dev \ | 4 | libc6-dev \ |
library/stdarch/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile+2-2| ... | @@ -1,9 +1,9 @@ | ... | @@ -1,9 +1,9 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && \ | 3 | RUN apt-get update && \ |
| 4 | apt-get install -y --no-install-recommends \ | 4 | apt-get install -y --no-install-recommends \ |
| 5 | gcc libc6-dev qemu-user-static ca-certificates \ | 5 | gcc libc6-dev qemu-user-static ca-certificates \ |
| 6 | gcc-14-loongarch64-linux-gnu libc6-dev-loong64-cross | 6 | gcc-loongarch64-linux-gnu libc6-dev-loong64-cross |
| 7 | 7 | ||
| 8 | 8 | ||
| 9 | ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc-14 \ | 9 | ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc-14 \ |
library/stdarch/ci/docker/mips-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
library/stdarch/ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
library/stdarch/ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
library/stdarch/ci/docker/mipsel-unknown-linux-musl/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && \ | 3 | RUN apt-get update && \ |
| 4 | apt-get install -y --no-install-recommends \ | 4 | apt-get install -y --no-install-recommends \ |
library/stdarch/ci/docker/nvptx64-nvidia-cuda/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 3 | gcc \ | 3 | gcc \ |
| 4 | libc6-dev \ | 4 | libc6-dev \ |
library/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
library/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
library/stdarch/ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
library/stdarch/ci/docker/riscv32gc-unknown-linux-gnu/Dockerfile+2-2| ... | @@ -1,10 +1,10 @@ | ... | @@ -1,10 +1,10 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
| 5 | wget xz-utils make file llvm | 5 | wget xz-utils make file llvm |
| 6 | 6 | ||
| 7 | ENV VERSION=2025.01.20 | 7 | ENV VERSION=2025.07.03 |
| 8 | 8 | ||
| 9 | RUN wget "https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/${VERSION}/riscv32-glibc-ubuntu-24.04-gcc-nightly-${VERSION}-nightly.tar.xz" \ | 9 | RUN wget "https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/${VERSION}/riscv32-glibc-ubuntu-24.04-gcc-nightly-${VERSION}-nightly.tar.xz" \ |
| 10 | -O riscv-toolchain.tar.xz | 10 | -O riscv-toolchain.tar.xz |
library/stdarch/ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | gcc libc6-dev qemu-user ca-certificates \ | 4 | gcc libc6-dev qemu-user ca-certificates \ |
library/stdarch/ci/docker/s390x-unknown-linux-gnu/Dockerfile+1-1| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 4 | curl ca-certificates \ | 4 | curl ca-certificates \ |
library/stdarch/ci/docker/wasm32-wasip1/Dockerfile+5-3| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | 2 | ||
| 3 | ENV DEBIAN_FRONTEND=noninteractive | 3 | ENV DEBIAN_FRONTEND=noninteractive |
| 4 | RUN apt-get update -y && apt-get install -y --no-install-recommends \ | 4 | RUN apt-get update -y && apt-get install -y --no-install-recommends \ |
| ... | @@ -7,7 +7,9 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ | ... | @@ -7,7 +7,9 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \ |
| 7 | xz-utils \ | 7 | xz-utils \ |
| 8 | clang | 8 | clang |
| 9 | 9 | ||
| 10 | RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/v18.0.2/wasmtime-v18.0.2-x86_64-linux.tar.xz | tar xJf - | 10 | ENV VERSION=v34.0.1 |
| 11 | ENV PATH=$PATH:/wasmtime-v18.0.2-x86_64-linux | 11 | |
| 12 | RUN curl -L https://github.com/bytecodealliance/wasmtime/releases/download/${VERSION}/wasmtime-${VERSION}-x86_64-linux.tar.xz | tar xJf - | ||
| 13 | ENV PATH=$PATH:/wasmtime-${VERSION}-x86_64-linux | ||
| 12 | 14 | ||
| 13 | ENV CARGO_TARGET_WASM32_WASIP1_RUNNER="wasmtime --dir /checkout/target/wasm32-wasip1/release/deps::." | 15 | ENV CARGO_TARGET_WASM32_WASIP1_RUNNER="wasmtime --dir /checkout/target/wasm32-wasip1/release/deps::." |
library/stdarch/ci/docker/x86_64-unknown-linux-gnu/Dockerfile+2-2| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | FROM ubuntu:25.04 | 1 | FROM ubuntu:25.10 |
| 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ | 2 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 3 | gcc \ | 3 | gcc \ |
| 4 | libc6-dev \ | 4 | libc6-dev \ |
| ... | @@ -8,7 +8,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ | ... | @@ -8,7 +8,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 8 | wget \ | 8 | wget \ |
| 9 | xz-utils | 9 | xz-utils |
| 10 | 10 | ||
| 11 | RUN wget http://ci-mirrors.rust-lang.org/stdarch/sde-external-9.53.0-2025-03-16-lin.tar.xz -O sde.tar.xz | 11 | RUN wget http://ci-mirrors.rust-lang.org/stdarch/sde-external-9.58.0-2025-06-16-lin.tar.xz -O sde.tar.xz |
| 12 | RUN mkdir intel-sde | 12 | RUN mkdir intel-sde |
| 13 | RUN tar -xJf sde.tar.xz --strip-components=1 -C intel-sde | 13 | RUN tar -xJf sde.tar.xz --strip-components=1 -C intel-sde |
| 14 | ENV CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="/intel-sde/sde64 \ | 14 | ENV CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="/intel-sde/sde64 \ |
library/stdarch/ci/docker/x86_64-unknown-linux-gnu/cpuid.def+14-22| ... | @@ -1,41 +1,35 @@ | ... | @@ -1,41 +1,35 @@ |
| 1 | # Copyright (C) 2024-2024 Intel Corporation. | 1 | # Copyright (C) 2017-2025 Intel Corporation. |
| 2 | # | 2 | # |
| 3 | # This software and the related documents are Intel copyrighted materials, and your | 3 | # This software and the related documents are Intel copyrighted materials, and your |
| 4 | # use of them is governed by the express license under which they were provided to | 4 | # use of them is governed by the express license under which they were provided to |
| 5 | # you ("License"). Unless the License provides otherwise, you may not use, modify, | 5 | # you ("License"). Unless the License provides otherwise, you may not use, modify, |
| 6 | # copy, publish, distribute, disclose or transmit this software or the related | 6 | # copy, publish, distribute, disclose or transmit this software or the related |
| 7 | # documents without Intel's prior written permission. | 7 | # documents without Intel's prior written permission. |
| 8 | # | 8 | # |
| 9 | # This software and the related documents are provided as is, with no express or | 9 | # This software and the related documents are provided as is, with no express or |
| 10 | # implied warranties, other than those that are expressly stated in the License. | 10 | # implied warranties, other than those that are expressly stated in the License. |
| 11 | # | 11 | # |
| 12 | # The CPUID information in this file is for software enabling purposes only and | ||
| 13 | # it is not a full and accurate representation of the CPU under development which | ||
| 14 | # it represents. | ||
| 15 | # The CPUID information in this file is not a guarantee of the availability of | ||
| 16 | # features or characteristics in the final released CPU. | ||
| 17 | # | ||
| 18 | # CPUID_VERSION = 1.0 | 12 | # CPUID_VERSION = 1.0 |
| 19 | # Input => Output | 13 | # Input => Output |
| 20 | # EAX ECX => EAX EBX ECX EDX | 14 | # EAX ECX => EAX EBX ECX EDX |
| 21 | 00000000 ******** => 00000024 68747541 444d4163 69746e65 | 15 | 00000000 ******** => 00000024 68747541 444d4163 69746e65 |
| 22 | 00000001 ******** => 000d06f0 00100800 7ffaf3ff bfebfbff | 16 | 00000001 ******** => 00400f10 00100800 7ffaf3ff bfebfbff |
| 23 | 00000002 ******** => 76035a01 00f0b6ff 00000000 00c10000 | 17 | 00000002 ******** => 76035a01 00f0b6ff 00000000 00c10000 |
| 24 | 00000003 ******** => 00000000 00000000 00000000 00000000 | 18 | 00000003 ******** => 00000000 00000000 00000000 00000000 |
| 25 | 00000004 00000000 => 7c004121 02c0003f 0000003f 00000000 #Deterministic Cache | 19 | 00000004 00000000 => 7c004121 01c0003f 0000003f 00000000 #Deterministic Cache |
| 26 | 00000004 00000001 => 7c004122 01c0003f 0000003f 00000000 | 20 | 00000004 00000001 => 7c004122 01c0003f 0000003f 00000000 |
| 27 | 00000004 00000002 => 7c004143 03c0003f 000007ff 00000000 | 21 | 00000004 00000002 => 7c004143 03c0003f 000003ff 00000000 |
| 28 | 00000004 00000003 => 7c0fc163 04c0003f 0005ffff 00000004 | 22 | 00000004 00000003 => 7c0fc163 0280003f 0000dfff 00000004 |
| 29 | 00000004 00000004 => 00000000 00000000 00000000 00000000 | 23 | 00000004 00000004 => 00000000 00000000 00000000 00000000 |
| 30 | 00000005 ******** => 00000040 00000040 00000003 00042120 #MONITOR/MWAIT | 24 | 00000005 ******** => 00000040 00000040 00000003 00042120 #MONITOR/MWAIT |
| 31 | 00000006 ******** => 00000077 00000002 00000001 00000000 #Thermal and Power | 25 | 00000006 ******** => 00000077 00000002 00000001 00000000 #Thermal and Power |
| 32 | 00000007 00000000 => 00000001 f3bfbfbf bbc05ffe 03d55130 #Extended Features | 26 | 00000007 00000000 => 00000001 f3bfbfbf bac05ffe 03d54130 #Extended Features |
| 33 | 00000007 00000001 => 88ee00bf 00000002 00000000 1d29cd3e | 27 | 00000007 00000001 => 98ee00bf 00000002 00000020 1d29cd3e |
| 34 | 00000008 ******** => 00000000 00000000 00000000 00000000 | 28 | 00000008 ******** => 00000000 00000000 00000000 00000000 |
| 35 | 00000009 ******** => 00000000 00000000 00000000 00000000 #Direct Cache | 29 | 00000009 ******** => 00000000 00000000 00000000 00000000 #Direct Cache |
| 36 | 0000000a ******** => 07300403 00000000 00000000 00000603 | 30 | 0000000a ******** => 07300403 00000000 00000000 00000603 |
| 37 | 0000000b 00000000 => 00000001 00000002 00000100 0000001e #Extended Topology | 31 | 0000000b 00000000 => 00000001 00000002 00000100 00000000 #Extended Topology |
| 38 | 0000000b 00000001 => 00000004 00000002 00000201 0000001e | 32 | 0000000b 00000001 => 00000004 00000002 00000201 00000000 |
| 39 | 0000000c ******** => 00000000 00000000 00000000 00000000 | 33 | 0000000c ******** => 00000000 00000000 00000000 00000000 |
| 40 | 0000000d 00000000 => 000e02e7 00002b00 00002b00 00000000 #xcr0 | 34 | 0000000d 00000000 => 000e02e7 00002b00 00002b00 00000000 #xcr0 |
| 41 | 0000000d 00000001 => 0000001f 00000240 00000100 00000000 | 35 | 0000000d 00000001 => 0000001f 00000240 00000100 00000000 |
| ... | @@ -52,10 +46,8 @@ | ... | @@ -52,10 +46,8 @@ |
| 52 | 0000001d 00000001 => 04002000 00080040 00000010 00000000 #AMX Palette1 | 46 | 0000001d 00000001 => 04002000 00080040 00000010 00000000 #AMX Palette1 |
| 53 | 0000001e 00000000 => 00000001 00004010 00000000 00000000 #AMX Tmul | 47 | 0000001e 00000000 => 00000001 00004010 00000000 00000000 #AMX Tmul |
| 54 | 0000001e 00000001 => 000001ff 00000000 00000000 00000000 | 48 | 0000001e 00000001 => 000001ff 00000000 00000000 00000000 |
| 55 | 0000001f 00000000 => 00000001 00000002 00000100 0000001e | 49 | 00000024 00000000 => 00000001 00070002 00000000 00000000 #AVX10 |
| 56 | 0000001f 00000001 => 00000007 00000070 00000201 0000001e | 50 | 00000024 00000001 => 00000000 00000000 00000004 00000000 |
| 57 | 0000001f 00000002 => 00000000 00000000 00000002 0000001e | ||
| 58 | 00000024 00000000 => 00000000 00070002 00000000 00000000 #AVX10 | ||
| 59 | 80000000 ******** => 80000008 00000000 00000000 00000000 | 51 | 80000000 ******** => 80000008 00000000 00000000 00000000 |
| 60 | 80000001 ******** => 00000000 00000000 00200961 2c100000 | 52 | 80000001 ******** => 00000000 00000000 00200961 2c100000 |
| 61 | 80000002 ******** => 00000000 00000000 00000000 00000000 | 53 | 80000002 ******** => 00000000 00000000 00000000 00000000 |
| ... | @@ -66,6 +58,6 @@ | ... | @@ -66,6 +58,6 @@ |
| 66 | 80000007 ******** => 00000000 00000000 00000000 00000100 | 58 | 80000007 ******** => 00000000 00000000 00000000 00000100 |
| 67 | 80000008 ******** => 00003028 00000200 00000200 00000000 | 59 | 80000008 ******** => 00003028 00000200 00000200 00000000 |
| 68 | 60 | ||
| 69 | # This file was copied from intel-sde/misc/cpuid/dmr/cpuid.def, and modified to | 61 | # This file was copied from intel-sde/misc/cpuid/future/cpuid.def, and modified to |
| 70 | # use "AuthenticAMD" as the vendor and the support for `XOP`, `SSE4a`, `TBM`, | 62 | # use "AuthenticAMD" as the vendor and the support for `XOP`, `SSE4a`, `TBM`, |
| 71 | # `AVX512_VP2INTERSECT` and the VEX variants of AVX512 was added in the CPUID. | 63 | # `AVX512_VP2INTERSECT` and the VEX variants of AVX512 was added in the CPUID. |
library/stdarch/ci/run.sh+3-3| ... | @@ -144,21 +144,21 @@ case ${TARGET} in | ... | @@ -144,21 +144,21 @@ case ${TARGET} in |
| 144 | aarch64-unknown-linux-gnu*) | 144 | aarch64-unknown-linux-gnu*) |
| 145 | TEST_CPPFLAGS="-fuse-ld=lld -I/usr/aarch64-linux-gnu/include/ -I/usr/aarch64-linux-gnu/include/c++/9/aarch64-linux-gnu/" | 145 | TEST_CPPFLAGS="-fuse-ld=lld -I/usr/aarch64-linux-gnu/include/ -I/usr/aarch64-linux-gnu/include/c++/9/aarch64-linux-gnu/" |
| 146 | TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_aarch64.txt | 146 | TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_aarch64.txt |
| 147 | TEST_CXX_COMPILER="clang++-19" | 147 | TEST_CXX_COMPILER="clang++" |
| 148 | TEST_RUNNER="${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}" | 148 | TEST_RUNNER="${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}" |
| 149 | ;; | 149 | ;; |
| 150 | 150 | ||
| 151 | aarch64_be-unknown-linux-gnu*) | 151 | aarch64_be-unknown-linux-gnu*) |
| 152 | TEST_CPPFLAGS="-fuse-ld=lld" | 152 | TEST_CPPFLAGS="-fuse-ld=lld" |
| 153 | TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_aarch64.txt | 153 | TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_aarch64.txt |
| 154 | TEST_CXX_COMPILER="clang++-19" | 154 | TEST_CXX_COMPILER="clang++" |
| 155 | TEST_RUNNER="${CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER}" | 155 | TEST_RUNNER="${CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER}" |
| 156 | ;; | 156 | ;; |
| 157 | 157 | ||
| 158 | armv7-unknown-linux-gnueabihf*) | 158 | armv7-unknown-linux-gnueabihf*) |
| 159 | TEST_CPPFLAGS="-fuse-ld=lld -I/usr/arm-linux-gnueabihf/include/ -I/usr/arm-linux-gnueabihf/include/c++/9/arm-linux-gnueabihf/" | 159 | TEST_CPPFLAGS="-fuse-ld=lld -I/usr/arm-linux-gnueabihf/include/ -I/usr/arm-linux-gnueabihf/include/c++/9/arm-linux-gnueabihf/" |
| 160 | TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_arm.txt | 160 | TEST_SKIP_INTRINSICS=crates/intrinsic-test/missing_arm.txt |
| 161 | TEST_CXX_COMPILER="clang++-19" | 161 | TEST_CXX_COMPILER="clang++" |
| 162 | TEST_RUNNER="${CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER}" | 162 | TEST_RUNNER="${CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER}" |
| 163 | ;; | 163 | ;; |
| 164 | *) | 164 | *) |
library/stdarch/crates/core_arch/src/aarch64/neon/generated.rs+100-496| ... | @@ -51,7 +51,7 @@ pub fn __crc32d(crc: u32, data: u64) -> u32 { | ... | @@ -51,7 +51,7 @@ pub fn __crc32d(crc: u32, data: u64) -> u32 { |
| 51 | #[inline] | 51 | #[inline] |
| 52 | #[target_feature(enable = "neon")] | 52 | #[target_feature(enable = "neon")] |
| 53 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 53 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 54 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(sabal))] | 54 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(sabal2))] |
| 55 | pub fn vabal_high_s8(a: int16x8_t, b: int8x16_t, c: int8x16_t) -> int16x8_t { | 55 | pub fn vabal_high_s8(a: int16x8_t, b: int8x16_t, c: int8x16_t) -> int16x8_t { |
| 56 | unsafe { | 56 | unsafe { |
| 57 | let d: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); | 57 | let d: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -66,7 +66,7 @@ pub fn vabal_high_s8(a: int16x8_t, b: int8x16_t, c: int8x16_t) -> int16x8_t { | ... | @@ -66,7 +66,7 @@ pub fn vabal_high_s8(a: int16x8_t, b: int8x16_t, c: int8x16_t) -> int16x8_t { |
| 66 | #[inline] | 66 | #[inline] |
| 67 | #[target_feature(enable = "neon")] | 67 | #[target_feature(enable = "neon")] |
| 68 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 68 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 69 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(sabal))] | 69 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(sabal2))] |
| 70 | pub fn vabal_high_s16(a: int32x4_t, b: int16x8_t, c: int16x8_t) -> int32x4_t { | 70 | pub fn vabal_high_s16(a: int32x4_t, b: int16x8_t, c: int16x8_t) -> int32x4_t { |
| 71 | unsafe { | 71 | unsafe { |
| 72 | let d: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); | 72 | let d: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); |
| ... | @@ -81,7 +81,7 @@ pub fn vabal_high_s16(a: int32x4_t, b: int16x8_t, c: int16x8_t) -> int32x4_t { | ... | @@ -81,7 +81,7 @@ pub fn vabal_high_s16(a: int32x4_t, b: int16x8_t, c: int16x8_t) -> int32x4_t { |
| 81 | #[inline] | 81 | #[inline] |
| 82 | #[target_feature(enable = "neon")] | 82 | #[target_feature(enable = "neon")] |
| 83 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 83 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 84 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(sabal))] | 84 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(sabal2))] |
| 85 | pub fn vabal_high_s32(a: int64x2_t, b: int32x4_t, c: int32x4_t) -> int64x2_t { | 85 | pub fn vabal_high_s32(a: int64x2_t, b: int32x4_t, c: int32x4_t) -> int64x2_t { |
| 86 | unsafe { | 86 | unsafe { |
| 87 | let d: int32x2_t = simd_shuffle!(b, b, [2, 3]); | 87 | let d: int32x2_t = simd_shuffle!(b, b, [2, 3]); |
| ... | @@ -96,7 +96,7 @@ pub fn vabal_high_s32(a: int64x2_t, b: int32x4_t, c: int32x4_t) -> int64x2_t { | ... | @@ -96,7 +96,7 @@ pub fn vabal_high_s32(a: int64x2_t, b: int32x4_t, c: int32x4_t) -> int64x2_t { |
| 96 | #[inline] | 96 | #[inline] |
| 97 | #[target_feature(enable = "neon")] | 97 | #[target_feature(enable = "neon")] |
| 98 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 98 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 99 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(uabal))] | 99 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(uabal2))] |
| 100 | pub fn vabal_high_u8(a: uint16x8_t, b: uint8x16_t, c: uint8x16_t) -> uint16x8_t { | 100 | pub fn vabal_high_u8(a: uint16x8_t, b: uint8x16_t, c: uint8x16_t) -> uint16x8_t { |
| 101 | unsafe { | 101 | unsafe { |
| 102 | let d: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); | 102 | let d: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -110,7 +110,7 @@ pub fn vabal_high_u8(a: uint16x8_t, b: uint8x16_t, c: uint8x16_t) -> uint16x8_t | ... | @@ -110,7 +110,7 @@ pub fn vabal_high_u8(a: uint16x8_t, b: uint8x16_t, c: uint8x16_t) -> uint16x8_t |
| 110 | #[inline] | 110 | #[inline] |
| 111 | #[target_feature(enable = "neon")] | 111 | #[target_feature(enable = "neon")] |
| 112 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 112 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 113 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(uabal))] | 113 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(uabal2))] |
| 114 | pub fn vabal_high_u16(a: uint32x4_t, b: uint16x8_t, c: uint16x8_t) -> uint32x4_t { | 114 | pub fn vabal_high_u16(a: uint32x4_t, b: uint16x8_t, c: uint16x8_t) -> uint32x4_t { |
| 115 | unsafe { | 115 | unsafe { |
| 116 | let d: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); | 116 | let d: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); |
| ... | @@ -124,7 +124,7 @@ pub fn vabal_high_u16(a: uint32x4_t, b: uint16x8_t, c: uint16x8_t) -> uint32x4_t | ... | @@ -124,7 +124,7 @@ pub fn vabal_high_u16(a: uint32x4_t, b: uint16x8_t, c: uint16x8_t) -> uint32x4_t |
| 124 | #[inline] | 124 | #[inline] |
| 125 | #[target_feature(enable = "neon")] | 125 | #[target_feature(enable = "neon")] |
| 126 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 126 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 127 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(uabal))] | 127 | #[cfg_attr(all(test, not(target_env = "msvc")), assert_instr(uabal2))] |
| 128 | pub fn vabal_high_u32(a: uint64x2_t, b: uint32x4_t, c: uint32x4_t) -> uint64x2_t { | 128 | pub fn vabal_high_u32(a: uint64x2_t, b: uint32x4_t, c: uint32x4_t) -> uint64x2_t { |
| 129 | unsafe { | 129 | unsafe { |
| 130 | let d: uint32x2_t = simd_shuffle!(b, b, [2, 3]); | 130 | let d: uint32x2_t = simd_shuffle!(b, b, [2, 3]); |
| ... | @@ -197,7 +197,7 @@ pub fn vabdh_f16(a: f16, b: f16) -> f16 { | ... | @@ -197,7 +197,7 @@ pub fn vabdh_f16(a: f16, b: f16) -> f16 { |
| 197 | #[inline] | 197 | #[inline] |
| 198 | #[target_feature(enable = "neon")] | 198 | #[target_feature(enable = "neon")] |
| 199 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 199 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 200 | #[cfg_attr(test, assert_instr(sabdl))] | 200 | #[cfg_attr(test, assert_instr(sabdl2))] |
| 201 | pub fn vabdl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { | 201 | pub fn vabdl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { |
| 202 | unsafe { | 202 | unsafe { |
| 203 | let c: int16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]); | 203 | let c: int16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]); |
| ... | @@ -211,7 +211,7 @@ pub fn vabdl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { | ... | @@ -211,7 +211,7 @@ pub fn vabdl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { |
| 211 | #[inline] | 211 | #[inline] |
| 212 | #[target_feature(enable = "neon")] | 212 | #[target_feature(enable = "neon")] |
| 213 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 213 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 214 | #[cfg_attr(test, assert_instr(sabdl))] | 214 | #[cfg_attr(test, assert_instr(sabdl2))] |
| 215 | pub fn vabdl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { | 215 | pub fn vabdl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { |
| 216 | unsafe { | 216 | unsafe { |
| 217 | let c: int32x2_t = simd_shuffle!(a, a, [2, 3]); | 217 | let c: int32x2_t = simd_shuffle!(a, a, [2, 3]); |
| ... | @@ -225,7 +225,7 @@ pub fn vabdl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { | ... | @@ -225,7 +225,7 @@ pub fn vabdl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { |
| 225 | #[inline] | 225 | #[inline] |
| 226 | #[target_feature(enable = "neon")] | 226 | #[target_feature(enable = "neon")] |
| 227 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 227 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 228 | #[cfg_attr(test, assert_instr(sabdl))] | 228 | #[cfg_attr(test, assert_instr(sabdl2))] |
| 229 | pub fn vabdl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { | 229 | pub fn vabdl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { |
| 230 | unsafe { | 230 | unsafe { |
| 231 | let c: int8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); | 231 | let c: int8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -238,7 +238,7 @@ pub fn vabdl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { | ... | @@ -238,7 +238,7 @@ pub fn vabdl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { |
| 238 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_high_u8)"] | 238 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_high_u8)"] |
| 239 | #[inline] | 239 | #[inline] |
| 240 | #[target_feature(enable = "neon")] | 240 | #[target_feature(enable = "neon")] |
| 241 | #[cfg_attr(test, assert_instr(uabdl))] | 241 | #[cfg_attr(test, assert_instr(uabdl2))] |
| 242 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 242 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 243 | pub fn vabdl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { | 243 | pub fn vabdl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { |
| 244 | unsafe { | 244 | unsafe { |
| ... | @@ -251,7 +251,7 @@ pub fn vabdl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { | ... | @@ -251,7 +251,7 @@ pub fn vabdl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { |
| 251 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_high_u16)"] | 251 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_high_u16)"] |
| 252 | #[inline] | 252 | #[inline] |
| 253 | #[target_feature(enable = "neon")] | 253 | #[target_feature(enable = "neon")] |
| 254 | #[cfg_attr(test, assert_instr(uabdl))] | 254 | #[cfg_attr(test, assert_instr(uabdl2))] |
| 255 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 255 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 256 | pub fn vabdl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { | 256 | pub fn vabdl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { |
| 257 | unsafe { | 257 | unsafe { |
| ... | @@ -264,7 +264,7 @@ pub fn vabdl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { | ... | @@ -264,7 +264,7 @@ pub fn vabdl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { |
| 264 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_high_u32)"] | 264 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_high_u32)"] |
| 265 | #[inline] | 265 | #[inline] |
| 266 | #[target_feature(enable = "neon")] | 266 | #[target_feature(enable = "neon")] |
| 267 | #[cfg_attr(test, assert_instr(uabdl))] | 267 | #[cfg_attr(test, assert_instr(uabdl2))] |
| 268 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 268 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 269 | pub fn vabdl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t { | 269 | pub fn vabdl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t { |
| 270 | unsafe { | 270 | unsafe { |
| ... | @@ -298,46 +298,40 @@ pub fn vabsq_f64(a: float64x2_t) -> float64x2_t { | ... | @@ -298,46 +298,40 @@ pub fn vabsq_f64(a: float64x2_t) -> float64x2_t { |
| 298 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 298 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 299 | #[cfg_attr(test, assert_instr(abs))] | 299 | #[cfg_attr(test, assert_instr(abs))] |
| 300 | pub fn vabs_s64(a: int64x1_t) -> int64x1_t { | 300 | pub fn vabs_s64(a: int64x1_t) -> int64x1_t { |
| 301 | unsafe extern "unadjusted" { | 301 | unsafe { |
| 302 | #[cfg_attr( | 302 | let neg: int64x1_t = simd_neg(a); |
| 303 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 303 | let mask: int64x1_t = simd_ge(a, neg); |
| 304 | link_name = "llvm.aarch64.neon.abs.v1i64" | 304 | simd_select(mask, a, neg) |
| 305 | )] | ||
| 306 | fn _vabs_s64(a: int64x1_t) -> int64x1_t; | ||
| 307 | } | 305 | } |
| 308 | unsafe { _vabs_s64(a) } | ||
| 309 | } | 306 | } |
| 310 | #[doc = "Absolute Value (wrapping)."] | 307 | #[doc = "Absolute Value (wrapping)."] |
| 311 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsd_s64)"] | 308 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s64)"] |
| 312 | #[inline] | 309 | #[inline] |
| 313 | #[target_feature(enable = "neon")] | 310 | #[target_feature(enable = "neon")] |
| 314 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 311 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 315 | #[cfg_attr(test, assert_instr(abs))] | 312 | #[cfg_attr(test, assert_instr(abs))] |
| 316 | pub fn vabsd_s64(a: i64) -> i64 { | 313 | pub fn vabsq_s64(a: int64x2_t) -> int64x2_t { |
| 317 | unsafe extern "unadjusted" { | 314 | unsafe { |
| 318 | #[cfg_attr( | 315 | let neg: int64x2_t = simd_neg(a); |
| 319 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 316 | let mask: int64x2_t = simd_ge(a, neg); |
| 320 | link_name = "llvm.aarch64.neon.abs.i64" | 317 | simd_select(mask, a, neg) |
| 321 | )] | ||
| 322 | fn _vabsd_s64(a: i64) -> i64; | ||
| 323 | } | 318 | } |
| 324 | unsafe { _vabsd_s64(a) } | ||
| 325 | } | 319 | } |
| 326 | #[doc = "Absolute Value (wrapping)."] | 320 | #[doc = "Absolute Value (wrapping)."] |
| 327 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s64)"] | 321 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsd_s64)"] |
| 328 | #[inline] | 322 | #[inline] |
| 329 | #[target_feature(enable = "neon")] | 323 | #[target_feature(enable = "neon")] |
| 330 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 324 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 331 | #[cfg_attr(test, assert_instr(abs))] | 325 | #[cfg_attr(test, assert_instr(abs))] |
| 332 | pub fn vabsq_s64(a: int64x2_t) -> int64x2_t { | 326 | pub fn vabsd_s64(a: i64) -> i64 { |
| 333 | unsafe extern "unadjusted" { | 327 | unsafe extern "unadjusted" { |
| 334 | #[cfg_attr( | 328 | #[cfg_attr( |
| 335 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 329 | any(target_arch = "aarch64", target_arch = "arm64ec"), |
| 336 | link_name = "llvm.aarch64.neon.abs.v2i64" | 330 | link_name = "llvm.aarch64.neon.abs.i64" |
| 337 | )] | 331 | )] |
| 338 | fn _vabsq_s64(a: int64x2_t) -> int64x2_t; | 332 | fn _vabsd_s64(a: i64) -> i64; |
| 339 | } | 333 | } |
| 340 | unsafe { _vabsq_s64(a) } | 334 | unsafe { _vabsd_s64(a) } |
| 341 | } | 335 | } |
| 342 | #[doc = "Add"] | 336 | #[doc = "Add"] |
| 343 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddd_s64)"] | 337 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddd_s64)"] |
| ... | @@ -604,14 +598,7 @@ pub fn vaddvq_f64(a: float64x2_t) -> f64 { | ... | @@ -604,14 +598,7 @@ pub fn vaddvq_f64(a: float64x2_t) -> f64 { |
| 604 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 598 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 605 | #[cfg_attr(test, assert_instr(addp))] | 599 | #[cfg_attr(test, assert_instr(addp))] |
| 606 | pub fn vaddv_s32(a: int32x2_t) -> i32 { | 600 | pub fn vaddv_s32(a: int32x2_t) -> i32 { |
| 607 | unsafe extern "unadjusted" { | 601 | unsafe { simd_reduce_add_unordered(a) } |
| 608 | #[cfg_attr( | ||
| 609 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 610 | link_name = "llvm.aarch64.neon.saddv.i32.v2i32" | ||
| 611 | )] | ||
| 612 | fn _vaddv_s32(a: int32x2_t) -> i32; | ||
| 613 | } | ||
| 614 | unsafe { _vaddv_s32(a) } | ||
| 615 | } | 602 | } |
| 616 | #[doc = "Add across vector"] | 603 | #[doc = "Add across vector"] |
| 617 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_s8)"] | 604 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_s8)"] |
| ... | @@ -620,14 +607,7 @@ pub fn vaddv_s32(a: int32x2_t) -> i32 { | ... | @@ -620,14 +607,7 @@ pub fn vaddv_s32(a: int32x2_t) -> i32 { |
| 620 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 607 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 621 | #[cfg_attr(test, assert_instr(addv))] | 608 | #[cfg_attr(test, assert_instr(addv))] |
| 622 | pub fn vaddv_s8(a: int8x8_t) -> i8 { | 609 | pub fn vaddv_s8(a: int8x8_t) -> i8 { |
| 623 | unsafe extern "unadjusted" { | 610 | unsafe { simd_reduce_add_unordered(a) } |
| 624 | #[cfg_attr( | ||
| 625 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 626 | link_name = "llvm.aarch64.neon.saddv.i8.v8i8" | ||
| 627 | )] | ||
| 628 | fn _vaddv_s8(a: int8x8_t) -> i8; | ||
| 629 | } | ||
| 630 | unsafe { _vaddv_s8(a) } | ||
| 631 | } | 611 | } |
| 632 | #[doc = "Add across vector"] | 612 | #[doc = "Add across vector"] |
| 633 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s8)"] | 613 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s8)"] |
| ... | @@ -636,14 +616,7 @@ pub fn vaddv_s8(a: int8x8_t) -> i8 { | ... | @@ -636,14 +616,7 @@ pub fn vaddv_s8(a: int8x8_t) -> i8 { |
| 636 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 616 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 637 | #[cfg_attr(test, assert_instr(addv))] | 617 | #[cfg_attr(test, assert_instr(addv))] |
| 638 | pub fn vaddvq_s8(a: int8x16_t) -> i8 { | 618 | pub fn vaddvq_s8(a: int8x16_t) -> i8 { |
| 639 | unsafe extern "unadjusted" { | 619 | unsafe { simd_reduce_add_unordered(a) } |
| 640 | #[cfg_attr( | ||
| 641 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 642 | link_name = "llvm.aarch64.neon.saddv.i8.v16i8" | ||
| 643 | )] | ||
| 644 | fn _vaddvq_s8(a: int8x16_t) -> i8; | ||
| 645 | } | ||
| 646 | unsafe { _vaddvq_s8(a) } | ||
| 647 | } | 620 | } |
| 648 | #[doc = "Add across vector"] | 621 | #[doc = "Add across vector"] |
| 649 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_s16)"] | 622 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_s16)"] |
| ... | @@ -652,14 +625,7 @@ pub fn vaddvq_s8(a: int8x16_t) -> i8 { | ... | @@ -652,14 +625,7 @@ pub fn vaddvq_s8(a: int8x16_t) -> i8 { |
| 652 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 625 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 653 | #[cfg_attr(test, assert_instr(addv))] | 626 | #[cfg_attr(test, assert_instr(addv))] |
| 654 | pub fn vaddv_s16(a: int16x4_t) -> i16 { | 627 | pub fn vaddv_s16(a: int16x4_t) -> i16 { |
| 655 | unsafe extern "unadjusted" { | 628 | unsafe { simd_reduce_add_unordered(a) } |
| 656 | #[cfg_attr( | ||
| 657 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 658 | link_name = "llvm.aarch64.neon.saddv.i16.v4i16" | ||
| 659 | )] | ||
| 660 | fn _vaddv_s16(a: int16x4_t) -> i16; | ||
| 661 | } | ||
| 662 | unsafe { _vaddv_s16(a) } | ||
| 663 | } | 629 | } |
| 664 | #[doc = "Add across vector"] | 630 | #[doc = "Add across vector"] |
| 665 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s16)"] | 631 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s16)"] |
| ... | @@ -668,14 +634,7 @@ pub fn vaddv_s16(a: int16x4_t) -> i16 { | ... | @@ -668,14 +634,7 @@ pub fn vaddv_s16(a: int16x4_t) -> i16 { |
| 668 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 634 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 669 | #[cfg_attr(test, assert_instr(addv))] | 635 | #[cfg_attr(test, assert_instr(addv))] |
| 670 | pub fn vaddvq_s16(a: int16x8_t) -> i16 { | 636 | pub fn vaddvq_s16(a: int16x8_t) -> i16 { |
| 671 | unsafe extern "unadjusted" { | 637 | unsafe { simd_reduce_add_unordered(a) } |
| 672 | #[cfg_attr( | ||
| 673 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 674 | link_name = "llvm.aarch64.neon.saddv.i16.v8i16" | ||
| 675 | )] | ||
| 676 | fn _vaddvq_s16(a: int16x8_t) -> i16; | ||
| 677 | } | ||
| 678 | unsafe { _vaddvq_s16(a) } | ||
| 679 | } | 638 | } |
| 680 | #[doc = "Add across vector"] | 639 | #[doc = "Add across vector"] |
| 681 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s32)"] | 640 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s32)"] |
| ... | @@ -684,14 +643,7 @@ pub fn vaddvq_s16(a: int16x8_t) -> i16 { | ... | @@ -684,14 +643,7 @@ pub fn vaddvq_s16(a: int16x8_t) -> i16 { |
| 684 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 643 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 685 | #[cfg_attr(test, assert_instr(addv))] | 644 | #[cfg_attr(test, assert_instr(addv))] |
| 686 | pub fn vaddvq_s32(a: int32x4_t) -> i32 { | 645 | pub fn vaddvq_s32(a: int32x4_t) -> i32 { |
| 687 | unsafe extern "unadjusted" { | 646 | unsafe { simd_reduce_add_unordered(a) } |
| 688 | #[cfg_attr( | ||
| 689 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 690 | link_name = "llvm.aarch64.neon.saddv.i32.v4i32" | ||
| 691 | )] | ||
| 692 | fn _vaddvq_s32(a: int32x4_t) -> i32; | ||
| 693 | } | ||
| 694 | unsafe { _vaddvq_s32(a) } | ||
| 695 | } | 647 | } |
| 696 | #[doc = "Add across vector"] | 648 | #[doc = "Add across vector"] |
| 697 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_u32)"] | 649 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_u32)"] |
| ... | @@ -700,14 +652,7 @@ pub fn vaddvq_s32(a: int32x4_t) -> i32 { | ... | @@ -700,14 +652,7 @@ pub fn vaddvq_s32(a: int32x4_t) -> i32 { |
| 700 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 652 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 701 | #[cfg_attr(test, assert_instr(addp))] | 653 | #[cfg_attr(test, assert_instr(addp))] |
| 702 | pub fn vaddv_u32(a: uint32x2_t) -> u32 { | 654 | pub fn vaddv_u32(a: uint32x2_t) -> u32 { |
| 703 | unsafe extern "unadjusted" { | 655 | unsafe { simd_reduce_add_unordered(a) } |
| 704 | #[cfg_attr( | ||
| 705 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 706 | link_name = "llvm.aarch64.neon.uaddv.i32.v2i32" | ||
| 707 | )] | ||
| 708 | fn _vaddv_u32(a: uint32x2_t) -> u32; | ||
| 709 | } | ||
| 710 | unsafe { _vaddv_u32(a) } | ||
| 711 | } | 656 | } |
| 712 | #[doc = "Add across vector"] | 657 | #[doc = "Add across vector"] |
| 713 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_u8)"] | 658 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_u8)"] |
| ... | @@ -716,14 +661,7 @@ pub fn vaddv_u32(a: uint32x2_t) -> u32 { | ... | @@ -716,14 +661,7 @@ pub fn vaddv_u32(a: uint32x2_t) -> u32 { |
| 716 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 661 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 717 | #[cfg_attr(test, assert_instr(addv))] | 662 | #[cfg_attr(test, assert_instr(addv))] |
| 718 | pub fn vaddv_u8(a: uint8x8_t) -> u8 { | 663 | pub fn vaddv_u8(a: uint8x8_t) -> u8 { |
| 719 | unsafe extern "unadjusted" { | 664 | unsafe { simd_reduce_add_unordered(a) } |
| 720 | #[cfg_attr( | ||
| 721 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 722 | link_name = "llvm.aarch64.neon.uaddv.i8.v8i8" | ||
| 723 | )] | ||
| 724 | fn _vaddv_u8(a: uint8x8_t) -> u8; | ||
| 725 | } | ||
| 726 | unsafe { _vaddv_u8(a) } | ||
| 727 | } | 665 | } |
| 728 | #[doc = "Add across vector"] | 666 | #[doc = "Add across vector"] |
| 729 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u8)"] | 667 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u8)"] |
| ... | @@ -732,14 +670,7 @@ pub fn vaddv_u8(a: uint8x8_t) -> u8 { | ... | @@ -732,14 +670,7 @@ pub fn vaddv_u8(a: uint8x8_t) -> u8 { |
| 732 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 670 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 733 | #[cfg_attr(test, assert_instr(addv))] | 671 | #[cfg_attr(test, assert_instr(addv))] |
| 734 | pub fn vaddvq_u8(a: uint8x16_t) -> u8 { | 672 | pub fn vaddvq_u8(a: uint8x16_t) -> u8 { |
| 735 | unsafe extern "unadjusted" { | 673 | unsafe { simd_reduce_add_unordered(a) } |
| 736 | #[cfg_attr( | ||
| 737 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 738 | link_name = "llvm.aarch64.neon.uaddv.i8.v16i8" | ||
| 739 | )] | ||
| 740 | fn _vaddvq_u8(a: uint8x16_t) -> u8; | ||
| 741 | } | ||
| 742 | unsafe { _vaddvq_u8(a) } | ||
| 743 | } | 674 | } |
| 744 | #[doc = "Add across vector"] | 675 | #[doc = "Add across vector"] |
| 745 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_u16)"] | 676 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddv_u16)"] |
| ... | @@ -748,14 +679,7 @@ pub fn vaddvq_u8(a: uint8x16_t) -> u8 { | ... | @@ -748,14 +679,7 @@ pub fn vaddvq_u8(a: uint8x16_t) -> u8 { |
| 748 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 679 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 749 | #[cfg_attr(test, assert_instr(addv))] | 680 | #[cfg_attr(test, assert_instr(addv))] |
| 750 | pub fn vaddv_u16(a: uint16x4_t) -> u16 { | 681 | pub fn vaddv_u16(a: uint16x4_t) -> u16 { |
| 751 | unsafe extern "unadjusted" { | 682 | unsafe { simd_reduce_add_unordered(a) } |
| 752 | #[cfg_attr( | ||
| 753 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 754 | link_name = "llvm.aarch64.neon.uaddv.i16.v4i16" | ||
| 755 | )] | ||
| 756 | fn _vaddv_u16(a: uint16x4_t) -> u16; | ||
| 757 | } | ||
| 758 | unsafe { _vaddv_u16(a) } | ||
| 759 | } | 683 | } |
| 760 | #[doc = "Add across vector"] | 684 | #[doc = "Add across vector"] |
| 761 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u16)"] | 685 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u16)"] |
| ... | @@ -764,14 +688,7 @@ pub fn vaddv_u16(a: uint16x4_t) -> u16 { | ... | @@ -764,14 +688,7 @@ pub fn vaddv_u16(a: uint16x4_t) -> u16 { |
| 764 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 688 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 765 | #[cfg_attr(test, assert_instr(addv))] | 689 | #[cfg_attr(test, assert_instr(addv))] |
| 766 | pub fn vaddvq_u16(a: uint16x8_t) -> u16 { | 690 | pub fn vaddvq_u16(a: uint16x8_t) -> u16 { |
| 767 | unsafe extern "unadjusted" { | 691 | unsafe { simd_reduce_add_unordered(a) } |
| 768 | #[cfg_attr( | ||
| 769 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 770 | link_name = "llvm.aarch64.neon.uaddv.i16.v8i16" | ||
| 771 | )] | ||
| 772 | fn _vaddvq_u16(a: uint16x8_t) -> u16; | ||
| 773 | } | ||
| 774 | unsafe { _vaddvq_u16(a) } | ||
| 775 | } | 692 | } |
| 776 | #[doc = "Add across vector"] | 693 | #[doc = "Add across vector"] |
| 777 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u32)"] | 694 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u32)"] |
| ... | @@ -780,14 +697,7 @@ pub fn vaddvq_u16(a: uint16x8_t) -> u16 { | ... | @@ -780,14 +697,7 @@ pub fn vaddvq_u16(a: uint16x8_t) -> u16 { |
| 780 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 697 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 781 | #[cfg_attr(test, assert_instr(addv))] | 698 | #[cfg_attr(test, assert_instr(addv))] |
| 782 | pub fn vaddvq_u32(a: uint32x4_t) -> u32 { | 699 | pub fn vaddvq_u32(a: uint32x4_t) -> u32 { |
| 783 | unsafe extern "unadjusted" { | 700 | unsafe { simd_reduce_add_unordered(a) } |
| 784 | #[cfg_attr( | ||
| 785 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 786 | link_name = "llvm.aarch64.neon.uaddv.i32.v4i32" | ||
| 787 | )] | ||
| 788 | fn _vaddvq_u32(a: uint32x4_t) -> u32; | ||
| 789 | } | ||
| 790 | unsafe { _vaddvq_u32(a) } | ||
| 791 | } | 701 | } |
| 792 | #[doc = "Add across vector"] | 702 | #[doc = "Add across vector"] |
| 793 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s64)"] | 703 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_s64)"] |
| ... | @@ -796,14 +706,7 @@ pub fn vaddvq_u32(a: uint32x4_t) -> u32 { | ... | @@ -796,14 +706,7 @@ pub fn vaddvq_u32(a: uint32x4_t) -> u32 { |
| 796 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 706 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 797 | #[cfg_attr(test, assert_instr(addp))] | 707 | #[cfg_attr(test, assert_instr(addp))] |
| 798 | pub fn vaddvq_s64(a: int64x2_t) -> i64 { | 708 | pub fn vaddvq_s64(a: int64x2_t) -> i64 { |
| 799 | unsafe extern "unadjusted" { | 709 | unsafe { simd_reduce_add_unordered(a) } |
| 800 | #[cfg_attr( | ||
| 801 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 802 | link_name = "llvm.aarch64.neon.saddv.i64.v2i64" | ||
| 803 | )] | ||
| 804 | fn _vaddvq_s64(a: int64x2_t) -> i64; | ||
| 805 | } | ||
| 806 | unsafe { _vaddvq_s64(a) } | ||
| 807 | } | 710 | } |
| 808 | #[doc = "Add across vector"] | 711 | #[doc = "Add across vector"] |
| 809 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u64)"] | 712 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddvq_u64)"] |
| ... | @@ -812,14 +715,7 @@ pub fn vaddvq_s64(a: int64x2_t) -> i64 { | ... | @@ -812,14 +715,7 @@ pub fn vaddvq_s64(a: int64x2_t) -> i64 { |
| 812 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 715 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 813 | #[cfg_attr(test, assert_instr(addp))] | 716 | #[cfg_attr(test, assert_instr(addp))] |
| 814 | pub fn vaddvq_u64(a: uint64x2_t) -> u64 { | 717 | pub fn vaddvq_u64(a: uint64x2_t) -> u64 { |
| 815 | unsafe extern "unadjusted" { | 718 | unsafe { simd_reduce_add_unordered(a) } |
| 816 | #[cfg_attr( | ||
| 817 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 818 | link_name = "llvm.aarch64.neon.uaddv.i64.v2i64" | ||
| 819 | )] | ||
| 820 | fn _vaddvq_u64(a: uint64x2_t) -> u64; | ||
| 821 | } | ||
| 822 | unsafe { _vaddvq_u64(a) } | ||
| 823 | } | 719 | } |
| 824 | #[doc = "Multi-vector floating-point absolute maximum"] | 720 | #[doc = "Multi-vector floating-point absolute maximum"] |
| 825 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vamax_f32)"] | 721 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vamax_f32)"] |
| ... | @@ -7281,7 +7177,7 @@ pub fn vcvt_high_f32_f16(a: float16x8_t) -> float32x4_t { | ... | @@ -7281,7 +7177,7 @@ pub fn vcvt_high_f32_f16(a: float16x8_t) -> float32x4_t { |
| 7281 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_high_f32_f64)"] | 7177 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_high_f32_f64)"] |
| 7282 | #[inline] | 7178 | #[inline] |
| 7283 | #[target_feature(enable = "neon")] | 7179 | #[target_feature(enable = "neon")] |
| 7284 | #[cfg_attr(test, assert_instr(fcvtn))] | 7180 | #[cfg_attr(test, assert_instr(fcvtn2))] |
| 7285 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 7181 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 7286 | pub fn vcvt_high_f32_f64(a: float32x2_t, b: float64x2_t) -> float32x4_t { | 7182 | pub fn vcvt_high_f32_f64(a: float32x2_t, b: float64x2_t) -> float32x4_t { |
| 7287 | unsafe { simd_shuffle!(a, simd_cast(b), [0, 1, 2, 3]) } | 7183 | unsafe { simd_shuffle!(a, simd_cast(b), [0, 1, 2, 3]) } |
| ... | @@ -7290,7 +7186,7 @@ pub fn vcvt_high_f32_f64(a: float32x2_t, b: float64x2_t) -> float32x4_t { | ... | @@ -7290,7 +7186,7 @@ pub fn vcvt_high_f32_f64(a: float32x2_t, b: float64x2_t) -> float32x4_t { |
| 7290 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_high_f64_f32)"] | 7186 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_high_f64_f32)"] |
| 7291 | #[inline] | 7187 | #[inline] |
| 7292 | #[target_feature(enable = "neon")] | 7188 | #[target_feature(enable = "neon")] |
| 7293 | #[cfg_attr(test, assert_instr(fcvtl))] | 7189 | #[cfg_attr(test, assert_instr(fcvtl2))] |
| 7294 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 7190 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 7295 | pub fn vcvt_high_f64_f32(a: float32x4_t) -> float64x2_t { | 7191 | pub fn vcvt_high_f64_f32(a: float32x4_t) -> float64x2_t { |
| 7296 | unsafe { | 7192 | unsafe { |
| ... | @@ -9390,7 +9286,7 @@ pub fn vcvtx_f32_f64(a: float64x2_t) -> float32x2_t { | ... | @@ -9390,7 +9286,7 @@ pub fn vcvtx_f32_f64(a: float64x2_t) -> float32x2_t { |
| 9390 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtx_high_f32_f64)"] | 9286 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtx_high_f32_f64)"] |
| 9391 | #[inline] | 9287 | #[inline] |
| 9392 | #[target_feature(enable = "neon")] | 9288 | #[target_feature(enable = "neon")] |
| 9393 | #[cfg_attr(test, assert_instr(fcvtxn))] | 9289 | #[cfg_attr(test, assert_instr(fcvtxn2))] |
| 9394 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 9290 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 9395 | pub fn vcvtx_high_f32_f64(a: float32x2_t, b: float64x2_t) -> float32x4_t { | 9291 | pub fn vcvtx_high_f32_f64(a: float32x2_t, b: float64x2_t) -> float32x4_t { |
| 9396 | unsafe { simd_shuffle!(a, vcvtx_f32_f64(b), [0, 1, 2, 3]) } | 9292 | unsafe { simd_shuffle!(a, vcvtx_f32_f64(b), [0, 1, 2, 3]) } |
| ... | @@ -13229,14 +13125,7 @@ pub fn vmaxh_f16(a: f16, b: f16) -> f16 { | ... | @@ -13229,14 +13125,7 @@ pub fn vmaxh_f16(a: f16, b: f16) -> f16 { |
| 13229 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13125 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13230 | #[cfg_attr(test, assert_instr(fmaxnm))] | 13126 | #[cfg_attr(test, assert_instr(fmaxnm))] |
| 13231 | pub fn vmaxnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { | 13127 | pub fn vmaxnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { |
| 13232 | unsafe extern "unadjusted" { | 13128 | unsafe { simd_fmax(a, b) } |
| 13233 | #[cfg_attr( | ||
| 13234 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13235 | link_name = "llvm.aarch64.neon.fmaxnm.v1f64" | ||
| 13236 | )] | ||
| 13237 | fn _vmaxnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t; | ||
| 13238 | } | ||
| 13239 | unsafe { _vmaxnm_f64(a, b) } | ||
| 13240 | } | 13129 | } |
| 13241 | #[doc = "Floating-point Maximum Number (vector)"] | 13130 | #[doc = "Floating-point Maximum Number (vector)"] |
| 13242 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f64)"] | 13131 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f64)"] |
| ... | @@ -13245,14 +13134,7 @@ pub fn vmaxnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { | ... | @@ -13245,14 +13134,7 @@ pub fn vmaxnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { |
| 13245 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13134 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13246 | #[cfg_attr(test, assert_instr(fmaxnm))] | 13135 | #[cfg_attr(test, assert_instr(fmaxnm))] |
| 13247 | pub fn vmaxnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { | 13136 | pub fn vmaxnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { |
| 13248 | unsafe extern "unadjusted" { | 13137 | unsafe { simd_fmax(a, b) } |
| 13249 | #[cfg_attr( | ||
| 13250 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13251 | link_name = "llvm.aarch64.neon.fmaxnm.v2f64" | ||
| 13252 | )] | ||
| 13253 | fn _vmaxnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t; | ||
| 13254 | } | ||
| 13255 | unsafe { _vmaxnmq_f64(a, b) } | ||
| 13256 | } | 13138 | } |
| 13257 | #[doc = "Floating-point Maximum Number"] | 13139 | #[doc = "Floating-point Maximum Number"] |
| 13258 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmh_f16)"] | 13140 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmh_f16)"] |
| ... | @@ -13261,14 +13143,7 @@ pub fn vmaxnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { | ... | @@ -13261,14 +13143,7 @@ pub fn vmaxnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { |
| 13261 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 13143 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 13262 | #[cfg_attr(test, assert_instr(fmaxnm))] | 13144 | #[cfg_attr(test, assert_instr(fmaxnm))] |
| 13263 | pub fn vmaxnmh_f16(a: f16, b: f16) -> f16 { | 13145 | pub fn vmaxnmh_f16(a: f16, b: f16) -> f16 { |
| 13264 | unsafe extern "unadjusted" { | 13146 | f16::max(a, b) |
| 13265 | #[cfg_attr( | ||
| 13266 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13267 | link_name = "llvm.aarch64.neon.fmaxnm.f16" | ||
| 13268 | )] | ||
| 13269 | fn _vmaxnmh_f16(a: f16, b: f16) -> f16; | ||
| 13270 | } | ||
| 13271 | unsafe { _vmaxnmh_f16(a, b) } | ||
| 13272 | } | 13147 | } |
| 13273 | #[doc = "Floating-point maximum number across vector"] | 13148 | #[doc = "Floating-point maximum number across vector"] |
| 13274 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmv_f16)"] | 13149 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmv_f16)"] |
| ... | @@ -13277,14 +13152,7 @@ pub fn vmaxnmh_f16(a: f16, b: f16) -> f16 { | ... | @@ -13277,14 +13152,7 @@ pub fn vmaxnmh_f16(a: f16, b: f16) -> f16 { |
| 13277 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 13152 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 13278 | #[cfg_attr(test, assert_instr(fmaxnmv))] | 13153 | #[cfg_attr(test, assert_instr(fmaxnmv))] |
| 13279 | pub fn vmaxnmv_f16(a: float16x4_t) -> f16 { | 13154 | pub fn vmaxnmv_f16(a: float16x4_t) -> f16 { |
| 13280 | unsafe extern "unadjusted" { | 13155 | unsafe { simd_reduce_max(a) } |
| 13281 | #[cfg_attr( | ||
| 13282 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13283 | link_name = "llvm.aarch64.neon.fmaxnmv.f16.v4f16" | ||
| 13284 | )] | ||
| 13285 | fn _vmaxnmv_f16(a: float16x4_t) -> f16; | ||
| 13286 | } | ||
| 13287 | unsafe { _vmaxnmv_f16(a) } | ||
| 13288 | } | 13156 | } |
| 13289 | #[doc = "Floating-point maximum number across vector"] | 13157 | #[doc = "Floating-point maximum number across vector"] |
| 13290 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmvq_f16)"] | 13158 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmvq_f16)"] |
| ... | @@ -13293,14 +13161,7 @@ pub fn vmaxnmv_f16(a: float16x4_t) -> f16 { | ... | @@ -13293,14 +13161,7 @@ pub fn vmaxnmv_f16(a: float16x4_t) -> f16 { |
| 13293 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 13161 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 13294 | #[cfg_attr(test, assert_instr(fmaxnmv))] | 13162 | #[cfg_attr(test, assert_instr(fmaxnmv))] |
| 13295 | pub fn vmaxnmvq_f16(a: float16x8_t) -> f16 { | 13163 | pub fn vmaxnmvq_f16(a: float16x8_t) -> f16 { |
| 13296 | unsafe extern "unadjusted" { | 13164 | unsafe { simd_reduce_max(a) } |
| 13297 | #[cfg_attr( | ||
| 13298 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13299 | link_name = "llvm.aarch64.neon.fmaxnmv.f16.v8f16" | ||
| 13300 | )] | ||
| 13301 | fn _vmaxnmvq_f16(a: float16x8_t) -> f16; | ||
| 13302 | } | ||
| 13303 | unsafe { _vmaxnmvq_f16(a) } | ||
| 13304 | } | 13165 | } |
| 13305 | #[doc = "Floating-point maximum number across vector"] | 13166 | #[doc = "Floating-point maximum number across vector"] |
| 13306 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmv_f32)"] | 13167 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmv_f32)"] |
| ... | @@ -13309,14 +13170,7 @@ pub fn vmaxnmvq_f16(a: float16x8_t) -> f16 { | ... | @@ -13309,14 +13170,7 @@ pub fn vmaxnmvq_f16(a: float16x8_t) -> f16 { |
| 13309 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13170 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13310 | #[cfg_attr(test, assert_instr(fmaxnmp))] | 13171 | #[cfg_attr(test, assert_instr(fmaxnmp))] |
| 13311 | pub fn vmaxnmv_f32(a: float32x2_t) -> f32 { | 13172 | pub fn vmaxnmv_f32(a: float32x2_t) -> f32 { |
| 13312 | unsafe extern "unadjusted" { | 13173 | unsafe { simd_reduce_max(a) } |
| 13313 | #[cfg_attr( | ||
| 13314 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13315 | link_name = "llvm.aarch64.neon.fmaxnmv.f32.v2f32" | ||
| 13316 | )] | ||
| 13317 | fn _vmaxnmv_f32(a: float32x2_t) -> f32; | ||
| 13318 | } | ||
| 13319 | unsafe { _vmaxnmv_f32(a) } | ||
| 13320 | } | 13174 | } |
| 13321 | #[doc = "Floating-point maximum number across vector"] | 13175 | #[doc = "Floating-point maximum number across vector"] |
| 13322 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmvq_f64)"] | 13176 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmvq_f64)"] |
| ... | @@ -13325,14 +13179,7 @@ pub fn vmaxnmv_f32(a: float32x2_t) -> f32 { | ... | @@ -13325,14 +13179,7 @@ pub fn vmaxnmv_f32(a: float32x2_t) -> f32 { |
| 13325 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13179 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13326 | #[cfg_attr(test, assert_instr(fmaxnmp))] | 13180 | #[cfg_attr(test, assert_instr(fmaxnmp))] |
| 13327 | pub fn vmaxnmvq_f64(a: float64x2_t) -> f64 { | 13181 | pub fn vmaxnmvq_f64(a: float64x2_t) -> f64 { |
| 13328 | unsafe extern "unadjusted" { | 13182 | unsafe { simd_reduce_max(a) } |
| 13329 | #[cfg_attr( | ||
| 13330 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13331 | link_name = "llvm.aarch64.neon.fmaxnmv.f64.v2f64" | ||
| 13332 | )] | ||
| 13333 | fn _vmaxnmvq_f64(a: float64x2_t) -> f64; | ||
| 13334 | } | ||
| 13335 | unsafe { _vmaxnmvq_f64(a) } | ||
| 13336 | } | 13183 | } |
| 13337 | #[doc = "Floating-point maximum number across vector"] | 13184 | #[doc = "Floating-point maximum number across vector"] |
| 13338 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmvq_f32)"] | 13185 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmvq_f32)"] |
| ... | @@ -13341,14 +13188,7 @@ pub fn vmaxnmvq_f64(a: float64x2_t) -> f64 { | ... | @@ -13341,14 +13188,7 @@ pub fn vmaxnmvq_f64(a: float64x2_t) -> f64 { |
| 13341 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13188 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13342 | #[cfg_attr(test, assert_instr(fmaxnmv))] | 13189 | #[cfg_attr(test, assert_instr(fmaxnmv))] |
| 13343 | pub fn vmaxnmvq_f32(a: float32x4_t) -> f32 { | 13190 | pub fn vmaxnmvq_f32(a: float32x4_t) -> f32 { |
| 13344 | unsafe extern "unadjusted" { | 13191 | unsafe { simd_reduce_max(a) } |
| 13345 | #[cfg_attr( | ||
| 13346 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13347 | link_name = "llvm.aarch64.neon.fmaxnmv.f32.v4f32" | ||
| 13348 | )] | ||
| 13349 | fn _vmaxnmvq_f32(a: float32x4_t) -> f32; | ||
| 13350 | } | ||
| 13351 | unsafe { _vmaxnmvq_f32(a) } | ||
| 13352 | } | 13192 | } |
| 13353 | #[doc = "Floating-point maximum number across vector"] | 13193 | #[doc = "Floating-point maximum number across vector"] |
| 13354 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_f16)"] | 13194 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_f16)"] |
| ... | @@ -13437,14 +13277,7 @@ pub fn vmaxvq_f64(a: float64x2_t) -> f64 { | ... | @@ -13437,14 +13277,7 @@ pub fn vmaxvq_f64(a: float64x2_t) -> f64 { |
| 13437 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13277 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13438 | #[cfg_attr(test, assert_instr(smaxv))] | 13278 | #[cfg_attr(test, assert_instr(smaxv))] |
| 13439 | pub fn vmaxv_s8(a: int8x8_t) -> i8 { | 13279 | pub fn vmaxv_s8(a: int8x8_t) -> i8 { |
| 13440 | unsafe extern "unadjusted" { | 13280 | unsafe { simd_reduce_max(a) } |
| 13441 | #[cfg_attr( | ||
| 13442 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13443 | link_name = "llvm.aarch64.neon.smaxv.i8.v8i8" | ||
| 13444 | )] | ||
| 13445 | fn _vmaxv_s8(a: int8x8_t) -> i8; | ||
| 13446 | } | ||
| 13447 | unsafe { _vmaxv_s8(a) } | ||
| 13448 | } | 13281 | } |
| 13449 | #[doc = "Horizontal vector max."] | 13282 | #[doc = "Horizontal vector max."] |
| 13450 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s8)"] | 13283 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s8)"] |
| ... | @@ -13453,14 +13286,7 @@ pub fn vmaxv_s8(a: int8x8_t) -> i8 { | ... | @@ -13453,14 +13286,7 @@ pub fn vmaxv_s8(a: int8x8_t) -> i8 { |
| 13453 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13286 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13454 | #[cfg_attr(test, assert_instr(smaxv))] | 13287 | #[cfg_attr(test, assert_instr(smaxv))] |
| 13455 | pub fn vmaxvq_s8(a: int8x16_t) -> i8 { | 13288 | pub fn vmaxvq_s8(a: int8x16_t) -> i8 { |
| 13456 | unsafe extern "unadjusted" { | 13289 | unsafe { simd_reduce_max(a) } |
| 13457 | #[cfg_attr( | ||
| 13458 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13459 | link_name = "llvm.aarch64.neon.smaxv.i8.v16i8" | ||
| 13460 | )] | ||
| 13461 | fn _vmaxvq_s8(a: int8x16_t) -> i8; | ||
| 13462 | } | ||
| 13463 | unsafe { _vmaxvq_s8(a) } | ||
| 13464 | } | 13290 | } |
| 13465 | #[doc = "Horizontal vector max."] | 13291 | #[doc = "Horizontal vector max."] |
| 13466 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_s16)"] | 13292 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_s16)"] |
| ... | @@ -13469,14 +13295,7 @@ pub fn vmaxvq_s8(a: int8x16_t) -> i8 { | ... | @@ -13469,14 +13295,7 @@ pub fn vmaxvq_s8(a: int8x16_t) -> i8 { |
| 13469 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13295 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13470 | #[cfg_attr(test, assert_instr(smaxv))] | 13296 | #[cfg_attr(test, assert_instr(smaxv))] |
| 13471 | pub fn vmaxv_s16(a: int16x4_t) -> i16 { | 13297 | pub fn vmaxv_s16(a: int16x4_t) -> i16 { |
| 13472 | unsafe extern "unadjusted" { | 13298 | unsafe { simd_reduce_max(a) } |
| 13473 | #[cfg_attr( | ||
| 13474 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13475 | link_name = "llvm.aarch64.neon.smaxv.i16.v4i16" | ||
| 13476 | )] | ||
| 13477 | fn _vmaxv_s16(a: int16x4_t) -> i16; | ||
| 13478 | } | ||
| 13479 | unsafe { _vmaxv_s16(a) } | ||
| 13480 | } | 13299 | } |
| 13481 | #[doc = "Horizontal vector max."] | 13300 | #[doc = "Horizontal vector max."] |
| 13482 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s16)"] | 13301 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s16)"] |
| ... | @@ -13485,14 +13304,7 @@ pub fn vmaxv_s16(a: int16x4_t) -> i16 { | ... | @@ -13485,14 +13304,7 @@ pub fn vmaxv_s16(a: int16x4_t) -> i16 { |
| 13485 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13304 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13486 | #[cfg_attr(test, assert_instr(smaxv))] | 13305 | #[cfg_attr(test, assert_instr(smaxv))] |
| 13487 | pub fn vmaxvq_s16(a: int16x8_t) -> i16 { | 13306 | pub fn vmaxvq_s16(a: int16x8_t) -> i16 { |
| 13488 | unsafe extern "unadjusted" { | 13307 | unsafe { simd_reduce_max(a) } |
| 13489 | #[cfg_attr( | ||
| 13490 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13491 | link_name = "llvm.aarch64.neon.smaxv.i16.v8i16" | ||
| 13492 | )] | ||
| 13493 | fn _vmaxvq_s16(a: int16x8_t) -> i16; | ||
| 13494 | } | ||
| 13495 | unsafe { _vmaxvq_s16(a) } | ||
| 13496 | } | 13308 | } |
| 13497 | #[doc = "Horizontal vector max."] | 13309 | #[doc = "Horizontal vector max."] |
| 13498 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_s32)"] | 13310 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_s32)"] |
| ... | @@ -13501,14 +13313,7 @@ pub fn vmaxvq_s16(a: int16x8_t) -> i16 { | ... | @@ -13501,14 +13313,7 @@ pub fn vmaxvq_s16(a: int16x8_t) -> i16 { |
| 13501 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13313 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13502 | #[cfg_attr(test, assert_instr(smaxp))] | 13314 | #[cfg_attr(test, assert_instr(smaxp))] |
| 13503 | pub fn vmaxv_s32(a: int32x2_t) -> i32 { | 13315 | pub fn vmaxv_s32(a: int32x2_t) -> i32 { |
| 13504 | unsafe extern "unadjusted" { | 13316 | unsafe { simd_reduce_max(a) } |
| 13505 | #[cfg_attr( | ||
| 13506 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13507 | link_name = "llvm.aarch64.neon.smaxv.i32.v2i32" | ||
| 13508 | )] | ||
| 13509 | fn _vmaxv_s32(a: int32x2_t) -> i32; | ||
| 13510 | } | ||
| 13511 | unsafe { _vmaxv_s32(a) } | ||
| 13512 | } | 13317 | } |
| 13513 | #[doc = "Horizontal vector max."] | 13318 | #[doc = "Horizontal vector max."] |
| 13514 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s32)"] | 13319 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_s32)"] |
| ... | @@ -13517,14 +13322,7 @@ pub fn vmaxv_s32(a: int32x2_t) -> i32 { | ... | @@ -13517,14 +13322,7 @@ pub fn vmaxv_s32(a: int32x2_t) -> i32 { |
| 13517 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13322 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13518 | #[cfg_attr(test, assert_instr(smaxv))] | 13323 | #[cfg_attr(test, assert_instr(smaxv))] |
| 13519 | pub fn vmaxvq_s32(a: int32x4_t) -> i32 { | 13324 | pub fn vmaxvq_s32(a: int32x4_t) -> i32 { |
| 13520 | unsafe extern "unadjusted" { | 13325 | unsafe { simd_reduce_max(a) } |
| 13521 | #[cfg_attr( | ||
| 13522 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13523 | link_name = "llvm.aarch64.neon.smaxv.i32.v4i32" | ||
| 13524 | )] | ||
| 13525 | fn _vmaxvq_s32(a: int32x4_t) -> i32; | ||
| 13526 | } | ||
| 13527 | unsafe { _vmaxvq_s32(a) } | ||
| 13528 | } | 13326 | } |
| 13529 | #[doc = "Horizontal vector max."] | 13327 | #[doc = "Horizontal vector max."] |
| 13530 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u8)"] | 13328 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u8)"] |
| ... | @@ -13533,14 +13331,7 @@ pub fn vmaxvq_s32(a: int32x4_t) -> i32 { | ... | @@ -13533,14 +13331,7 @@ pub fn vmaxvq_s32(a: int32x4_t) -> i32 { |
| 13533 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13331 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13534 | #[cfg_attr(test, assert_instr(umaxv))] | 13332 | #[cfg_attr(test, assert_instr(umaxv))] |
| 13535 | pub fn vmaxv_u8(a: uint8x8_t) -> u8 { | 13333 | pub fn vmaxv_u8(a: uint8x8_t) -> u8 { |
| 13536 | unsafe extern "unadjusted" { | 13334 | unsafe { simd_reduce_max(a) } |
| 13537 | #[cfg_attr( | ||
| 13538 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13539 | link_name = "llvm.aarch64.neon.umaxv.i8.v8i8" | ||
| 13540 | )] | ||
| 13541 | fn _vmaxv_u8(a: uint8x8_t) -> u8; | ||
| 13542 | } | ||
| 13543 | unsafe { _vmaxv_u8(a) } | ||
| 13544 | } | 13335 | } |
| 13545 | #[doc = "Horizontal vector max."] | 13336 | #[doc = "Horizontal vector max."] |
| 13546 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u8)"] | 13337 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u8)"] |
| ... | @@ -13549,14 +13340,7 @@ pub fn vmaxv_u8(a: uint8x8_t) -> u8 { | ... | @@ -13549,14 +13340,7 @@ pub fn vmaxv_u8(a: uint8x8_t) -> u8 { |
| 13549 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13340 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13550 | #[cfg_attr(test, assert_instr(umaxv))] | 13341 | #[cfg_attr(test, assert_instr(umaxv))] |
| 13551 | pub fn vmaxvq_u8(a: uint8x16_t) -> u8 { | 13342 | pub fn vmaxvq_u8(a: uint8x16_t) -> u8 { |
| 13552 | unsafe extern "unadjusted" { | 13343 | unsafe { simd_reduce_max(a) } |
| 13553 | #[cfg_attr( | ||
| 13554 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13555 | link_name = "llvm.aarch64.neon.umaxv.i8.v16i8" | ||
| 13556 | )] | ||
| 13557 | fn _vmaxvq_u8(a: uint8x16_t) -> u8; | ||
| 13558 | } | ||
| 13559 | unsafe { _vmaxvq_u8(a) } | ||
| 13560 | } | 13344 | } |
| 13561 | #[doc = "Horizontal vector max."] | 13345 | #[doc = "Horizontal vector max."] |
| 13562 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u16)"] | 13346 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u16)"] |
| ... | @@ -13565,14 +13349,7 @@ pub fn vmaxvq_u8(a: uint8x16_t) -> u8 { | ... | @@ -13565,14 +13349,7 @@ pub fn vmaxvq_u8(a: uint8x16_t) -> u8 { |
| 13565 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13349 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13566 | #[cfg_attr(test, assert_instr(umaxv))] | 13350 | #[cfg_attr(test, assert_instr(umaxv))] |
| 13567 | pub fn vmaxv_u16(a: uint16x4_t) -> u16 { | 13351 | pub fn vmaxv_u16(a: uint16x4_t) -> u16 { |
| 13568 | unsafe extern "unadjusted" { | 13352 | unsafe { simd_reduce_max(a) } |
| 13569 | #[cfg_attr( | ||
| 13570 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13571 | link_name = "llvm.aarch64.neon.umaxv.i16.v4i16" | ||
| 13572 | )] | ||
| 13573 | fn _vmaxv_u16(a: uint16x4_t) -> u16; | ||
| 13574 | } | ||
| 13575 | unsafe { _vmaxv_u16(a) } | ||
| 13576 | } | 13353 | } |
| 13577 | #[doc = "Horizontal vector max."] | 13354 | #[doc = "Horizontal vector max."] |
| 13578 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u16)"] | 13355 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u16)"] |
| ... | @@ -13581,14 +13358,7 @@ pub fn vmaxv_u16(a: uint16x4_t) -> u16 { | ... | @@ -13581,14 +13358,7 @@ pub fn vmaxv_u16(a: uint16x4_t) -> u16 { |
| 13581 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13358 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13582 | #[cfg_attr(test, assert_instr(umaxv))] | 13359 | #[cfg_attr(test, assert_instr(umaxv))] |
| 13583 | pub fn vmaxvq_u16(a: uint16x8_t) -> u16 { | 13360 | pub fn vmaxvq_u16(a: uint16x8_t) -> u16 { |
| 13584 | unsafe extern "unadjusted" { | 13361 | unsafe { simd_reduce_max(a) } |
| 13585 | #[cfg_attr( | ||
| 13586 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13587 | link_name = "llvm.aarch64.neon.umaxv.i16.v8i16" | ||
| 13588 | )] | ||
| 13589 | fn _vmaxvq_u16(a: uint16x8_t) -> u16; | ||
| 13590 | } | ||
| 13591 | unsafe { _vmaxvq_u16(a) } | ||
| 13592 | } | 13362 | } |
| 13593 | #[doc = "Horizontal vector max."] | 13363 | #[doc = "Horizontal vector max."] |
| 13594 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u32)"] | 13364 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxv_u32)"] |
| ... | @@ -13597,14 +13367,7 @@ pub fn vmaxvq_u16(a: uint16x8_t) -> u16 { | ... | @@ -13597,14 +13367,7 @@ pub fn vmaxvq_u16(a: uint16x8_t) -> u16 { |
| 13597 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13367 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13598 | #[cfg_attr(test, assert_instr(umaxp))] | 13368 | #[cfg_attr(test, assert_instr(umaxp))] |
| 13599 | pub fn vmaxv_u32(a: uint32x2_t) -> u32 { | 13369 | pub fn vmaxv_u32(a: uint32x2_t) -> u32 { |
| 13600 | unsafe extern "unadjusted" { | 13370 | unsafe { simd_reduce_max(a) } |
| 13601 | #[cfg_attr( | ||
| 13602 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13603 | link_name = "llvm.aarch64.neon.umaxv.i32.v2i32" | ||
| 13604 | )] | ||
| 13605 | fn _vmaxv_u32(a: uint32x2_t) -> u32; | ||
| 13606 | } | ||
| 13607 | unsafe { _vmaxv_u32(a) } | ||
| 13608 | } | 13371 | } |
| 13609 | #[doc = "Horizontal vector max."] | 13372 | #[doc = "Horizontal vector max."] |
| 13610 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u32)"] | 13373 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxvq_u32)"] |
| ... | @@ -13613,14 +13376,7 @@ pub fn vmaxv_u32(a: uint32x2_t) -> u32 { | ... | @@ -13613,14 +13376,7 @@ pub fn vmaxv_u32(a: uint32x2_t) -> u32 { |
| 13613 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13376 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13614 | #[cfg_attr(test, assert_instr(umaxv))] | 13377 | #[cfg_attr(test, assert_instr(umaxv))] |
| 13615 | pub fn vmaxvq_u32(a: uint32x4_t) -> u32 { | 13378 | pub fn vmaxvq_u32(a: uint32x4_t) -> u32 { |
| 13616 | unsafe extern "unadjusted" { | 13379 | unsafe { simd_reduce_max(a) } |
| 13617 | #[cfg_attr( | ||
| 13618 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13619 | link_name = "llvm.aarch64.neon.umaxv.i32.v4i32" | ||
| 13620 | )] | ||
| 13621 | fn _vmaxvq_u32(a: uint32x4_t) -> u32; | ||
| 13622 | } | ||
| 13623 | unsafe { _vmaxvq_u32(a) } | ||
| 13624 | } | 13380 | } |
| 13625 | #[doc = "Minimum (vector)"] | 13381 | #[doc = "Minimum (vector)"] |
| 13626 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f64)"] | 13382 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f64)"] |
| ... | @@ -13677,14 +13433,7 @@ pub fn vminh_f16(a: f16, b: f16) -> f16 { | ... | @@ -13677,14 +13433,7 @@ pub fn vminh_f16(a: f16, b: f16) -> f16 { |
| 13677 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13433 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13678 | #[cfg_attr(test, assert_instr(fminnm))] | 13434 | #[cfg_attr(test, assert_instr(fminnm))] |
| 13679 | pub fn vminnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { | 13435 | pub fn vminnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { |
| 13680 | unsafe extern "unadjusted" { | 13436 | unsafe { simd_fmin(a, b) } |
| 13681 | #[cfg_attr( | ||
| 13682 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13683 | link_name = "llvm.aarch64.neon.fminnm.v1f64" | ||
| 13684 | )] | ||
| 13685 | fn _vminnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t; | ||
| 13686 | } | ||
| 13687 | unsafe { _vminnm_f64(a, b) } | ||
| 13688 | } | 13437 | } |
| 13689 | #[doc = "Floating-point Minimum Number (vector)"] | 13438 | #[doc = "Floating-point Minimum Number (vector)"] |
| 13690 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f64)"] | 13439 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f64)"] |
| ... | @@ -13693,14 +13442,7 @@ pub fn vminnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { | ... | @@ -13693,14 +13442,7 @@ pub fn vminnm_f64(a: float64x1_t, b: float64x1_t) -> float64x1_t { |
| 13693 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13442 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13694 | #[cfg_attr(test, assert_instr(fminnm))] | 13443 | #[cfg_attr(test, assert_instr(fminnm))] |
| 13695 | pub fn vminnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { | 13444 | pub fn vminnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { |
| 13696 | unsafe extern "unadjusted" { | 13445 | unsafe { simd_fmin(a, b) } |
| 13697 | #[cfg_attr( | ||
| 13698 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13699 | link_name = "llvm.aarch64.neon.fminnm.v2f64" | ||
| 13700 | )] | ||
| 13701 | fn _vminnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t; | ||
| 13702 | } | ||
| 13703 | unsafe { _vminnmq_f64(a, b) } | ||
| 13704 | } | 13446 | } |
| 13705 | #[doc = "Floating-point Minimum Number"] | 13447 | #[doc = "Floating-point Minimum Number"] |
| 13706 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmh_f16)"] | 13448 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmh_f16)"] |
| ... | @@ -13709,14 +13451,7 @@ pub fn vminnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { | ... | @@ -13709,14 +13451,7 @@ pub fn vminnmq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t { |
| 13709 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 13451 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 13710 | #[cfg_attr(test, assert_instr(fminnm))] | 13452 | #[cfg_attr(test, assert_instr(fminnm))] |
| 13711 | pub fn vminnmh_f16(a: f16, b: f16) -> f16 { | 13453 | pub fn vminnmh_f16(a: f16, b: f16) -> f16 { |
| 13712 | unsafe extern "unadjusted" { | 13454 | f16::min(a, b) |
| 13713 | #[cfg_attr( | ||
| 13714 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13715 | link_name = "llvm.aarch64.neon.fminnm.f16" | ||
| 13716 | )] | ||
| 13717 | fn _vminnmh_f16(a: f16, b: f16) -> f16; | ||
| 13718 | } | ||
| 13719 | unsafe { _vminnmh_f16(a, b) } | ||
| 13720 | } | 13455 | } |
| 13721 | #[doc = "Floating-point minimum number across vector"] | 13456 | #[doc = "Floating-point minimum number across vector"] |
| 13722 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmv_f16)"] | 13457 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmv_f16)"] |
| ... | @@ -13725,14 +13460,7 @@ pub fn vminnmh_f16(a: f16, b: f16) -> f16 { | ... | @@ -13725,14 +13460,7 @@ pub fn vminnmh_f16(a: f16, b: f16) -> f16 { |
| 13725 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 13460 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 13726 | #[cfg_attr(test, assert_instr(fminnmv))] | 13461 | #[cfg_attr(test, assert_instr(fminnmv))] |
| 13727 | pub fn vminnmv_f16(a: float16x4_t) -> f16 { | 13462 | pub fn vminnmv_f16(a: float16x4_t) -> f16 { |
| 13728 | unsafe extern "unadjusted" { | 13463 | unsafe { simd_reduce_min(a) } |
| 13729 | #[cfg_attr( | ||
| 13730 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13731 | link_name = "llvm.aarch64.neon.fminnmv.f16.v4f16" | ||
| 13732 | )] | ||
| 13733 | fn _vminnmv_f16(a: float16x4_t) -> f16; | ||
| 13734 | } | ||
| 13735 | unsafe { _vminnmv_f16(a) } | ||
| 13736 | } | 13464 | } |
| 13737 | #[doc = "Floating-point minimum number across vector"] | 13465 | #[doc = "Floating-point minimum number across vector"] |
| 13738 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmvq_f16)"] | 13466 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmvq_f16)"] |
| ... | @@ -13741,14 +13469,7 @@ pub fn vminnmv_f16(a: float16x4_t) -> f16 { | ... | @@ -13741,14 +13469,7 @@ pub fn vminnmv_f16(a: float16x4_t) -> f16 { |
| 13741 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 13469 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 13742 | #[cfg_attr(test, assert_instr(fminnmv))] | 13470 | #[cfg_attr(test, assert_instr(fminnmv))] |
| 13743 | pub fn vminnmvq_f16(a: float16x8_t) -> f16 { | 13471 | pub fn vminnmvq_f16(a: float16x8_t) -> f16 { |
| 13744 | unsafe extern "unadjusted" { | 13472 | unsafe { simd_reduce_min(a) } |
| 13745 | #[cfg_attr( | ||
| 13746 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13747 | link_name = "llvm.aarch64.neon.fminnmv.f16.v8f16" | ||
| 13748 | )] | ||
| 13749 | fn _vminnmvq_f16(a: float16x8_t) -> f16; | ||
| 13750 | } | ||
| 13751 | unsafe { _vminnmvq_f16(a) } | ||
| 13752 | } | 13473 | } |
| 13753 | #[doc = "Floating-point minimum number across vector"] | 13474 | #[doc = "Floating-point minimum number across vector"] |
| 13754 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmv_f32)"] | 13475 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmv_f32)"] |
| ... | @@ -13757,14 +13478,7 @@ pub fn vminnmvq_f16(a: float16x8_t) -> f16 { | ... | @@ -13757,14 +13478,7 @@ pub fn vminnmvq_f16(a: float16x8_t) -> f16 { |
| 13757 | #[cfg_attr(test, assert_instr(fminnmp))] | 13478 | #[cfg_attr(test, assert_instr(fminnmp))] |
| 13758 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13479 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13759 | pub fn vminnmv_f32(a: float32x2_t) -> f32 { | 13480 | pub fn vminnmv_f32(a: float32x2_t) -> f32 { |
| 13760 | unsafe extern "unadjusted" { | 13481 | unsafe { simd_reduce_min(a) } |
| 13761 | #[cfg_attr( | ||
| 13762 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13763 | link_name = "llvm.aarch64.neon.fminnmv.f32.v2f32" | ||
| 13764 | )] | ||
| 13765 | fn _vminnmv_f32(a: float32x2_t) -> f32; | ||
| 13766 | } | ||
| 13767 | unsafe { _vminnmv_f32(a) } | ||
| 13768 | } | 13482 | } |
| 13769 | #[doc = "Floating-point minimum number across vector"] | 13483 | #[doc = "Floating-point minimum number across vector"] |
| 13770 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmvq_f64)"] | 13484 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmvq_f64)"] |
| ... | @@ -13773,14 +13487,7 @@ pub fn vminnmv_f32(a: float32x2_t) -> f32 { | ... | @@ -13773,14 +13487,7 @@ pub fn vminnmv_f32(a: float32x2_t) -> f32 { |
| 13773 | #[cfg_attr(test, assert_instr(fminnmp))] | 13487 | #[cfg_attr(test, assert_instr(fminnmp))] |
| 13774 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13488 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13775 | pub fn vminnmvq_f64(a: float64x2_t) -> f64 { | 13489 | pub fn vminnmvq_f64(a: float64x2_t) -> f64 { |
| 13776 | unsafe extern "unadjusted" { | 13490 | unsafe { simd_reduce_min(a) } |
| 13777 | #[cfg_attr( | ||
| 13778 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13779 | link_name = "llvm.aarch64.neon.fminnmv.f64.v2f64" | ||
| 13780 | )] | ||
| 13781 | fn _vminnmvq_f64(a: float64x2_t) -> f64; | ||
| 13782 | } | ||
| 13783 | unsafe { _vminnmvq_f64(a) } | ||
| 13784 | } | 13491 | } |
| 13785 | #[doc = "Floating-point minimum number across vector"] | 13492 | #[doc = "Floating-point minimum number across vector"] |
| 13786 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmvq_f32)"] | 13493 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmvq_f32)"] |
| ... | @@ -13789,14 +13496,7 @@ pub fn vminnmvq_f64(a: float64x2_t) -> f64 { | ... | @@ -13789,14 +13496,7 @@ pub fn vminnmvq_f64(a: float64x2_t) -> f64 { |
| 13789 | #[cfg_attr(test, assert_instr(fminnmv))] | 13496 | #[cfg_attr(test, assert_instr(fminnmv))] |
| 13790 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13497 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13791 | pub fn vminnmvq_f32(a: float32x4_t) -> f32 { | 13498 | pub fn vminnmvq_f32(a: float32x4_t) -> f32 { |
| 13792 | unsafe extern "unadjusted" { | 13499 | unsafe { simd_reduce_min(a) } |
| 13793 | #[cfg_attr( | ||
| 13794 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13795 | link_name = "llvm.aarch64.neon.fminnmv.f32.v4f32" | ||
| 13796 | )] | ||
| 13797 | fn _vminnmvq_f32(a: float32x4_t) -> f32; | ||
| 13798 | } | ||
| 13799 | unsafe { _vminnmvq_f32(a) } | ||
| 13800 | } | 13500 | } |
| 13801 | #[doc = "Floating-point minimum number across vector"] | 13501 | #[doc = "Floating-point minimum number across vector"] |
| 13802 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_f16)"] | 13502 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_f16)"] |
| ... | @@ -13885,14 +13585,7 @@ pub fn vminvq_f64(a: float64x2_t) -> f64 { | ... | @@ -13885,14 +13585,7 @@ pub fn vminvq_f64(a: float64x2_t) -> f64 { |
| 13885 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13585 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13886 | #[cfg_attr(test, assert_instr(sminv))] | 13586 | #[cfg_attr(test, assert_instr(sminv))] |
| 13887 | pub fn vminv_s8(a: int8x8_t) -> i8 { | 13587 | pub fn vminv_s8(a: int8x8_t) -> i8 { |
| 13888 | unsafe extern "unadjusted" { | 13588 | unsafe { simd_reduce_min(a) } |
| 13889 | #[cfg_attr( | ||
| 13890 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13891 | link_name = "llvm.aarch64.neon.sminv.i8.v8i8" | ||
| 13892 | )] | ||
| 13893 | fn _vminv_s8(a: int8x8_t) -> i8; | ||
| 13894 | } | ||
| 13895 | unsafe { _vminv_s8(a) } | ||
| 13896 | } | 13589 | } |
| 13897 | #[doc = "Horizontal vector min."] | 13590 | #[doc = "Horizontal vector min."] |
| 13898 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s8)"] | 13591 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s8)"] |
| ... | @@ -13901,14 +13594,7 @@ pub fn vminv_s8(a: int8x8_t) -> i8 { | ... | @@ -13901,14 +13594,7 @@ pub fn vminv_s8(a: int8x8_t) -> i8 { |
| 13901 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13594 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13902 | #[cfg_attr(test, assert_instr(sminv))] | 13595 | #[cfg_attr(test, assert_instr(sminv))] |
| 13903 | pub fn vminvq_s8(a: int8x16_t) -> i8 { | 13596 | pub fn vminvq_s8(a: int8x16_t) -> i8 { |
| 13904 | unsafe extern "unadjusted" { | 13597 | unsafe { simd_reduce_min(a) } |
| 13905 | #[cfg_attr( | ||
| 13906 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13907 | link_name = "llvm.aarch64.neon.sminv.i8.v16i8" | ||
| 13908 | )] | ||
| 13909 | fn _vminvq_s8(a: int8x16_t) -> i8; | ||
| 13910 | } | ||
| 13911 | unsafe { _vminvq_s8(a) } | ||
| 13912 | } | 13598 | } |
| 13913 | #[doc = "Horizontal vector min."] | 13599 | #[doc = "Horizontal vector min."] |
| 13914 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_s16)"] | 13600 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_s16)"] |
| ... | @@ -13917,14 +13603,7 @@ pub fn vminvq_s8(a: int8x16_t) -> i8 { | ... | @@ -13917,14 +13603,7 @@ pub fn vminvq_s8(a: int8x16_t) -> i8 { |
| 13917 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13603 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13918 | #[cfg_attr(test, assert_instr(sminv))] | 13604 | #[cfg_attr(test, assert_instr(sminv))] |
| 13919 | pub fn vminv_s16(a: int16x4_t) -> i16 { | 13605 | pub fn vminv_s16(a: int16x4_t) -> i16 { |
| 13920 | unsafe extern "unadjusted" { | 13606 | unsafe { simd_reduce_min(a) } |
| 13921 | #[cfg_attr( | ||
| 13922 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13923 | link_name = "llvm.aarch64.neon.sminv.i16.v4i16" | ||
| 13924 | )] | ||
| 13925 | fn _vminv_s16(a: int16x4_t) -> i16; | ||
| 13926 | } | ||
| 13927 | unsafe { _vminv_s16(a) } | ||
| 13928 | } | 13607 | } |
| 13929 | #[doc = "Horizontal vector min."] | 13608 | #[doc = "Horizontal vector min."] |
| 13930 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s16)"] | 13609 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s16)"] |
| ... | @@ -13933,14 +13612,7 @@ pub fn vminv_s16(a: int16x4_t) -> i16 { | ... | @@ -13933,14 +13612,7 @@ pub fn vminv_s16(a: int16x4_t) -> i16 { |
| 13933 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13612 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13934 | #[cfg_attr(test, assert_instr(sminv))] | 13613 | #[cfg_attr(test, assert_instr(sminv))] |
| 13935 | pub fn vminvq_s16(a: int16x8_t) -> i16 { | 13614 | pub fn vminvq_s16(a: int16x8_t) -> i16 { |
| 13936 | unsafe extern "unadjusted" { | 13615 | unsafe { simd_reduce_min(a) } |
| 13937 | #[cfg_attr( | ||
| 13938 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13939 | link_name = "llvm.aarch64.neon.sminv.i16.v8i16" | ||
| 13940 | )] | ||
| 13941 | fn _vminvq_s16(a: int16x8_t) -> i16; | ||
| 13942 | } | ||
| 13943 | unsafe { _vminvq_s16(a) } | ||
| 13944 | } | 13616 | } |
| 13945 | #[doc = "Horizontal vector min."] | 13617 | #[doc = "Horizontal vector min."] |
| 13946 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_s32)"] | 13618 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_s32)"] |
| ... | @@ -13949,14 +13621,7 @@ pub fn vminvq_s16(a: int16x8_t) -> i16 { | ... | @@ -13949,14 +13621,7 @@ pub fn vminvq_s16(a: int16x8_t) -> i16 { |
| 13949 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13621 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13950 | #[cfg_attr(test, assert_instr(sminp))] | 13622 | #[cfg_attr(test, assert_instr(sminp))] |
| 13951 | pub fn vminv_s32(a: int32x2_t) -> i32 { | 13623 | pub fn vminv_s32(a: int32x2_t) -> i32 { |
| 13952 | unsafe extern "unadjusted" { | 13624 | unsafe { simd_reduce_min(a) } |
| 13953 | #[cfg_attr( | ||
| 13954 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13955 | link_name = "llvm.aarch64.neon.sminv.i32.v2i32" | ||
| 13956 | )] | ||
| 13957 | fn _vminv_s32(a: int32x2_t) -> i32; | ||
| 13958 | } | ||
| 13959 | unsafe { _vminv_s32(a) } | ||
| 13960 | } | 13625 | } |
| 13961 | #[doc = "Horizontal vector min."] | 13626 | #[doc = "Horizontal vector min."] |
| 13962 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s32)"] | 13627 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_s32)"] |
| ... | @@ -13965,14 +13630,7 @@ pub fn vminv_s32(a: int32x2_t) -> i32 { | ... | @@ -13965,14 +13630,7 @@ pub fn vminv_s32(a: int32x2_t) -> i32 { |
| 13965 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13630 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13966 | #[cfg_attr(test, assert_instr(sminv))] | 13631 | #[cfg_attr(test, assert_instr(sminv))] |
| 13967 | pub fn vminvq_s32(a: int32x4_t) -> i32 { | 13632 | pub fn vminvq_s32(a: int32x4_t) -> i32 { |
| 13968 | unsafe extern "unadjusted" { | 13633 | unsafe { simd_reduce_min(a) } |
| 13969 | #[cfg_attr( | ||
| 13970 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13971 | link_name = "llvm.aarch64.neon.sminv.i32.v4i32" | ||
| 13972 | )] | ||
| 13973 | fn _vminvq_s32(a: int32x4_t) -> i32; | ||
| 13974 | } | ||
| 13975 | unsafe { _vminvq_s32(a) } | ||
| 13976 | } | 13634 | } |
| 13977 | #[doc = "Horizontal vector min."] | 13635 | #[doc = "Horizontal vector min."] |
| 13978 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u8)"] | 13636 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u8)"] |
| ... | @@ -13981,14 +13639,7 @@ pub fn vminvq_s32(a: int32x4_t) -> i32 { | ... | @@ -13981,14 +13639,7 @@ pub fn vminvq_s32(a: int32x4_t) -> i32 { |
| 13981 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13639 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13982 | #[cfg_attr(test, assert_instr(uminv))] | 13640 | #[cfg_attr(test, assert_instr(uminv))] |
| 13983 | pub fn vminv_u8(a: uint8x8_t) -> u8 { | 13641 | pub fn vminv_u8(a: uint8x8_t) -> u8 { |
| 13984 | unsafe extern "unadjusted" { | 13642 | unsafe { simd_reduce_min(a) } |
| 13985 | #[cfg_attr( | ||
| 13986 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 13987 | link_name = "llvm.aarch64.neon.uminv.i8.v8i8" | ||
| 13988 | )] | ||
| 13989 | fn _vminv_u8(a: uint8x8_t) -> u8; | ||
| 13990 | } | ||
| 13991 | unsafe { _vminv_u8(a) } | ||
| 13992 | } | 13643 | } |
| 13993 | #[doc = "Horizontal vector min."] | 13644 | #[doc = "Horizontal vector min."] |
| 13994 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u8)"] | 13645 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u8)"] |
| ... | @@ -13997,14 +13648,7 @@ pub fn vminv_u8(a: uint8x8_t) -> u8 { | ... | @@ -13997,14 +13648,7 @@ pub fn vminv_u8(a: uint8x8_t) -> u8 { |
| 13997 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13648 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 13998 | #[cfg_attr(test, assert_instr(uminv))] | 13649 | #[cfg_attr(test, assert_instr(uminv))] |
| 13999 | pub fn vminvq_u8(a: uint8x16_t) -> u8 { | 13650 | pub fn vminvq_u8(a: uint8x16_t) -> u8 { |
| 14000 | unsafe extern "unadjusted" { | 13651 | unsafe { simd_reduce_min(a) } |
| 14001 | #[cfg_attr( | ||
| 14002 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 14003 | link_name = "llvm.aarch64.neon.uminv.i8.v16i8" | ||
| 14004 | )] | ||
| 14005 | fn _vminvq_u8(a: uint8x16_t) -> u8; | ||
| 14006 | } | ||
| 14007 | unsafe { _vminvq_u8(a) } | ||
| 14008 | } | 13652 | } |
| 14009 | #[doc = "Horizontal vector min."] | 13653 | #[doc = "Horizontal vector min."] |
| 14010 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u16)"] | 13654 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u16)"] |
| ... | @@ -14013,14 +13657,7 @@ pub fn vminvq_u8(a: uint8x16_t) -> u8 { | ... | @@ -14013,14 +13657,7 @@ pub fn vminvq_u8(a: uint8x16_t) -> u8 { |
| 14013 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13657 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 14014 | #[cfg_attr(test, assert_instr(uminv))] | 13658 | #[cfg_attr(test, assert_instr(uminv))] |
| 14015 | pub fn vminv_u16(a: uint16x4_t) -> u16 { | 13659 | pub fn vminv_u16(a: uint16x4_t) -> u16 { |
| 14016 | unsafe extern "unadjusted" { | 13660 | unsafe { simd_reduce_min(a) } |
| 14017 | #[cfg_attr( | ||
| 14018 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 14019 | link_name = "llvm.aarch64.neon.uminv.i16.v4i16" | ||
| 14020 | )] | ||
| 14021 | fn _vminv_u16(a: uint16x4_t) -> u16; | ||
| 14022 | } | ||
| 14023 | unsafe { _vminv_u16(a) } | ||
| 14024 | } | 13661 | } |
| 14025 | #[doc = "Horizontal vector min."] | 13662 | #[doc = "Horizontal vector min."] |
| 14026 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u16)"] | 13663 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u16)"] |
| ... | @@ -14029,14 +13666,7 @@ pub fn vminv_u16(a: uint16x4_t) -> u16 { | ... | @@ -14029,14 +13666,7 @@ pub fn vminv_u16(a: uint16x4_t) -> u16 { |
| 14029 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13666 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 14030 | #[cfg_attr(test, assert_instr(uminv))] | 13667 | #[cfg_attr(test, assert_instr(uminv))] |
| 14031 | pub fn vminvq_u16(a: uint16x8_t) -> u16 { | 13668 | pub fn vminvq_u16(a: uint16x8_t) -> u16 { |
| 14032 | unsafe extern "unadjusted" { | 13669 | unsafe { simd_reduce_min(a) } |
| 14033 | #[cfg_attr( | ||
| 14034 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 14035 | link_name = "llvm.aarch64.neon.uminv.i16.v8i16" | ||
| 14036 | )] | ||
| 14037 | fn _vminvq_u16(a: uint16x8_t) -> u16; | ||
| 14038 | } | ||
| 14039 | unsafe { _vminvq_u16(a) } | ||
| 14040 | } | 13670 | } |
| 14041 | #[doc = "Horizontal vector min."] | 13671 | #[doc = "Horizontal vector min."] |
| 14042 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u32)"] | 13672 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminv_u32)"] |
| ... | @@ -14045,14 +13675,7 @@ pub fn vminvq_u16(a: uint16x8_t) -> u16 { | ... | @@ -14045,14 +13675,7 @@ pub fn vminvq_u16(a: uint16x8_t) -> u16 { |
| 14045 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13675 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 14046 | #[cfg_attr(test, assert_instr(uminp))] | 13676 | #[cfg_attr(test, assert_instr(uminp))] |
| 14047 | pub fn vminv_u32(a: uint32x2_t) -> u32 { | 13677 | pub fn vminv_u32(a: uint32x2_t) -> u32 { |
| 14048 | unsafe extern "unadjusted" { | 13678 | unsafe { simd_reduce_min(a) } |
| 14049 | #[cfg_attr( | ||
| 14050 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 14051 | link_name = "llvm.aarch64.neon.uminv.i32.v2i32" | ||
| 14052 | )] | ||
| 14053 | fn _vminv_u32(a: uint32x2_t) -> u32; | ||
| 14054 | } | ||
| 14055 | unsafe { _vminv_u32(a) } | ||
| 14056 | } | 13679 | } |
| 14057 | #[doc = "Horizontal vector min."] | 13680 | #[doc = "Horizontal vector min."] |
| 14058 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u32)"] | 13681 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminvq_u32)"] |
| ... | @@ -14061,14 +13684,7 @@ pub fn vminv_u32(a: uint32x2_t) -> u32 { | ... | @@ -14061,14 +13684,7 @@ pub fn vminv_u32(a: uint32x2_t) -> u32 { |
| 14061 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 13684 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 14062 | #[cfg_attr(test, assert_instr(uminv))] | 13685 | #[cfg_attr(test, assert_instr(uminv))] |
| 14063 | pub fn vminvq_u32(a: uint32x4_t) -> u32 { | 13686 | pub fn vminvq_u32(a: uint32x4_t) -> u32 { |
| 14064 | unsafe extern "unadjusted" { | 13687 | unsafe { simd_reduce_min(a) } |
| 14065 | #[cfg_attr( | ||
| 14066 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 14067 | link_name = "llvm.aarch64.neon.uminv.i32.v4i32" | ||
| 14068 | )] | ||
| 14069 | fn _vminvq_u32(a: uint32x4_t) -> u32; | ||
| 14070 | } | ||
| 14071 | unsafe { _vminvq_u32(a) } | ||
| 14072 | } | 13688 | } |
| 14073 | #[doc = "Floating-point multiply-add to accumulator"] | 13689 | #[doc = "Floating-point multiply-add to accumulator"] |
| 14074 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f64)"] | 13690 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f64)"] |
| ... | @@ -15277,7 +14893,7 @@ pub fn vmull_high_n_u32(a: uint32x4_t, b: u32) -> uint64x2_t { | ... | @@ -15277,7 +14893,7 @@ pub fn vmull_high_n_u32(a: uint32x4_t, b: u32) -> uint64x2_t { |
| 15277 | #[inline] | 14893 | #[inline] |
| 15278 | #[target_feature(enable = "neon,aes")] | 14894 | #[target_feature(enable = "neon,aes")] |
| 15279 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 14895 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 15280 | #[cfg_attr(test, assert_instr(pmull))] | 14896 | #[cfg_attr(test, assert_instr(pmull2))] |
| 15281 | pub fn vmull_high_p64(a: poly64x2_t, b: poly64x2_t) -> p128 { | 14897 | pub fn vmull_high_p64(a: poly64x2_t, b: poly64x2_t) -> p128 { |
| 15282 | unsafe { vmull_p64(simd_extract!(a, 1), simd_extract!(b, 1)) } | 14898 | unsafe { vmull_p64(simd_extract!(a, 1), simd_extract!(b, 1)) } |
| 15283 | } | 14899 | } |
| ... | @@ -15286,7 +14902,7 @@ pub fn vmull_high_p64(a: poly64x2_t, b: poly64x2_t) -> p128 { | ... | @@ -15286,7 +14902,7 @@ pub fn vmull_high_p64(a: poly64x2_t, b: poly64x2_t) -> p128 { |
| 15286 | #[inline] | 14902 | #[inline] |
| 15287 | #[target_feature(enable = "neon")] | 14903 | #[target_feature(enable = "neon")] |
| 15288 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 14904 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 15289 | #[cfg_attr(test, assert_instr(pmull))] | 14905 | #[cfg_attr(test, assert_instr(pmull2))] |
| 15290 | pub fn vmull_high_p8(a: poly8x16_t, b: poly8x16_t) -> poly16x8_t { | 14906 | pub fn vmull_high_p8(a: poly8x16_t, b: poly8x16_t) -> poly16x8_t { |
| 15291 | unsafe { | 14907 | unsafe { |
| 15292 | let a: poly8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); | 14908 | let a: poly8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -15951,23 +15567,11 @@ pub fn vpadds_f32(a: float32x2_t) -> f32 { | ... | @@ -15951,23 +15567,11 @@ pub fn vpadds_f32(a: float32x2_t) -> f32 { |
| 15951 | #[doc = "Add pairwise"] | 15567 | #[doc = "Add pairwise"] |
| 15952 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddd_s64)"] | 15568 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddd_s64)"] |
| 15953 | #[inline] | 15569 | #[inline] |
| 15954 | #[cfg(target_endian = "little")] | ||
| 15955 | #[target_feature(enable = "neon")] | 15570 | #[target_feature(enable = "neon")] |
| 15956 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 15571 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 15957 | #[cfg_attr(test, assert_instr(addp))] | 15572 | #[cfg_attr(test, assert_instr(addp))] |
| 15958 | pub fn vpaddd_s64(a: int64x2_t) -> i64 { | 15573 | pub fn vpaddd_s64(a: int64x2_t) -> i64 { |
| 15959 | unsafe { transmute(vaddvq_u64(transmute(a))) } | 15574 | unsafe { simd_reduce_add_unordered(a) } |
| 15960 | } | ||
| 15961 | #[doc = "Add pairwise"] | ||
| 15962 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddd_s64)"] | ||
| 15963 | #[inline] | ||
| 15964 | #[cfg(target_endian = "big")] | ||
| 15965 | #[target_feature(enable = "neon")] | ||
| 15966 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | ||
| 15967 | #[cfg_attr(test, assert_instr(addp))] | ||
| 15968 | pub fn vpaddd_s64(a: int64x2_t) -> i64 { | ||
| 15969 | let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) }; | ||
| 15970 | unsafe { transmute(vaddvq_u64(transmute(a))) } | ||
| 15971 | } | 15575 | } |
| 15972 | #[doc = "Add pairwise"] | 15576 | #[doc = "Add pairwise"] |
| 15973 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddd_u64)"] | 15577 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddd_u64)"] |
| ... | @@ -15976,7 +15580,7 @@ pub fn vpaddd_s64(a: int64x2_t) -> i64 { | ... | @@ -15976,7 +15580,7 @@ pub fn vpaddd_s64(a: int64x2_t) -> i64 { |
| 15976 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 15580 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 15977 | #[cfg_attr(test, assert_instr(addp))] | 15581 | #[cfg_attr(test, assert_instr(addp))] |
| 15978 | pub fn vpaddd_u64(a: uint64x2_t) -> u64 { | 15582 | pub fn vpaddd_u64(a: uint64x2_t) -> u64 { |
| 15979 | vaddvq_u64(a) | 15583 | unsafe { simd_reduce_add_unordered(a) } |
| 15980 | } | 15584 | } |
| 15981 | #[doc = "Floating-point add pairwise"] | 15585 | #[doc = "Floating-point add pairwise"] |
| 15982 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddq_f16)"] | 15586 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddq_f16)"] |
| ... | @@ -26893,7 +26497,7 @@ pub fn vsubh_f16(a: f16, b: f16) -> f16 { | ... | @@ -26893,7 +26497,7 @@ pub fn vsubh_f16(a: f16, b: f16) -> f16 { |
| 26893 | #[inline] | 26497 | #[inline] |
| 26894 | #[target_feature(enable = "neon")] | 26498 | #[target_feature(enable = "neon")] |
| 26895 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26499 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26896 | #[cfg_attr(test, assert_instr(ssubl))] | 26500 | #[cfg_attr(test, assert_instr(ssubl2))] |
| 26897 | pub fn vsubl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { | 26501 | pub fn vsubl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { |
| 26898 | unsafe { | 26502 | unsafe { |
| 26899 | let c: int8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); | 26503 | let c: int8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -26908,7 +26512,7 @@ pub fn vsubl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { | ... | @@ -26908,7 +26512,7 @@ pub fn vsubl_high_s8(a: int8x16_t, b: int8x16_t) -> int16x8_t { |
| 26908 | #[inline] | 26512 | #[inline] |
| 26909 | #[target_feature(enable = "neon")] | 26513 | #[target_feature(enable = "neon")] |
| 26910 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26514 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26911 | #[cfg_attr(test, assert_instr(ssubl))] | 26515 | #[cfg_attr(test, assert_instr(ssubl2))] |
| 26912 | pub fn vsubl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { | 26516 | pub fn vsubl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { |
| 26913 | unsafe { | 26517 | unsafe { |
| 26914 | let c: int16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]); | 26518 | let c: int16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]); |
| ... | @@ -26923,7 +26527,7 @@ pub fn vsubl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { | ... | @@ -26923,7 +26527,7 @@ pub fn vsubl_high_s16(a: int16x8_t, b: int16x8_t) -> int32x4_t { |
| 26923 | #[inline] | 26527 | #[inline] |
| 26924 | #[target_feature(enable = "neon")] | 26528 | #[target_feature(enable = "neon")] |
| 26925 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26529 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26926 | #[cfg_attr(test, assert_instr(ssubl))] | 26530 | #[cfg_attr(test, assert_instr(ssubl2))] |
| 26927 | pub fn vsubl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { | 26531 | pub fn vsubl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { |
| 26928 | unsafe { | 26532 | unsafe { |
| 26929 | let c: int32x2_t = simd_shuffle!(a, a, [2, 3]); | 26533 | let c: int32x2_t = simd_shuffle!(a, a, [2, 3]); |
| ... | @@ -26938,7 +26542,7 @@ pub fn vsubl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { | ... | @@ -26938,7 +26542,7 @@ pub fn vsubl_high_s32(a: int32x4_t, b: int32x4_t) -> int64x2_t { |
| 26938 | #[inline] | 26542 | #[inline] |
| 26939 | #[target_feature(enable = "neon")] | 26543 | #[target_feature(enable = "neon")] |
| 26940 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26544 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26941 | #[cfg_attr(test, assert_instr(usubl))] | 26545 | #[cfg_attr(test, assert_instr(usubl2))] |
| 26942 | pub fn vsubl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { | 26546 | pub fn vsubl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { |
| 26943 | unsafe { | 26547 | unsafe { |
| 26944 | let c: uint8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); | 26548 | let c: uint8x8_t = simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -26953,7 +26557,7 @@ pub fn vsubl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { | ... | @@ -26953,7 +26557,7 @@ pub fn vsubl_high_u8(a: uint8x16_t, b: uint8x16_t) -> uint16x8_t { |
| 26953 | #[inline] | 26557 | #[inline] |
| 26954 | #[target_feature(enable = "neon")] | 26558 | #[target_feature(enable = "neon")] |
| 26955 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26559 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26956 | #[cfg_attr(test, assert_instr(usubl))] | 26560 | #[cfg_attr(test, assert_instr(usubl2))] |
| 26957 | pub fn vsubl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { | 26561 | pub fn vsubl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { |
| 26958 | unsafe { | 26562 | unsafe { |
| 26959 | let c: uint16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]); | 26563 | let c: uint16x4_t = simd_shuffle!(a, a, [4, 5, 6, 7]); |
| ... | @@ -26968,7 +26572,7 @@ pub fn vsubl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { | ... | @@ -26968,7 +26572,7 @@ pub fn vsubl_high_u16(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t { |
| 26968 | #[inline] | 26572 | #[inline] |
| 26969 | #[target_feature(enable = "neon")] | 26573 | #[target_feature(enable = "neon")] |
| 26970 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26574 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26971 | #[cfg_attr(test, assert_instr(usubl))] | 26575 | #[cfg_attr(test, assert_instr(usubl2))] |
| 26972 | pub fn vsubl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t { | 26576 | pub fn vsubl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t { |
| 26973 | unsafe { | 26577 | unsafe { |
| 26974 | let c: uint32x2_t = simd_shuffle!(a, a, [2, 3]); | 26578 | let c: uint32x2_t = simd_shuffle!(a, a, [2, 3]); |
| ... | @@ -26983,7 +26587,7 @@ pub fn vsubl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t { | ... | @@ -26983,7 +26587,7 @@ pub fn vsubl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t { |
| 26983 | #[inline] | 26587 | #[inline] |
| 26984 | #[target_feature(enable = "neon")] | 26588 | #[target_feature(enable = "neon")] |
| 26985 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26589 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26986 | #[cfg_attr(test, assert_instr(ssubw))] | 26590 | #[cfg_attr(test, assert_instr(ssubw2))] |
| 26987 | pub fn vsubw_high_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t { | 26591 | pub fn vsubw_high_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t { |
| 26988 | unsafe { | 26592 | unsafe { |
| 26989 | let c: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); | 26593 | let c: int8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -26995,7 +26599,7 @@ pub fn vsubw_high_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t { | ... | @@ -26995,7 +26599,7 @@ pub fn vsubw_high_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t { |
| 26995 | #[inline] | 26599 | #[inline] |
| 26996 | #[target_feature(enable = "neon")] | 26600 | #[target_feature(enable = "neon")] |
| 26997 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26601 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 26998 | #[cfg_attr(test, assert_instr(ssubw))] | 26602 | #[cfg_attr(test, assert_instr(ssubw2))] |
| 26999 | pub fn vsubw_high_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t { | 26603 | pub fn vsubw_high_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t { |
| 27000 | unsafe { | 26604 | unsafe { |
| 27001 | let c: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); | 26605 | let c: int16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); |
| ... | @@ -27007,7 +26611,7 @@ pub fn vsubw_high_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t { | ... | @@ -27007,7 +26611,7 @@ pub fn vsubw_high_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t { |
| 27007 | #[inline] | 26611 | #[inline] |
| 27008 | #[target_feature(enable = "neon")] | 26612 | #[target_feature(enable = "neon")] |
| 27009 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26613 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 27010 | #[cfg_attr(test, assert_instr(ssubw))] | 26614 | #[cfg_attr(test, assert_instr(ssubw2))] |
| 27011 | pub fn vsubw_high_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t { | 26615 | pub fn vsubw_high_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t { |
| 27012 | unsafe { | 26616 | unsafe { |
| 27013 | let c: int32x2_t = simd_shuffle!(b, b, [2, 3]); | 26617 | let c: int32x2_t = simd_shuffle!(b, b, [2, 3]); |
| ... | @@ -27019,7 +26623,7 @@ pub fn vsubw_high_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t { | ... | @@ -27019,7 +26623,7 @@ pub fn vsubw_high_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t { |
| 27019 | #[inline] | 26623 | #[inline] |
| 27020 | #[target_feature(enable = "neon")] | 26624 | #[target_feature(enable = "neon")] |
| 27021 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26625 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 27022 | #[cfg_attr(test, assert_instr(usubw))] | 26626 | #[cfg_attr(test, assert_instr(usubw2))] |
| 27023 | pub fn vsubw_high_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t { | 26627 | pub fn vsubw_high_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t { |
| 27024 | unsafe { | 26628 | unsafe { |
| 27025 | let c: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); | 26629 | let c: uint8x8_t = simd_shuffle!(b, b, [8, 9, 10, 11, 12, 13, 14, 15]); |
| ... | @@ -27031,7 +26635,7 @@ pub fn vsubw_high_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t { | ... | @@ -27031,7 +26635,7 @@ pub fn vsubw_high_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t { |
| 27031 | #[inline] | 26635 | #[inline] |
| 27032 | #[target_feature(enable = "neon")] | 26636 | #[target_feature(enable = "neon")] |
| 27033 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26637 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 27034 | #[cfg_attr(test, assert_instr(usubw))] | 26638 | #[cfg_attr(test, assert_instr(usubw2))] |
| 27035 | pub fn vsubw_high_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t { | 26639 | pub fn vsubw_high_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t { |
| 27036 | unsafe { | 26640 | unsafe { |
| 27037 | let c: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); | 26641 | let c: uint16x4_t = simd_shuffle!(b, b, [4, 5, 6, 7]); |
| ... | @@ -27043,7 +26647,7 @@ pub fn vsubw_high_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t { | ... | @@ -27043,7 +26647,7 @@ pub fn vsubw_high_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t { |
| 27043 | #[inline] | 26647 | #[inline] |
| 27044 | #[target_feature(enable = "neon")] | 26648 | #[target_feature(enable = "neon")] |
| 27045 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] | 26649 | #[stable(feature = "neon_intrinsics", since = "1.59.0")] |
| 27046 | #[cfg_attr(test, assert_instr(usubw))] | 26650 | #[cfg_attr(test, assert_instr(usubw2))] |
| 27047 | pub fn vsubw_high_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t { | 26651 | pub fn vsubw_high_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t { |
| 27048 | unsafe { | 26652 | unsafe { |
| 27049 | let c: uint32x2_t = simd_shuffle!(b, b, [2, 3]); | 26653 | let c: uint32x2_t = simd_shuffle!(b, b, [2, 3]); |
library/stdarch/crates/core_arch/src/arm_shared/neon/generated.rs+445-508| ... | @@ -1483,15 +1483,11 @@ pub fn vabsq_f32(a: float32x4_t) -> float32x4_t { | ... | @@ -1483,15 +1483,11 @@ pub fn vabsq_f32(a: float32x4_t) -> float32x4_t { |
| 1483 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 1483 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 1484 | )] | 1484 | )] |
| 1485 | pub fn vabs_s8(a: int8x8_t) -> int8x8_t { | 1485 | pub fn vabs_s8(a: int8x8_t) -> int8x8_t { |
| 1486 | unsafe extern "unadjusted" { | 1486 | unsafe { |
| 1487 | #[cfg_attr( | 1487 | let neg: int8x8_t = simd_neg(a); |
| 1488 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 1488 | let mask: int8x8_t = simd_ge(a, neg); |
| 1489 | link_name = "llvm.aarch64.neon.abs.v8i8" | 1489 | simd_select(mask, a, neg) |
| 1490 | )] | ||
| 1491 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabs.v8i8")] | ||
| 1492 | fn _vabs_s8(a: int8x8_t) -> int8x8_t; | ||
| 1493 | } | 1490 | } |
| 1494 | unsafe { _vabs_s8(a) } | ||
| 1495 | } | 1491 | } |
| 1496 | #[doc = "Absolute value (wrapping)."] | 1492 | #[doc = "Absolute value (wrapping)."] |
| 1497 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s8)"] | 1493 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s8)"] |
| ... | @@ -1512,15 +1508,11 @@ pub fn vabs_s8(a: int8x8_t) -> int8x8_t { | ... | @@ -1512,15 +1508,11 @@ pub fn vabs_s8(a: int8x8_t) -> int8x8_t { |
| 1512 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 1508 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 1513 | )] | 1509 | )] |
| 1514 | pub fn vabsq_s8(a: int8x16_t) -> int8x16_t { | 1510 | pub fn vabsq_s8(a: int8x16_t) -> int8x16_t { |
| 1515 | unsafe extern "unadjusted" { | 1511 | unsafe { |
| 1516 | #[cfg_attr( | 1512 | let neg: int8x16_t = simd_neg(a); |
| 1517 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 1513 | let mask: int8x16_t = simd_ge(a, neg); |
| 1518 | link_name = "llvm.aarch64.neon.abs.v16i8" | 1514 | simd_select(mask, a, neg) |
| 1519 | )] | ||
| 1520 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabs.v16i8")] | ||
| 1521 | fn _vabsq_s8(a: int8x16_t) -> int8x16_t; | ||
| 1522 | } | 1515 | } |
| 1523 | unsafe { _vabsq_s8(a) } | ||
| 1524 | } | 1516 | } |
| 1525 | #[doc = "Absolute value (wrapping)."] | 1517 | #[doc = "Absolute value (wrapping)."] |
| 1526 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s16)"] | 1518 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s16)"] |
| ... | @@ -1541,15 +1533,11 @@ pub fn vabsq_s8(a: int8x16_t) -> int8x16_t { | ... | @@ -1541,15 +1533,11 @@ pub fn vabsq_s8(a: int8x16_t) -> int8x16_t { |
| 1541 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 1533 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 1542 | )] | 1534 | )] |
| 1543 | pub fn vabs_s16(a: int16x4_t) -> int16x4_t { | 1535 | pub fn vabs_s16(a: int16x4_t) -> int16x4_t { |
| 1544 | unsafe extern "unadjusted" { | 1536 | unsafe { |
| 1545 | #[cfg_attr( | 1537 | let neg: int16x4_t = simd_neg(a); |
| 1546 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 1538 | let mask: int16x4_t = simd_ge(a, neg); |
| 1547 | link_name = "llvm.aarch64.neon.abs.v4i16" | 1539 | simd_select(mask, a, neg) |
| 1548 | )] | ||
| 1549 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabs.v4i16")] | ||
| 1550 | fn _vabs_s16(a: int16x4_t) -> int16x4_t; | ||
| 1551 | } | 1540 | } |
| 1552 | unsafe { _vabs_s16(a) } | ||
| 1553 | } | 1541 | } |
| 1554 | #[doc = "Absolute value (wrapping)."] | 1542 | #[doc = "Absolute value (wrapping)."] |
| 1555 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s16)"] | 1543 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s16)"] |
| ... | @@ -1570,15 +1558,11 @@ pub fn vabs_s16(a: int16x4_t) -> int16x4_t { | ... | @@ -1570,15 +1558,11 @@ pub fn vabs_s16(a: int16x4_t) -> int16x4_t { |
| 1570 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 1558 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 1571 | )] | 1559 | )] |
| 1572 | pub fn vabsq_s16(a: int16x8_t) -> int16x8_t { | 1560 | pub fn vabsq_s16(a: int16x8_t) -> int16x8_t { |
| 1573 | unsafe extern "unadjusted" { | 1561 | unsafe { |
| 1574 | #[cfg_attr( | 1562 | let neg: int16x8_t = simd_neg(a); |
| 1575 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 1563 | let mask: int16x8_t = simd_ge(a, neg); |
| 1576 | link_name = "llvm.aarch64.neon.abs.v8i16" | 1564 | simd_select(mask, a, neg) |
| 1577 | )] | ||
| 1578 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabs.v8i16")] | ||
| 1579 | fn _vabsq_s16(a: int16x8_t) -> int16x8_t; | ||
| 1580 | } | 1565 | } |
| 1581 | unsafe { _vabsq_s16(a) } | ||
| 1582 | } | 1566 | } |
| 1583 | #[doc = "Absolute value (wrapping)."] | 1567 | #[doc = "Absolute value (wrapping)."] |
| 1584 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s32)"] | 1568 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_s32)"] |
| ... | @@ -1599,15 +1583,11 @@ pub fn vabsq_s16(a: int16x8_t) -> int16x8_t { | ... | @@ -1599,15 +1583,11 @@ pub fn vabsq_s16(a: int16x8_t) -> int16x8_t { |
| 1599 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 1583 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 1600 | )] | 1584 | )] |
| 1601 | pub fn vabs_s32(a: int32x2_t) -> int32x2_t { | 1585 | pub fn vabs_s32(a: int32x2_t) -> int32x2_t { |
| 1602 | unsafe extern "unadjusted" { | 1586 | unsafe { |
| 1603 | #[cfg_attr( | 1587 | let neg: int32x2_t = simd_neg(a); |
| 1604 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 1588 | let mask: int32x2_t = simd_ge(a, neg); |
| 1605 | link_name = "llvm.aarch64.neon.abs.v2i32" | 1589 | simd_select(mask, a, neg) |
| 1606 | )] | ||
| 1607 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabs.v2i32")] | ||
| 1608 | fn _vabs_s32(a: int32x2_t) -> int32x2_t; | ||
| 1609 | } | 1590 | } |
| 1610 | unsafe { _vabs_s32(a) } | ||
| 1611 | } | 1591 | } |
| 1612 | #[doc = "Absolute value (wrapping)."] | 1592 | #[doc = "Absolute value (wrapping)."] |
| 1613 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s32)"] | 1593 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_s32)"] |
| ... | @@ -1628,15 +1608,11 @@ pub fn vabs_s32(a: int32x2_t) -> int32x2_t { | ... | @@ -1628,15 +1608,11 @@ pub fn vabs_s32(a: int32x2_t) -> int32x2_t { |
| 1628 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 1608 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 1629 | )] | 1609 | )] |
| 1630 | pub fn vabsq_s32(a: int32x4_t) -> int32x4_t { | 1610 | pub fn vabsq_s32(a: int32x4_t) -> int32x4_t { |
| 1631 | unsafe extern "unadjusted" { | 1611 | unsafe { |
| 1632 | #[cfg_attr( | 1612 | let neg: int32x4_t = simd_neg(a); |
| 1633 | any(target_arch = "aarch64", target_arch = "arm64ec"), | 1613 | let mask: int32x4_t = simd_ge(a, neg); |
| 1634 | link_name = "llvm.aarch64.neon.abs.v4i32" | 1614 | simd_select(mask, a, neg) |
| 1635 | )] | ||
| 1636 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabs.v4i32")] | ||
| 1637 | fn _vabsq_s32(a: int32x4_t) -> int32x4_t; | ||
| 1638 | } | 1615 | } |
| 1639 | unsafe { _vabsq_s32(a) } | ||
| 1640 | } | 1616 | } |
| 1641 | #[doc = "Floating-point absolute value"] | 1617 | #[doc = "Floating-point absolute value"] |
| 1642 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsh_f16)"] | 1618 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsh_f16)"] |
| ... | @@ -14322,8 +14298,7 @@ pub unsafe fn vld1q_dup_f16(ptr: *const f16) -> float16x8_t { | ... | @@ -14322,8 +14298,7 @@ pub unsafe fn vld1q_dup_f16(ptr: *const f16) -> float16x8_t { |
| 14322 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14298 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14323 | )] | 14299 | )] |
| 14324 | pub unsafe fn vld1_dup_f32(ptr: *const f32) -> float32x2_t { | 14300 | pub unsafe fn vld1_dup_f32(ptr: *const f32) -> float32x2_t { |
| 14325 | let x = vld1_lane_f32::<0>(ptr, transmute(f32x2::splat(0.0))); | 14301 | transmute(f32x2::splat(*ptr)) |
| 14326 | simd_shuffle!(x, x, [0, 0]) | ||
| 14327 | } | 14302 | } |
| 14328 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14303 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14329 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p16)"] | 14304 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p16)"] |
| ... | @@ -14346,8 +14321,7 @@ pub unsafe fn vld1_dup_f32(ptr: *const f32) -> float32x2_t { | ... | @@ -14346,8 +14321,7 @@ pub unsafe fn vld1_dup_f32(ptr: *const f32) -> float32x2_t { |
| 14346 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14321 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14347 | )] | 14322 | )] |
| 14348 | pub unsafe fn vld1_dup_p16(ptr: *const p16) -> poly16x4_t { | 14323 | pub unsafe fn vld1_dup_p16(ptr: *const p16) -> poly16x4_t { |
| 14349 | let x = vld1_lane_p16::<0>(ptr, transmute(u16x4::splat(0))); | 14324 | transmute(u16x4::splat(*ptr)) |
| 14350 | simd_shuffle!(x, x, [0, 0, 0, 0]) | ||
| 14351 | } | 14325 | } |
| 14352 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14326 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14353 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p8)"] | 14327 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p8)"] |
| ... | @@ -14370,8 +14344,7 @@ pub unsafe fn vld1_dup_p16(ptr: *const p16) -> poly16x4_t { | ... | @@ -14370,8 +14344,7 @@ pub unsafe fn vld1_dup_p16(ptr: *const p16) -> poly16x4_t { |
| 14370 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14344 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14371 | )] | 14345 | )] |
| 14372 | pub unsafe fn vld1_dup_p8(ptr: *const p8) -> poly8x8_t { | 14346 | pub unsafe fn vld1_dup_p8(ptr: *const p8) -> poly8x8_t { |
| 14373 | let x = vld1_lane_p8::<0>(ptr, transmute(u8x8::splat(0))); | 14347 | transmute(u8x8::splat(*ptr)) |
| 14374 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14375 | } | 14348 | } |
| 14376 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14349 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14377 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s16)"] | 14350 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s16)"] |
| ... | @@ -14394,8 +14367,7 @@ pub unsafe fn vld1_dup_p8(ptr: *const p8) -> poly8x8_t { | ... | @@ -14394,8 +14367,7 @@ pub unsafe fn vld1_dup_p8(ptr: *const p8) -> poly8x8_t { |
| 14394 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14367 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14395 | )] | 14368 | )] |
| 14396 | pub unsafe fn vld1_dup_s16(ptr: *const i16) -> int16x4_t { | 14369 | pub unsafe fn vld1_dup_s16(ptr: *const i16) -> int16x4_t { |
| 14397 | let x = vld1_lane_s16::<0>(ptr, transmute(i16x4::splat(0))); | 14370 | transmute(i16x4::splat(*ptr)) |
| 14398 | simd_shuffle!(x, x, [0, 0, 0, 0]) | ||
| 14399 | } | 14371 | } |
| 14400 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14372 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14401 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s32)"] | 14373 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s32)"] |
| ... | @@ -14418,8 +14390,7 @@ pub unsafe fn vld1_dup_s16(ptr: *const i16) -> int16x4_t { | ... | @@ -14418,8 +14390,7 @@ pub unsafe fn vld1_dup_s16(ptr: *const i16) -> int16x4_t { |
| 14418 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14390 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14419 | )] | 14391 | )] |
| 14420 | pub unsafe fn vld1_dup_s32(ptr: *const i32) -> int32x2_t { | 14392 | pub unsafe fn vld1_dup_s32(ptr: *const i32) -> int32x2_t { |
| 14421 | let x = vld1_lane_s32::<0>(ptr, transmute(i32x2::splat(0))); | 14393 | transmute(i32x2::splat(*ptr)) |
| 14422 | simd_shuffle!(x, x, [0, 0]) | ||
| 14423 | } | 14394 | } |
| 14424 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14395 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14425 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s8)"] | 14396 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s8)"] |
| ... | @@ -14442,8 +14413,7 @@ pub unsafe fn vld1_dup_s32(ptr: *const i32) -> int32x2_t { | ... | @@ -14442,8 +14413,7 @@ pub unsafe fn vld1_dup_s32(ptr: *const i32) -> int32x2_t { |
| 14442 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14413 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14443 | )] | 14414 | )] |
| 14444 | pub unsafe fn vld1_dup_s8(ptr: *const i8) -> int8x8_t { | 14415 | pub unsafe fn vld1_dup_s8(ptr: *const i8) -> int8x8_t { |
| 14445 | let x = vld1_lane_s8::<0>(ptr, transmute(i8x8::splat(0))); | 14416 | transmute(i8x8::splat(*ptr)) |
| 14446 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14447 | } | 14417 | } |
| 14448 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14418 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14449 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u16)"] | 14419 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u16)"] |
| ... | @@ -14466,8 +14436,7 @@ pub unsafe fn vld1_dup_s8(ptr: *const i8) -> int8x8_t { | ... | @@ -14466,8 +14436,7 @@ pub unsafe fn vld1_dup_s8(ptr: *const i8) -> int8x8_t { |
| 14466 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14436 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14467 | )] | 14437 | )] |
| 14468 | pub unsafe fn vld1_dup_u16(ptr: *const u16) -> uint16x4_t { | 14438 | pub unsafe fn vld1_dup_u16(ptr: *const u16) -> uint16x4_t { |
| 14469 | let x = vld1_lane_u16::<0>(ptr, transmute(u16x4::splat(0))); | 14439 | transmute(u16x4::splat(*ptr)) |
| 14470 | simd_shuffle!(x, x, [0, 0, 0, 0]) | ||
| 14471 | } | 14440 | } |
| 14472 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14441 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14473 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u32)"] | 14442 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u32)"] |
| ... | @@ -14490,8 +14459,7 @@ pub unsafe fn vld1_dup_u16(ptr: *const u16) -> uint16x4_t { | ... | @@ -14490,8 +14459,7 @@ pub unsafe fn vld1_dup_u16(ptr: *const u16) -> uint16x4_t { |
| 14490 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14459 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14491 | )] | 14460 | )] |
| 14492 | pub unsafe fn vld1_dup_u32(ptr: *const u32) -> uint32x2_t { | 14461 | pub unsafe fn vld1_dup_u32(ptr: *const u32) -> uint32x2_t { |
| 14493 | let x = vld1_lane_u32::<0>(ptr, transmute(u32x2::splat(0))); | 14462 | transmute(u32x2::splat(*ptr)) |
| 14494 | simd_shuffle!(x, x, [0, 0]) | ||
| 14495 | } | 14463 | } |
| 14496 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14464 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14497 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u8)"] | 14465 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u8)"] |
| ... | @@ -14514,8 +14482,7 @@ pub unsafe fn vld1_dup_u32(ptr: *const u32) -> uint32x2_t { | ... | @@ -14514,8 +14482,7 @@ pub unsafe fn vld1_dup_u32(ptr: *const u32) -> uint32x2_t { |
| 14514 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14482 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14515 | )] | 14483 | )] |
| 14516 | pub unsafe fn vld1_dup_u8(ptr: *const u8) -> uint8x8_t { | 14484 | pub unsafe fn vld1_dup_u8(ptr: *const u8) -> uint8x8_t { |
| 14517 | let x = vld1_lane_u8::<0>(ptr, transmute(u8x8::splat(0))); | 14485 | transmute(u8x8::splat(*ptr)) |
| 14518 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14519 | } | 14486 | } |
| 14520 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14487 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14521 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f32)"] | 14488 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f32)"] |
| ... | @@ -14538,8 +14505,7 @@ pub unsafe fn vld1_dup_u8(ptr: *const u8) -> uint8x8_t { | ... | @@ -14538,8 +14505,7 @@ pub unsafe fn vld1_dup_u8(ptr: *const u8) -> uint8x8_t { |
| 14538 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14505 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14539 | )] | 14506 | )] |
| 14540 | pub unsafe fn vld1q_dup_f32(ptr: *const f32) -> float32x4_t { | 14507 | pub unsafe fn vld1q_dup_f32(ptr: *const f32) -> float32x4_t { |
| 14541 | let x = vld1q_lane_f32::<0>(ptr, transmute(f32x4::splat(0.0))); | 14508 | transmute(f32x4::splat(*ptr)) |
| 14542 | simd_shuffle!(x, x, [0, 0, 0, 0]) | ||
| 14543 | } | 14509 | } |
| 14544 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14510 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14545 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p16)"] | 14511 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p16)"] |
| ... | @@ -14562,8 +14528,7 @@ pub unsafe fn vld1q_dup_f32(ptr: *const f32) -> float32x4_t { | ... | @@ -14562,8 +14528,7 @@ pub unsafe fn vld1q_dup_f32(ptr: *const f32) -> float32x4_t { |
| 14562 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14528 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14563 | )] | 14529 | )] |
| 14564 | pub unsafe fn vld1q_dup_p16(ptr: *const p16) -> poly16x8_t { | 14530 | pub unsafe fn vld1q_dup_p16(ptr: *const p16) -> poly16x8_t { |
| 14565 | let x = vld1q_lane_p16::<0>(ptr, transmute(u16x8::splat(0))); | 14531 | transmute(u16x8::splat(*ptr)) |
| 14566 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14567 | } | 14532 | } |
| 14568 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14533 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14569 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p8)"] | 14534 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p8)"] |
| ... | @@ -14586,8 +14551,7 @@ pub unsafe fn vld1q_dup_p16(ptr: *const p16) -> poly16x8_t { | ... | @@ -14586,8 +14551,7 @@ pub unsafe fn vld1q_dup_p16(ptr: *const p16) -> poly16x8_t { |
| 14586 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14551 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14587 | )] | 14552 | )] |
| 14588 | pub unsafe fn vld1q_dup_p8(ptr: *const p8) -> poly8x16_t { | 14553 | pub unsafe fn vld1q_dup_p8(ptr: *const p8) -> poly8x16_t { |
| 14589 | let x = vld1q_lane_p8::<0>(ptr, transmute(u8x16::splat(0))); | 14554 | transmute(u8x16::splat(*ptr)) |
| 14590 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14591 | } | 14555 | } |
| 14592 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14556 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14593 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s16)"] | 14557 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s16)"] |
| ... | @@ -14610,8 +14574,7 @@ pub unsafe fn vld1q_dup_p8(ptr: *const p8) -> poly8x16_t { | ... | @@ -14610,8 +14574,7 @@ pub unsafe fn vld1q_dup_p8(ptr: *const p8) -> poly8x16_t { |
| 14610 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14574 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14611 | )] | 14575 | )] |
| 14612 | pub unsafe fn vld1q_dup_s16(ptr: *const i16) -> int16x8_t { | 14576 | pub unsafe fn vld1q_dup_s16(ptr: *const i16) -> int16x8_t { |
| 14613 | let x = vld1q_lane_s16::<0>(ptr, transmute(i16x8::splat(0))); | 14577 | transmute(i16x8::splat(*ptr)) |
| 14614 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14615 | } | 14578 | } |
| 14616 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14579 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14617 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s32)"] | 14580 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s32)"] |
| ... | @@ -14634,8 +14597,7 @@ pub unsafe fn vld1q_dup_s16(ptr: *const i16) -> int16x8_t { | ... | @@ -14634,8 +14597,7 @@ pub unsafe fn vld1q_dup_s16(ptr: *const i16) -> int16x8_t { |
| 14634 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14597 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14635 | )] | 14598 | )] |
| 14636 | pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t { | 14599 | pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t { |
| 14637 | let x = vld1q_lane_s32::<0>(ptr, transmute(i32x4::splat(0))); | 14600 | transmute(i32x4::splat(*ptr)) |
| 14638 | simd_shuffle!(x, x, [0, 0, 0, 0]) | ||
| 14639 | } | 14601 | } |
| 14640 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14602 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14641 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s64)"] | 14603 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s64)"] |
| ... | @@ -14647,7 +14609,7 @@ pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t { | ... | @@ -14647,7 +14609,7 @@ pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t { |
| 14647 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))] | 14609 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))] |
| 14648 | #[cfg_attr( | 14610 | #[cfg_attr( |
| 14649 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 14611 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 14650 | assert_instr(ld1) | 14612 | assert_instr(ld1r) |
| 14651 | )] | 14613 | )] |
| 14652 | #[cfg_attr( | 14614 | #[cfg_attr( |
| 14653 | not(target_arch = "arm"), | 14615 | not(target_arch = "arm"), |
| ... | @@ -14658,8 +14620,7 @@ pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t { | ... | @@ -14658,8 +14620,7 @@ pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t { |
| 14658 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14620 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14659 | )] | 14621 | )] |
| 14660 | pub unsafe fn vld1q_dup_s64(ptr: *const i64) -> int64x2_t { | 14622 | pub unsafe fn vld1q_dup_s64(ptr: *const i64) -> int64x2_t { |
| 14661 | let x = vld1q_lane_s64::<0>(ptr, transmute(i64x2::splat(0))); | 14623 | transmute(i64x2::splat(*ptr)) |
| 14662 | simd_shuffle!(x, x, [0, 0]) | ||
| 14663 | } | 14624 | } |
| 14664 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14625 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14665 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s8)"] | 14626 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s8)"] |
| ... | @@ -14682,8 +14643,7 @@ pub unsafe fn vld1q_dup_s64(ptr: *const i64) -> int64x2_t { | ... | @@ -14682,8 +14643,7 @@ pub unsafe fn vld1q_dup_s64(ptr: *const i64) -> int64x2_t { |
| 14682 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14643 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14683 | )] | 14644 | )] |
| 14684 | pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t { | 14645 | pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t { |
| 14685 | let x = vld1q_lane_s8::<0>(ptr, transmute(i8x16::splat(0))); | 14646 | transmute(i8x16::splat(*ptr)) |
| 14686 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14687 | } | 14647 | } |
| 14688 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14648 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14689 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u16)"] | 14649 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u16)"] |
| ... | @@ -14706,8 +14666,7 @@ pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t { | ... | @@ -14706,8 +14666,7 @@ pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t { |
| 14706 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14666 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14707 | )] | 14667 | )] |
| 14708 | pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t { | 14668 | pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t { |
| 14709 | let x = vld1q_lane_u16::<0>(ptr, transmute(u16x8::splat(0))); | 14669 | transmute(u16x8::splat(*ptr)) |
| 14710 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14711 | } | 14670 | } |
| 14712 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14671 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14713 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u32)"] | 14672 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u32)"] |
| ... | @@ -14730,8 +14689,7 @@ pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t { | ... | @@ -14730,8 +14689,7 @@ pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t { |
| 14730 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14689 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14731 | )] | 14690 | )] |
| 14732 | pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t { | 14691 | pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t { |
| 14733 | let x = vld1q_lane_u32::<0>(ptr, transmute(u32x4::splat(0))); | 14692 | transmute(u32x4::splat(*ptr)) |
| 14734 | simd_shuffle!(x, x, [0, 0, 0, 0]) | ||
| 14735 | } | 14693 | } |
| 14736 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14694 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14737 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u64)"] | 14695 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u64)"] |
| ... | @@ -14743,7 +14701,7 @@ pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t { | ... | @@ -14743,7 +14701,7 @@ pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t { |
| 14743 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))] | 14701 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))] |
| 14744 | #[cfg_attr( | 14702 | #[cfg_attr( |
| 14745 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 14703 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 14746 | assert_instr(ld1) | 14704 | assert_instr(ld1r) |
| 14747 | )] | 14705 | )] |
| 14748 | #[cfg_attr( | 14706 | #[cfg_attr( |
| 14749 | not(target_arch = "arm"), | 14707 | not(target_arch = "arm"), |
| ... | @@ -14754,8 +14712,7 @@ pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t { | ... | @@ -14754,8 +14712,7 @@ pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t { |
| 14754 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14712 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14755 | )] | 14713 | )] |
| 14756 | pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t { | 14714 | pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t { |
| 14757 | let x = vld1q_lane_u64::<0>(ptr, transmute(u64x2::splat(0))); | 14715 | transmute(u64x2::splat(*ptr)) |
| 14758 | simd_shuffle!(x, x, [0, 0]) | ||
| 14759 | } | 14716 | } |
| 14760 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14717 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14761 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u8)"] | 14718 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u8)"] |
| ... | @@ -14778,8 +14735,7 @@ pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t { | ... | @@ -14778,8 +14735,7 @@ pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t { |
| 14778 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 14735 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 14779 | )] | 14736 | )] |
| 14780 | pub unsafe fn vld1q_dup_u8(ptr: *const u8) -> uint8x16_t { | 14737 | pub unsafe fn vld1q_dup_u8(ptr: *const u8) -> uint8x16_t { |
| 14781 | let x = vld1q_lane_u8::<0>(ptr, transmute(u8x16::splat(0))); | 14738 | transmute(u8x16::splat(*ptr)) |
| 14782 | simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) | ||
| 14783 | } | 14739 | } |
| 14784 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] | 14740 | #[doc = "Load one single-element structure and Replicate to all lanes (of one register)."] |
| 14785 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p64)"] | 14741 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p64)"] |
| ... | @@ -27681,15 +27637,10 @@ pub fn vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { | ... | @@ -27681,15 +27637,10 @@ pub fn vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { |
| 27681 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27637 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27682 | )] | 27638 | )] |
| 27683 | pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { | 27639 | pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { |
| 27684 | unsafe extern "unadjusted" { | 27640 | unsafe { |
| 27685 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8i8")] | 27641 | let mask: int8x8_t = simd_ge(a, b); |
| 27686 | #[cfg_attr( | 27642 | simd_select(mask, a, b) |
| 27687 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27688 | link_name = "llvm.aarch64.neon.smax.v8i8" | ||
| 27689 | )] | ||
| 27690 | fn _vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t; | ||
| 27691 | } | 27643 | } |
| 27692 | unsafe { _vmax_s8(a, b) } | ||
| 27693 | } | 27644 | } |
| 27694 | #[doc = "Maximum (vector)"] | 27645 | #[doc = "Maximum (vector)"] |
| 27695 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s8)"] | 27646 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s8)"] |
| ... | @@ -27710,15 +27661,10 @@ pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { | ... | @@ -27710,15 +27661,10 @@ pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { |
| 27710 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27661 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27711 | )] | 27662 | )] |
| 27712 | pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { | 27663 | pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { |
| 27713 | unsafe extern "unadjusted" { | 27664 | unsafe { |
| 27714 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v16i8")] | 27665 | let mask: int8x16_t = simd_ge(a, b); |
| 27715 | #[cfg_attr( | 27666 | simd_select(mask, a, b) |
| 27716 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27717 | link_name = "llvm.aarch64.neon.smax.v16i8" | ||
| 27718 | )] | ||
| 27719 | fn _vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t; | ||
| 27720 | } | 27667 | } |
| 27721 | unsafe { _vmaxq_s8(a, b) } | ||
| 27722 | } | 27668 | } |
| 27723 | #[doc = "Maximum (vector)"] | 27669 | #[doc = "Maximum (vector)"] |
| 27724 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s16)"] | 27670 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s16)"] |
| ... | @@ -27739,15 +27685,10 @@ pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { | ... | @@ -27739,15 +27685,10 @@ pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { |
| 27739 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27685 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27740 | )] | 27686 | )] |
| 27741 | pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { | 27687 | pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { |
| 27742 | unsafe extern "unadjusted" { | 27688 | unsafe { |
| 27743 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4i16")] | 27689 | let mask: int16x4_t = simd_ge(a, b); |
| 27744 | #[cfg_attr( | 27690 | simd_select(mask, a, b) |
| 27745 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27746 | link_name = "llvm.aarch64.neon.smax.v4i16" | ||
| 27747 | )] | ||
| 27748 | fn _vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t; | ||
| 27749 | } | 27691 | } |
| 27750 | unsafe { _vmax_s16(a, b) } | ||
| 27751 | } | 27692 | } |
| 27752 | #[doc = "Maximum (vector)"] | 27693 | #[doc = "Maximum (vector)"] |
| 27753 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s16)"] | 27694 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s16)"] |
| ... | @@ -27768,15 +27709,10 @@ pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { | ... | @@ -27768,15 +27709,10 @@ pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { |
| 27768 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27709 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27769 | )] | 27710 | )] |
| 27770 | pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { | 27711 | pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { |
| 27771 | unsafe extern "unadjusted" { | 27712 | unsafe { |
| 27772 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8i16")] | 27713 | let mask: int16x8_t = simd_ge(a, b); |
| 27773 | #[cfg_attr( | 27714 | simd_select(mask, a, b) |
| 27774 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27775 | link_name = "llvm.aarch64.neon.smax.v8i16" | ||
| 27776 | )] | ||
| 27777 | fn _vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t; | ||
| 27778 | } | 27715 | } |
| 27779 | unsafe { _vmaxq_s16(a, b) } | ||
| 27780 | } | 27716 | } |
| 27781 | #[doc = "Maximum (vector)"] | 27717 | #[doc = "Maximum (vector)"] |
| 27782 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s32)"] | 27718 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s32)"] |
| ... | @@ -27797,15 +27733,10 @@ pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { | ... | @@ -27797,15 +27733,10 @@ pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { |
| 27797 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27733 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27798 | )] | 27734 | )] |
| 27799 | pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { | 27735 | pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { |
| 27800 | unsafe extern "unadjusted" { | 27736 | unsafe { |
| 27801 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v2i32")] | 27737 | let mask: int32x2_t = simd_ge(a, b); |
| 27802 | #[cfg_attr( | 27738 | simd_select(mask, a, b) |
| 27803 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27804 | link_name = "llvm.aarch64.neon.smax.v2i32" | ||
| 27805 | )] | ||
| 27806 | fn _vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t; | ||
| 27807 | } | 27739 | } |
| 27808 | unsafe { _vmax_s32(a, b) } | ||
| 27809 | } | 27740 | } |
| 27810 | #[doc = "Maximum (vector)"] | 27741 | #[doc = "Maximum (vector)"] |
| 27811 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s32)"] | 27742 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s32)"] |
| ... | @@ -27826,15 +27757,10 @@ pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { | ... | @@ -27826,15 +27757,10 @@ pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { |
| 27826 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27757 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27827 | )] | 27758 | )] |
| 27828 | pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { | 27759 | pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { |
| 27829 | unsafe extern "unadjusted" { | 27760 | unsafe { |
| 27830 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4i32")] | 27761 | let mask: int32x4_t = simd_ge(a, b); |
| 27831 | #[cfg_attr( | 27762 | simd_select(mask, a, b) |
| 27832 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27833 | link_name = "llvm.aarch64.neon.smax.v4i32" | ||
| 27834 | )] | ||
| 27835 | fn _vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t; | ||
| 27836 | } | 27763 | } |
| 27837 | unsafe { _vmaxq_s32(a, b) } | ||
| 27838 | } | 27764 | } |
| 27839 | #[doc = "Maximum (vector)"] | 27765 | #[doc = "Maximum (vector)"] |
| 27840 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u8)"] | 27766 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u8)"] |
| ... | @@ -27855,15 +27781,10 @@ pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { | ... | @@ -27855,15 +27781,10 @@ pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { |
| 27855 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27781 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27856 | )] | 27782 | )] |
| 27857 | pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { | 27783 | pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { |
| 27858 | unsafe extern "unadjusted" { | 27784 | unsafe { |
| 27859 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v8i8")] | 27785 | let mask: uint8x8_t = simd_ge(a, b); |
| 27860 | #[cfg_attr( | 27786 | simd_select(mask, a, b) |
| 27861 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27862 | link_name = "llvm.aarch64.neon.umax.v8i8" | ||
| 27863 | )] | ||
| 27864 | fn _vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t; | ||
| 27865 | } | 27787 | } |
| 27866 | unsafe { _vmax_u8(a, b) } | ||
| 27867 | } | 27788 | } |
| 27868 | #[doc = "Maximum (vector)"] | 27789 | #[doc = "Maximum (vector)"] |
| 27869 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u8)"] | 27790 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u8)"] |
| ... | @@ -27884,15 +27805,10 @@ pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { | ... | @@ -27884,15 +27805,10 @@ pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { |
| 27884 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27805 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27885 | )] | 27806 | )] |
| 27886 | pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { | 27807 | pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { |
| 27887 | unsafe extern "unadjusted" { | 27808 | unsafe { |
| 27888 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v16i8")] | 27809 | let mask: uint8x16_t = simd_ge(a, b); |
| 27889 | #[cfg_attr( | 27810 | simd_select(mask, a, b) |
| 27890 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27891 | link_name = "llvm.aarch64.neon.umax.v16i8" | ||
| 27892 | )] | ||
| 27893 | fn _vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t; | ||
| 27894 | } | 27811 | } |
| 27895 | unsafe { _vmaxq_u8(a, b) } | ||
| 27896 | } | 27812 | } |
| 27897 | #[doc = "Maximum (vector)"] | 27813 | #[doc = "Maximum (vector)"] |
| 27898 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u16)"] | 27814 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u16)"] |
| ... | @@ -27913,15 +27829,10 @@ pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { | ... | @@ -27913,15 +27829,10 @@ pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { |
| 27913 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27829 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27914 | )] | 27830 | )] |
| 27915 | pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { | 27831 | pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { |
| 27916 | unsafe extern "unadjusted" { | 27832 | unsafe { |
| 27917 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v4i16")] | 27833 | let mask: uint16x4_t = simd_ge(a, b); |
| 27918 | #[cfg_attr( | 27834 | simd_select(mask, a, b) |
| 27919 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27920 | link_name = "llvm.aarch64.neon.umax.v4i16" | ||
| 27921 | )] | ||
| 27922 | fn _vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t; | ||
| 27923 | } | 27835 | } |
| 27924 | unsafe { _vmax_u16(a, b) } | ||
| 27925 | } | 27836 | } |
| 27926 | #[doc = "Maximum (vector)"] | 27837 | #[doc = "Maximum (vector)"] |
| 27927 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u16)"] | 27838 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u16)"] |
| ... | @@ -27942,15 +27853,10 @@ pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { | ... | @@ -27942,15 +27853,10 @@ pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { |
| 27942 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27853 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27943 | )] | 27854 | )] |
| 27944 | pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { | 27855 | pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { |
| 27945 | unsafe extern "unadjusted" { | 27856 | unsafe { |
| 27946 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v8i16")] | 27857 | let mask: uint16x8_t = simd_ge(a, b); |
| 27947 | #[cfg_attr( | 27858 | simd_select(mask, a, b) |
| 27948 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27949 | link_name = "llvm.aarch64.neon.umax.v8i16" | ||
| 27950 | )] | ||
| 27951 | fn _vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t; | ||
| 27952 | } | 27859 | } |
| 27953 | unsafe { _vmaxq_u16(a, b) } | ||
| 27954 | } | 27860 | } |
| 27955 | #[doc = "Maximum (vector)"] | 27861 | #[doc = "Maximum (vector)"] |
| 27956 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u32)"] | 27862 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u32)"] |
| ... | @@ -27971,15 +27877,10 @@ pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { | ... | @@ -27971,15 +27877,10 @@ pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { |
| 27971 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27877 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 27972 | )] | 27878 | )] |
| 27973 | pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { | 27879 | pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { |
| 27974 | unsafe extern "unadjusted" { | 27880 | unsafe { |
| 27975 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v2i32")] | 27881 | let mask: uint32x2_t = simd_ge(a, b); |
| 27976 | #[cfg_attr( | 27882 | simd_select(mask, a, b) |
| 27977 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 27978 | link_name = "llvm.aarch64.neon.umax.v2i32" | ||
| 27979 | )] | ||
| 27980 | fn _vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t; | ||
| 27981 | } | 27883 | } |
| 27982 | unsafe { _vmax_u32(a, b) } | ||
| 27983 | } | 27884 | } |
| 27984 | #[doc = "Maximum (vector)"] | 27885 | #[doc = "Maximum (vector)"] |
| 27985 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u32)"] | 27886 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u32)"] |
| ... | @@ -28000,15 +27901,10 @@ pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { | ... | @@ -28000,15 +27901,10 @@ pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { |
| 28000 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27901 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28001 | )] | 27902 | )] |
| 28002 | pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { | 27903 | pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { |
| 28003 | unsafe extern "unadjusted" { | 27904 | unsafe { |
| 28004 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v4i32")] | 27905 | let mask: uint32x4_t = simd_ge(a, b); |
| 28005 | #[cfg_attr( | 27906 | simd_select(mask, a, b) |
| 28006 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28007 | link_name = "llvm.aarch64.neon.umax.v4i32" | ||
| 28008 | )] | ||
| 28009 | fn _vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t; | ||
| 28010 | } | 27907 | } |
| 28011 | unsafe { _vmaxq_u32(a, b) } | ||
| 28012 | } | 27908 | } |
| 28013 | #[doc = "Floating-point Maximum Number (vector)"] | 27909 | #[doc = "Floating-point Maximum Number (vector)"] |
| 28014 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f16)"] | 27910 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f16)"] |
| ... | @@ -28022,15 +27918,7 @@ pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { | ... | @@ -28022,15 +27918,7 @@ pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { |
| 28022 | #[target_feature(enable = "neon,fp16")] | 27918 | #[target_feature(enable = "neon,fp16")] |
| 28023 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 27919 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 28024 | pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { | 27920 | pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { |
| 28025 | unsafe extern "unadjusted" { | 27921 | unsafe { simd_fmax(a, b) } |
| 28026 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v4f16")] | ||
| 28027 | #[cfg_attr( | ||
| 28028 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28029 | link_name = "llvm.aarch64.neon.fmaxnm.v4f16" | ||
| 28030 | )] | ||
| 28031 | fn _vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t; | ||
| 28032 | } | ||
| 28033 | unsafe { _vmaxnm_f16(a, b) } | ||
| 28034 | } | 27922 | } |
| 28035 | #[doc = "Floating-point Maximum Number (vector)"] | 27923 | #[doc = "Floating-point Maximum Number (vector)"] |
| 28036 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f16)"] | 27924 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f16)"] |
| ... | @@ -28044,15 +27932,7 @@ pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { | ... | @@ -28044,15 +27932,7 @@ pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { |
| 28044 | #[target_feature(enable = "neon,fp16")] | 27932 | #[target_feature(enable = "neon,fp16")] |
| 28045 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 27933 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 28046 | pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { | 27934 | pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { |
| 28047 | unsafe extern "unadjusted" { | 27935 | unsafe { simd_fmax(a, b) } |
| 28048 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v8f16")] | ||
| 28049 | #[cfg_attr( | ||
| 28050 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28051 | link_name = "llvm.aarch64.neon.fmaxnm.v8f16" | ||
| 28052 | )] | ||
| 28053 | fn _vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t; | ||
| 28054 | } | ||
| 28055 | unsafe { _vmaxnmq_f16(a, b) } | ||
| 28056 | } | 27936 | } |
| 28057 | #[doc = "Floating-point Maximum Number (vector)"] | 27937 | #[doc = "Floating-point Maximum Number (vector)"] |
| 28058 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)"] | 27938 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)"] |
| ... | @@ -28073,15 +27953,7 @@ pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { | ... | @@ -28073,15 +27953,7 @@ pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { |
| 28073 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27953 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28074 | )] | 27954 | )] |
| 28075 | pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { | 27955 | pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { |
| 28076 | unsafe extern "unadjusted" { | 27956 | unsafe { simd_fmax(a, b) } |
| 28077 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v2f32")] | ||
| 28078 | #[cfg_attr( | ||
| 28079 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28080 | link_name = "llvm.aarch64.neon.fmaxnm.v2f32" | ||
| 28081 | )] | ||
| 28082 | fn _vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t; | ||
| 28083 | } | ||
| 28084 | unsafe { _vmaxnm_f32(a, b) } | ||
| 28085 | } | 27957 | } |
| 28086 | #[doc = "Floating-point Maximum Number (vector)"] | 27958 | #[doc = "Floating-point Maximum Number (vector)"] |
| 28087 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)"] | 27959 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)"] |
| ... | @@ -28102,15 +27974,7 @@ pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { | ... | @@ -28102,15 +27974,7 @@ pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { |
| 28102 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 27974 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28103 | )] | 27975 | )] |
| 28104 | pub fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { | 27976 | pub fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { |
| 28105 | unsafe extern "unadjusted" { | 27977 | unsafe { simd_fmax(a, b) } |
| 28106 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v4f32")] | ||
| 28107 | #[cfg_attr( | ||
| 28108 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28109 | link_name = "llvm.aarch64.neon.fmaxnm.v4f32" | ||
| 28110 | )] | ||
| 28111 | fn _vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t; | ||
| 28112 | } | ||
| 28113 | unsafe { _vmaxnmq_f32(a, b) } | ||
| 28114 | } | 27978 | } |
| 28115 | #[doc = "Minimum (vector)"] | 27979 | #[doc = "Minimum (vector)"] |
| 28116 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f16)"] | 27980 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f16)"] |
| ... | @@ -28233,15 +28097,10 @@ pub fn vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { | ... | @@ -28233,15 +28097,10 @@ pub fn vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { |
| 28233 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28097 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28234 | )] | 28098 | )] |
| 28235 | pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { | 28099 | pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { |
| 28236 | unsafe extern "unadjusted" { | 28100 | unsafe { |
| 28237 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8i8")] | 28101 | let mask: int8x8_t = simd_le(a, b); |
| 28238 | #[cfg_attr( | 28102 | simd_select(mask, a, b) |
| 28239 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28240 | link_name = "llvm.aarch64.neon.smin.v8i8" | ||
| 28241 | )] | ||
| 28242 | fn _vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t; | ||
| 28243 | } | 28103 | } |
| 28244 | unsafe { _vmin_s8(a, b) } | ||
| 28245 | } | 28104 | } |
| 28246 | #[doc = "Minimum (vector)"] | 28105 | #[doc = "Minimum (vector)"] |
| 28247 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s8)"] | 28106 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s8)"] |
| ... | @@ -28262,15 +28121,10 @@ pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { | ... | @@ -28262,15 +28121,10 @@ pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t { |
| 28262 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28121 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28263 | )] | 28122 | )] |
| 28264 | pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { | 28123 | pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { |
| 28265 | unsafe extern "unadjusted" { | 28124 | unsafe { |
| 28266 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v16i8")] | 28125 | let mask: int8x16_t = simd_le(a, b); |
| 28267 | #[cfg_attr( | 28126 | simd_select(mask, a, b) |
| 28268 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28269 | link_name = "llvm.aarch64.neon.smin.v16i8" | ||
| 28270 | )] | ||
| 28271 | fn _vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t; | ||
| 28272 | } | 28127 | } |
| 28273 | unsafe { _vminq_s8(a, b) } | ||
| 28274 | } | 28128 | } |
| 28275 | #[doc = "Minimum (vector)"] | 28129 | #[doc = "Minimum (vector)"] |
| 28276 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s16)"] | 28130 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s16)"] |
| ... | @@ -28291,15 +28145,10 @@ pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { | ... | @@ -28291,15 +28145,10 @@ pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t { |
| 28291 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28145 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28292 | )] | 28146 | )] |
| 28293 | pub fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { | 28147 | pub fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { |
| 28294 | unsafe extern "unadjusted" { | 28148 | unsafe { |
| 28295 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4i16")] | 28149 | let mask: int16x4_t = simd_le(a, b); |
| 28296 | #[cfg_attr( | 28150 | simd_select(mask, a, b) |
| 28297 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28298 | link_name = "llvm.aarch64.neon.smin.v4i16" | ||
| 28299 | )] | ||
| 28300 | fn _vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t; | ||
| 28301 | } | 28151 | } |
| 28302 | unsafe { _vmin_s16(a, b) } | ||
| 28303 | } | 28152 | } |
| 28304 | #[doc = "Minimum (vector)"] | 28153 | #[doc = "Minimum (vector)"] |
| 28305 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s16)"] | 28154 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s16)"] |
| ... | @@ -28320,15 +28169,10 @@ pub fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { | ... | @@ -28320,15 +28169,10 @@ pub fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t { |
| 28320 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28169 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28321 | )] | 28170 | )] |
| 28322 | pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { | 28171 | pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { |
| 28323 | unsafe extern "unadjusted" { | 28172 | unsafe { |
| 28324 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8i16")] | 28173 | let mask: int16x8_t = simd_le(a, b); |
| 28325 | #[cfg_attr( | 28174 | simd_select(mask, a, b) |
| 28326 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28327 | link_name = "llvm.aarch64.neon.smin.v8i16" | ||
| 28328 | )] | ||
| 28329 | fn _vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t; | ||
| 28330 | } | 28175 | } |
| 28331 | unsafe { _vminq_s16(a, b) } | ||
| 28332 | } | 28176 | } |
| 28333 | #[doc = "Minimum (vector)"] | 28177 | #[doc = "Minimum (vector)"] |
| 28334 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s32)"] | 28178 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s32)"] |
| ... | @@ -28349,15 +28193,10 @@ pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { | ... | @@ -28349,15 +28193,10 @@ pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t { |
| 28349 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28193 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28350 | )] | 28194 | )] |
| 28351 | pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { | 28195 | pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { |
| 28352 | unsafe extern "unadjusted" { | 28196 | unsafe { |
| 28353 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v2i32")] | 28197 | let mask: int32x2_t = simd_le(a, b); |
| 28354 | #[cfg_attr( | 28198 | simd_select(mask, a, b) |
| 28355 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28356 | link_name = "llvm.aarch64.neon.smin.v2i32" | ||
| 28357 | )] | ||
| 28358 | fn _vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t; | ||
| 28359 | } | 28199 | } |
| 28360 | unsafe { _vmin_s32(a, b) } | ||
| 28361 | } | 28200 | } |
| 28362 | #[doc = "Minimum (vector)"] | 28201 | #[doc = "Minimum (vector)"] |
| 28363 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s32)"] | 28202 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s32)"] |
| ... | @@ -28378,15 +28217,10 @@ pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { | ... | @@ -28378,15 +28217,10 @@ pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t { |
| 28378 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28217 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28379 | )] | 28218 | )] |
| 28380 | pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { | 28219 | pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { |
| 28381 | unsafe extern "unadjusted" { | 28220 | unsafe { |
| 28382 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4i32")] | 28221 | let mask: int32x4_t = simd_le(a, b); |
| 28383 | #[cfg_attr( | 28222 | simd_select(mask, a, b) |
| 28384 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28385 | link_name = "llvm.aarch64.neon.smin.v4i32" | ||
| 28386 | )] | ||
| 28387 | fn _vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t; | ||
| 28388 | } | 28223 | } |
| 28389 | unsafe { _vminq_s32(a, b) } | ||
| 28390 | } | 28224 | } |
| 28391 | #[doc = "Minimum (vector)"] | 28225 | #[doc = "Minimum (vector)"] |
| 28392 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u8)"] | 28226 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u8)"] |
| ... | @@ -28407,15 +28241,10 @@ pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { | ... | @@ -28407,15 +28241,10 @@ pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t { |
| 28407 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28241 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28408 | )] | 28242 | )] |
| 28409 | pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { | 28243 | pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { |
| 28410 | unsafe extern "unadjusted" { | 28244 | unsafe { |
| 28411 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v8i8")] | 28245 | let mask: uint8x8_t = simd_le(a, b); |
| 28412 | #[cfg_attr( | 28246 | simd_select(mask, a, b) |
| 28413 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28414 | link_name = "llvm.aarch64.neon.umin.v8i8" | ||
| 28415 | )] | ||
| 28416 | fn _vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t; | ||
| 28417 | } | 28247 | } |
| 28418 | unsafe { _vmin_u8(a, b) } | ||
| 28419 | } | 28248 | } |
| 28420 | #[doc = "Minimum (vector)"] | 28249 | #[doc = "Minimum (vector)"] |
| 28421 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u8)"] | 28250 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u8)"] |
| ... | @@ -28436,15 +28265,10 @@ pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { | ... | @@ -28436,15 +28265,10 @@ pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t { |
| 28436 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28265 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28437 | )] | 28266 | )] |
| 28438 | pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { | 28267 | pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { |
| 28439 | unsafe extern "unadjusted" { | 28268 | unsafe { |
| 28440 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v16i8")] | 28269 | let mask: uint8x16_t = simd_le(a, b); |
| 28441 | #[cfg_attr( | 28270 | simd_select(mask, a, b) |
| 28442 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28443 | link_name = "llvm.aarch64.neon.umin.v16i8" | ||
| 28444 | )] | ||
| 28445 | fn _vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t; | ||
| 28446 | } | 28271 | } |
| 28447 | unsafe { _vminq_u8(a, b) } | ||
| 28448 | } | 28272 | } |
| 28449 | #[doc = "Minimum (vector)"] | 28273 | #[doc = "Minimum (vector)"] |
| 28450 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u16)"] | 28274 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u16)"] |
| ... | @@ -28465,15 +28289,10 @@ pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { | ... | @@ -28465,15 +28289,10 @@ pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t { |
| 28465 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28289 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28466 | )] | 28290 | )] |
| 28467 | pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { | 28291 | pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { |
| 28468 | unsafe extern "unadjusted" { | 28292 | unsafe { |
| 28469 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v4i16")] | 28293 | let mask: uint16x4_t = simd_le(a, b); |
| 28470 | #[cfg_attr( | 28294 | simd_select(mask, a, b) |
| 28471 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28472 | link_name = "llvm.aarch64.neon.umin.v4i16" | ||
| 28473 | )] | ||
| 28474 | fn _vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t; | ||
| 28475 | } | 28295 | } |
| 28476 | unsafe { _vmin_u16(a, b) } | ||
| 28477 | } | 28296 | } |
| 28478 | #[doc = "Minimum (vector)"] | 28297 | #[doc = "Minimum (vector)"] |
| 28479 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u16)"] | 28298 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u16)"] |
| ... | @@ -28494,15 +28313,10 @@ pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { | ... | @@ -28494,15 +28313,10 @@ pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t { |
| 28494 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28313 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28495 | )] | 28314 | )] |
| 28496 | pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { | 28315 | pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { |
| 28497 | unsafe extern "unadjusted" { | 28316 | unsafe { |
| 28498 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v8i16")] | 28317 | let mask: uint16x8_t = simd_le(a, b); |
| 28499 | #[cfg_attr( | 28318 | simd_select(mask, a, b) |
| 28500 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28501 | link_name = "llvm.aarch64.neon.umin.v8i16" | ||
| 28502 | )] | ||
| 28503 | fn _vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t; | ||
| 28504 | } | 28319 | } |
| 28505 | unsafe { _vminq_u16(a, b) } | ||
| 28506 | } | 28320 | } |
| 28507 | #[doc = "Minimum (vector)"] | 28321 | #[doc = "Minimum (vector)"] |
| 28508 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u32)"] | 28322 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u32)"] |
| ... | @@ -28523,15 +28337,10 @@ pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { | ... | @@ -28523,15 +28337,10 @@ pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t { |
| 28523 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28337 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28524 | )] | 28338 | )] |
| 28525 | pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { | 28339 | pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { |
| 28526 | unsafe extern "unadjusted" { | 28340 | unsafe { |
| 28527 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v2i32")] | 28341 | let mask: uint32x2_t = simd_le(a, b); |
| 28528 | #[cfg_attr( | 28342 | simd_select(mask, a, b) |
| 28529 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28530 | link_name = "llvm.aarch64.neon.umin.v2i32" | ||
| 28531 | )] | ||
| 28532 | fn _vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t; | ||
| 28533 | } | 28343 | } |
| 28534 | unsafe { _vmin_u32(a, b) } | ||
| 28535 | } | 28344 | } |
| 28536 | #[doc = "Minimum (vector)"] | 28345 | #[doc = "Minimum (vector)"] |
| 28537 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u32)"] | 28346 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u32)"] |
| ... | @@ -28552,15 +28361,10 @@ pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { | ... | @@ -28552,15 +28361,10 @@ pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { |
| 28552 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28361 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28553 | )] | 28362 | )] |
| 28554 | pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { | 28363 | pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { |
| 28555 | unsafe extern "unadjusted" { | 28364 | unsafe { |
| 28556 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v4i32")] | 28365 | let mask: uint32x4_t = simd_le(a, b); |
| 28557 | #[cfg_attr( | 28366 | simd_select(mask, a, b) |
| 28558 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28559 | link_name = "llvm.aarch64.neon.umin.v4i32" | ||
| 28560 | )] | ||
| 28561 | fn _vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t; | ||
| 28562 | } | 28367 | } |
| 28563 | unsafe { _vminq_u32(a, b) } | ||
| 28564 | } | 28368 | } |
| 28565 | #[doc = "Floating-point Minimum Number (vector)"] | 28369 | #[doc = "Floating-point Minimum Number (vector)"] |
| 28566 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f16)"] | 28370 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f16)"] |
| ... | @@ -28574,15 +28378,7 @@ pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { | ... | @@ -28574,15 +28378,7 @@ pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { |
| 28574 | #[target_feature(enable = "neon,fp16")] | 28378 | #[target_feature(enable = "neon,fp16")] |
| 28575 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 28379 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 28576 | pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { | 28380 | pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { |
| 28577 | unsafe extern "unadjusted" { | 28381 | unsafe { simd_fmin(a, b) } |
| 28578 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v4f16")] | ||
| 28579 | #[cfg_attr( | ||
| 28580 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28581 | link_name = "llvm.aarch64.neon.fminnm.v4f16" | ||
| 28582 | )] | ||
| 28583 | fn _vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t; | ||
| 28584 | } | ||
| 28585 | unsafe { _vminnm_f16(a, b) } | ||
| 28586 | } | 28382 | } |
| 28587 | #[doc = "Floating-point Minimum Number (vector)"] | 28383 | #[doc = "Floating-point Minimum Number (vector)"] |
| 28588 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f16)"] | 28384 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f16)"] |
| ... | @@ -28596,15 +28392,7 @@ pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { | ... | @@ -28596,15 +28392,7 @@ pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t { |
| 28596 | #[target_feature(enable = "neon,fp16")] | 28392 | #[target_feature(enable = "neon,fp16")] |
| 28597 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 28393 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| 28598 | pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { | 28394 | pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { |
| 28599 | unsafe extern "unadjusted" { | 28395 | unsafe { simd_fmin(a, b) } |
| 28600 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v8f16")] | ||
| 28601 | #[cfg_attr( | ||
| 28602 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28603 | link_name = "llvm.aarch64.neon.fminnm.v8f16" | ||
| 28604 | )] | ||
| 28605 | fn _vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t; | ||
| 28606 | } | ||
| 28607 | unsafe { _vminnmq_f16(a, b) } | ||
| 28608 | } | 28396 | } |
| 28609 | #[doc = "Floating-point Minimum Number (vector)"] | 28397 | #[doc = "Floating-point Minimum Number (vector)"] |
| 28610 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)"] | 28398 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)"] |
| ... | @@ -28625,15 +28413,7 @@ pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { | ... | @@ -28625,15 +28413,7 @@ pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t { |
| 28625 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28413 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28626 | )] | 28414 | )] |
| 28627 | pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { | 28415 | pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { |
| 28628 | unsafe extern "unadjusted" { | 28416 | unsafe { simd_fmin(a, b) } |
| 28629 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v2f32")] | ||
| 28630 | #[cfg_attr( | ||
| 28631 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28632 | link_name = "llvm.aarch64.neon.fminnm.v2f32" | ||
| 28633 | )] | ||
| 28634 | fn _vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t; | ||
| 28635 | } | ||
| 28636 | unsafe { _vminnm_f32(a, b) } | ||
| 28637 | } | 28417 | } |
| 28638 | #[doc = "Floating-point Minimum Number (vector)"] | 28418 | #[doc = "Floating-point Minimum Number (vector)"] |
| 28639 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)"] | 28419 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)"] |
| ... | @@ -28654,15 +28434,7 @@ pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { | ... | @@ -28654,15 +28434,7 @@ pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t { |
| 28654 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") | 28434 | unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800") |
| 28655 | )] | 28435 | )] |
| 28656 | pub fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { | 28436 | pub fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t { |
| 28657 | unsafe extern "unadjusted" { | 28437 | unsafe { simd_fmin(a, b) } |
| 28658 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v4f32")] | ||
| 28659 | #[cfg_attr( | ||
| 28660 | any(target_arch = "aarch64", target_arch = "arm64ec"), | ||
| 28661 | link_name = "llvm.aarch64.neon.fminnm.v4f32" | ||
| 28662 | )] | ||
| 28663 | fn _vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t; | ||
| 28664 | } | ||
| 28665 | unsafe { _vminnmq_f32(a, b) } | ||
| 28666 | } | 28438 | } |
| 28667 | #[doc = "Floating-point multiply-add to accumulator"] | 28439 | #[doc = "Floating-point multiply-add to accumulator"] |
| 28668 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)"] | 28440 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)"] |
| ... | @@ -39566,17 +39338,7 @@ pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t { | ... | @@ -39566,17 +39338,7 @@ pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t { |
| 39566 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v8i8")] | 39338 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v8i8")] |
| 39567 | fn _vqrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t; | 39339 | fn _vqrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t; |
| 39568 | } | 39340 | } |
| 39569 | unsafe { | 39341 | unsafe { _vqrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) } |
| 39570 | _vqrshrn_n_s16( | ||
| 39571 | a, | ||
| 39572 | const { | ||
| 39573 | int16x8_t([ | ||
| 39574 | -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, | ||
| 39575 | -N as i16, | ||
| 39576 | ]) | ||
| 39577 | }, | ||
| 39578 | ) | ||
| 39579 | } | ||
| 39580 | } | 39342 | } |
| 39581 | #[doc = "Signed saturating rounded shift right narrow"] | 39343 | #[doc = "Signed saturating rounded shift right narrow"] |
| 39582 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"] | 39344 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"] |
| ... | @@ -39592,12 +39354,7 @@ pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t { | ... | @@ -39592,12 +39354,7 @@ pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t { |
| 39592 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v4i16")] | 39354 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v4i16")] |
| 39593 | fn _vqrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t; | 39355 | fn _vqrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t; |
| 39594 | } | 39356 | } |
| 39595 | unsafe { | 39357 | unsafe { _vqrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) } |
| 39596 | _vqrshrn_n_s32( | ||
| 39597 | a, | ||
| 39598 | const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }, | ||
| 39599 | ) | ||
| 39600 | } | ||
| 39601 | } | 39358 | } |
| 39602 | #[doc = "Signed saturating rounded shift right narrow"] | 39359 | #[doc = "Signed saturating rounded shift right narrow"] |
| 39603 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"] | 39360 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"] |
| ... | @@ -39613,7 +39370,7 @@ pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t { | ... | @@ -39613,7 +39370,7 @@ pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t { |
| 39613 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v2i32")] | 39370 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v2i32")] |
| 39614 | fn _vqrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t; | 39371 | fn _vqrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t; |
| 39615 | } | 39372 | } |
| 39616 | unsafe { _vqrshrn_n_s64(a, const { int64x2_t([-N as i64, -N as i64]) }) } | 39373 | unsafe { _vqrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) } |
| 39617 | } | 39374 | } |
| 39618 | #[doc = "Signed saturating rounded shift right narrow"] | 39375 | #[doc = "Signed saturating rounded shift right narrow"] |
| 39619 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"] | 39376 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"] |
| ... | @@ -39806,17 +39563,7 @@ pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t { | ... | @@ -39806,17 +39563,7 @@ pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t { |
| 39806 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v8i8")] | 39563 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v8i8")] |
| 39807 | fn _vqrshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t; | 39564 | fn _vqrshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t; |
| 39808 | } | 39565 | } |
| 39809 | unsafe { | 39566 | unsafe { _vqrshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) } |
| 39810 | _vqrshrun_n_s16( | ||
| 39811 | a, | ||
| 39812 | const { | ||
| 39813 | int16x8_t([ | ||
| 39814 | -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, | ||
| 39815 | -N as i16, | ||
| 39816 | ]) | ||
| 39817 | }, | ||
| 39818 | ) | ||
| 39819 | } | ||
| 39820 | } | 39567 | } |
| 39821 | #[doc = "Signed saturating rounded shift right unsigned narrow"] | 39568 | #[doc = "Signed saturating rounded shift right unsigned narrow"] |
| 39822 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"] | 39569 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"] |
| ... | @@ -39832,12 +39579,7 @@ pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t { | ... | @@ -39832,12 +39579,7 @@ pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t { |
| 39832 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v4i16")] | 39579 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v4i16")] |
| 39833 | fn _vqrshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t; | 39580 | fn _vqrshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t; |
| 39834 | } | 39581 | } |
| 39835 | unsafe { | 39582 | unsafe { _vqrshrun_n_s32(a, const { int32x4_t([-N; 4]) }) } |
| 39836 | _vqrshrun_n_s32( | ||
| 39837 | a, | ||
| 39838 | const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }, | ||
| 39839 | ) | ||
| 39840 | } | ||
| 39841 | } | 39583 | } |
| 39842 | #[doc = "Signed saturating rounded shift right unsigned narrow"] | 39584 | #[doc = "Signed saturating rounded shift right unsigned narrow"] |
| 39843 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"] | 39585 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"] |
| ... | @@ -39853,7 +39595,7 @@ pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t { | ... | @@ -39853,7 +39595,7 @@ pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t { |
| 39853 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v2i32")] | 39595 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v2i32")] |
| 39854 | fn _vqrshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t; | 39596 | fn _vqrshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t; |
| 39855 | } | 39597 | } |
| 39856 | unsafe { _vqrshrun_n_s64(a, const { int64x2_t([-N as i64, -N as i64]) }) } | 39598 | unsafe { _vqrshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) } |
| 39857 | } | 39599 | } |
| 39858 | #[doc = "Signed saturating rounded shift right unsigned narrow"] | 39600 | #[doc = "Signed saturating rounded shift right unsigned narrow"] |
| 39859 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"] | 39601 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"] |
| ... | @@ -41038,17 +40780,7 @@ pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t { | ... | @@ -41038,17 +40780,7 @@ pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t { |
| 41038 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v8i8")] | 40780 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v8i8")] |
| 41039 | fn _vqshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t; | 40781 | fn _vqshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t; |
| 41040 | } | 40782 | } |
| 41041 | unsafe { | 40783 | unsafe { _vqshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) } |
| 41042 | _vqshrn_n_s16( | ||
| 41043 | a, | ||
| 41044 | const { | ||
| 41045 | int16x8_t([ | ||
| 41046 | -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, | ||
| 41047 | -N as i16, | ||
| 41048 | ]) | ||
| 41049 | }, | ||
| 41050 | ) | ||
| 41051 | } | ||
| 41052 | } | 40784 | } |
| 41053 | #[doc = "Signed saturating shift right narrow"] | 40785 | #[doc = "Signed saturating shift right narrow"] |
| 41054 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"] | 40786 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"] |
| ... | @@ -41064,12 +40796,7 @@ pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t { | ... | @@ -41064,12 +40796,7 @@ pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t { |
| 41064 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v4i16")] | 40796 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v4i16")] |
| 41065 | fn _vqshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t; | 40797 | fn _vqshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t; |
| 41066 | } | 40798 | } |
| 41067 | unsafe { | 40799 | unsafe { _vqshrn_n_s32(a, const { int32x4_t([-N; 4]) }) } |
| 41068 | _vqshrn_n_s32( | ||
| 41069 | a, | ||
| 41070 | const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }, | ||
| 41071 | ) | ||
| 41072 | } | ||
| 41073 | } | 40800 | } |
| 41074 | #[doc = "Signed saturating shift right narrow"] | 40801 | #[doc = "Signed saturating shift right narrow"] |
| 41075 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"] | 40802 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"] |
| ... | @@ -41085,7 +40812,7 @@ pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t { | ... | @@ -41085,7 +40812,7 @@ pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t { |
| 41085 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v2i32")] | 40812 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v2i32")] |
| 41086 | fn _vqshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t; | 40813 | fn _vqshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t; |
| 41087 | } | 40814 | } |
| 41088 | unsafe { _vqshrn_n_s64(a, const { int64x2_t([-N as i64, -N as i64]) }) } | 40815 | unsafe { _vqshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) } |
| 41089 | } | 40816 | } |
| 41090 | #[doc = "Signed saturating shift right narrow"] | 40817 | #[doc = "Signed saturating shift right narrow"] |
| 41091 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"] | 40818 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"] |
| ... | @@ -41278,17 +41005,7 @@ pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t { | ... | @@ -41278,17 +41005,7 @@ pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t { |
| 41278 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v8i8")] | 41005 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v8i8")] |
| 41279 | fn _vqshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t; | 41006 | fn _vqshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t; |
| 41280 | } | 41007 | } |
| 41281 | unsafe { | 41008 | unsafe { _vqshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) } |
| 41282 | _vqshrun_n_s16( | ||
| 41283 | a, | ||
| 41284 | const { | ||
| 41285 | int16x8_t([ | ||
| 41286 | -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, | ||
| 41287 | -N as i16, | ||
| 41288 | ]) | ||
| 41289 | }, | ||
| 41290 | ) | ||
| 41291 | } | ||
| 41292 | } | 41009 | } |
| 41293 | #[doc = "Signed saturating shift right unsigned narrow"] | 41010 | #[doc = "Signed saturating shift right unsigned narrow"] |
| 41294 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"] | 41011 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"] |
| ... | @@ -41304,12 +41021,7 @@ pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t { | ... | @@ -41304,12 +41021,7 @@ pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t { |
| 41304 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v4i16")] | 41021 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v4i16")] |
| 41305 | fn _vqshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t; | 41022 | fn _vqshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t; |
| 41306 | } | 41023 | } |
| 41307 | unsafe { | 41024 | unsafe { _vqshrun_n_s32(a, const { int32x4_t([-N; 4]) }) } |
| 41308 | _vqshrun_n_s32( | ||
| 41309 | a, | ||
| 41310 | const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }, | ||
| 41311 | ) | ||
| 41312 | } | ||
| 41313 | } | 41025 | } |
| 41314 | #[doc = "Signed saturating shift right unsigned narrow"] | 41026 | #[doc = "Signed saturating shift right unsigned narrow"] |
| 41315 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"] | 41027 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"] |
| ... | @@ -41325,7 +41037,7 @@ pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t { | ... | @@ -41325,7 +41037,7 @@ pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t { |
| 41325 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v2i32")] | 41037 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v2i32")] |
| 41326 | fn _vqshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t; | 41038 | fn _vqshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t; |
| 41327 | } | 41039 | } |
| 41328 | unsafe { _vqshrun_n_s64(a, const { int64x2_t([-N as i64, -N as i64]) }) } | 41040 | unsafe { _vqshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) } |
| 41329 | } | 41041 | } |
| 41330 | #[doc = "Signed saturating shift right unsigned narrow"] | 41042 | #[doc = "Signed saturating shift right unsigned narrow"] |
| 41331 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"] | 41043 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"] |
| ... | @@ -59483,17 +59195,7 @@ pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t { | ... | @@ -59483,17 +59195,7 @@ pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t { |
| 59483 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v8i8")] | 59195 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v8i8")] |
| 59484 | fn _vrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t; | 59196 | fn _vrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t; |
| 59485 | } | 59197 | } |
| 59486 | unsafe { | 59198 | unsafe { _vrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) } |
| 59487 | _vrshrn_n_s16( | ||
| 59488 | a, | ||
| 59489 | const { | ||
| 59490 | int16x8_t([ | ||
| 59491 | -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, | ||
| 59492 | -N as i16, | ||
| 59493 | ]) | ||
| 59494 | }, | ||
| 59495 | ) | ||
| 59496 | } | ||
| 59497 | } | 59199 | } |
| 59498 | #[doc = "Rounding shift right narrow"] | 59200 | #[doc = "Rounding shift right narrow"] |
| 59499 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"] | 59201 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"] |
| ... | @@ -59509,12 +59211,7 @@ pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t { | ... | @@ -59509,12 +59211,7 @@ pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t { |
| 59509 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v4i16")] | 59211 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v4i16")] |
| 59510 | fn _vrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t; | 59212 | fn _vrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t; |
| 59511 | } | 59213 | } |
| 59512 | unsafe { | 59214 | unsafe { _vrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) } |
| 59513 | _vrshrn_n_s32( | ||
| 59514 | a, | ||
| 59515 | const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }, | ||
| 59516 | ) | ||
| 59517 | } | ||
| 59518 | } | 59215 | } |
| 59519 | #[doc = "Rounding shift right narrow"] | 59216 | #[doc = "Rounding shift right narrow"] |
| 59520 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"] | 59217 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"] |
| ... | @@ -59530,7 +59227,7 @@ pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t { | ... | @@ -59530,7 +59227,7 @@ pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t { |
| 59530 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v2i32")] | 59227 | #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v2i32")] |
| 59531 | fn _vrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t; | 59228 | fn _vrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t; |
| 59532 | } | 59229 | } |
| 59533 | unsafe { _vrshrn_n_s64(a, const { int64x2_t([-N as i64, -N as i64]) }) } | 59230 | unsafe { _vrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) } |
| 59534 | } | 59231 | } |
| 59535 | #[doc = "Rounding shift right narrow"] | 59232 | #[doc = "Rounding shift right narrow"] |
| 59536 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"] | 59233 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"] |
| ... | @@ -63183,7 +62880,7 @@ pub fn vsli_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { | ... | @@ -63183,7 +62880,7 @@ pub fn vsli_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t { |
| 63183 | transmute(vshiftins_v2i32( | 62880 | transmute(vshiftins_v2i32( |
| 63184 | transmute(a), | 62881 | transmute(a), |
| 63185 | transmute(b), | 62882 | transmute(b), |
| 63186 | int32x2_t::splat(N as i32), | 62883 | int32x2_t::splat(N), |
| 63187 | )) | 62884 | )) |
| 63188 | } | 62885 | } |
| 63189 | } | 62886 | } |
| ... | @@ -63201,7 +62898,7 @@ pub fn vsliq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { | ... | @@ -63201,7 +62898,7 @@ pub fn vsliq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t { |
| 63201 | transmute(vshiftins_v4i32( | 62898 | transmute(vshiftins_v4i32( |
| 63202 | transmute(a), | 62899 | transmute(a), |
| 63203 | transmute(b), | 62900 | transmute(b), |
| 63204 | int32x4_t::splat(N as i32), | 62901 | int32x4_t::splat(N), |
| 63205 | )) | 62902 | )) |
| 63206 | } | 62903 | } |
| 63207 | } | 62904 | } |
| ... | @@ -63739,7 +63436,7 @@ pub fn vsriq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t { | ... | @@ -63739,7 +63436,7 @@ pub fn vsriq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t { |
| 63739 | #[rustc_legacy_const_generics(2)] | 63436 | #[rustc_legacy_const_generics(2)] |
| 63740 | pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t { | 63437 | pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t { |
| 63741 | static_assert!(1 <= N && N <= 32); | 63438 | static_assert!(1 <= N && N <= 32); |
| 63742 | vshiftins_v2i32(a, b, int32x2_t::splat(-N as i32)) | 63439 | vshiftins_v2i32(a, b, int32x2_t::splat(-N)) |
| 63743 | } | 63440 | } |
| 63744 | #[doc = "Shift Right and Insert (immediate)"] | 63441 | #[doc = "Shift Right and Insert (immediate)"] |
| 63745 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s32)"] | 63442 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s32)"] |
| ... | @@ -63751,7 +63448,7 @@ pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t { | ... | @@ -63751,7 +63448,7 @@ pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t { |
| 63751 | #[rustc_legacy_const_generics(2)] | 63448 | #[rustc_legacy_const_generics(2)] |
| 63752 | pub fn vsriq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t { | 63449 | pub fn vsriq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t { |
| 63753 | static_assert!(1 <= N && N <= 32); | 63450 | static_assert!(1 <= N && N <= 32); |
| 63754 | vshiftins_v4i32(a, b, int32x4_t::splat(-N as i32)) | 63451 | vshiftins_v4i32(a, b, int32x4_t::splat(-N)) |
| 63755 | } | 63452 | } |
| 63756 | #[doc = "Shift Right and Insert (immediate)"] | 63453 | #[doc = "Shift Right and Insert (immediate)"] |
| 63757 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s64)"] | 63454 | #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s64)"] |
| ... | @@ -73297,7 +72994,11 @@ pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t { | ... | @@ -73297,7 +72994,11 @@ pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t { |
| 73297 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 72994 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73298 | #[cfg_attr( | 72995 | #[cfg_attr( |
| 73299 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 72996 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73300 | assert_instr(trn) | 72997 | assert_instr(trn1) |
| 72998 | )] | ||
| 72999 | #[cfg_attr( | ||
| 73000 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73001 | assert_instr(trn2) | ||
| 73301 | )] | 73002 | )] |
| 73302 | #[target_feature(enable = "neon,fp16")] | 73003 | #[target_feature(enable = "neon,fp16")] |
| 73303 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 73004 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| ... | @@ -73315,7 +73016,11 @@ pub fn vtrn_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t { | ... | @@ -73315,7 +73016,11 @@ pub fn vtrn_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t { |
| 73315 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73016 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73316 | #[cfg_attr( | 73017 | #[cfg_attr( |
| 73317 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73018 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73318 | assert_instr(trn) | 73019 | assert_instr(trn1) |
| 73020 | )] | ||
| 73021 | #[cfg_attr( | ||
| 73022 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73023 | assert_instr(trn2) | ||
| 73319 | )] | 73024 | )] |
| 73320 | #[target_feature(enable = "neon,fp16")] | 73025 | #[target_feature(enable = "neon,fp16")] |
| 73321 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 73026 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| ... | @@ -73334,7 +73039,11 @@ pub fn vtrnq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t { | ... | @@ -73334,7 +73039,11 @@ pub fn vtrnq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t { |
| 73334 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73039 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73335 | #[cfg_attr( | 73040 | #[cfg_attr( |
| 73336 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73041 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73337 | assert_instr(zip) | 73042 | assert_instr(zip1) |
| 73043 | )] | ||
| 73044 | #[cfg_attr( | ||
| 73045 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73046 | assert_instr(zip2) | ||
| 73338 | )] | 73047 | )] |
| 73339 | #[cfg_attr( | 73048 | #[cfg_attr( |
| 73340 | not(target_arch = "arm"), | 73049 | not(target_arch = "arm"), |
| ... | @@ -73359,7 +73068,11 @@ pub fn vtrn_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t { | ... | @@ -73359,7 +73068,11 @@ pub fn vtrn_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t { |
| 73359 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73068 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73360 | #[cfg_attr( | 73069 | #[cfg_attr( |
| 73361 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73070 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73362 | assert_instr(zip) | 73071 | assert_instr(zip1) |
| 73072 | )] | ||
| 73073 | #[cfg_attr( | ||
| 73074 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73075 | assert_instr(zip2) | ||
| 73363 | )] | 73076 | )] |
| 73364 | #[cfg_attr( | 73077 | #[cfg_attr( |
| 73365 | not(target_arch = "arm"), | 73078 | not(target_arch = "arm"), |
| ... | @@ -73384,7 +73097,11 @@ pub fn vtrn_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t { | ... | @@ -73384,7 +73097,11 @@ pub fn vtrn_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t { |
| 73384 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73097 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73385 | #[cfg_attr( | 73098 | #[cfg_attr( |
| 73386 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73099 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73387 | assert_instr(zip) | 73100 | assert_instr(zip1) |
| 73101 | )] | ||
| 73102 | #[cfg_attr( | ||
| 73103 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73104 | assert_instr(zip2) | ||
| 73388 | )] | 73105 | )] |
| 73389 | #[cfg_attr( | 73106 | #[cfg_attr( |
| 73390 | not(target_arch = "arm"), | 73107 | not(target_arch = "arm"), |
| ... | @@ -73409,7 +73126,11 @@ pub fn vtrn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t { | ... | @@ -73409,7 +73126,11 @@ pub fn vtrn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t { |
| 73409 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73126 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73410 | #[cfg_attr( | 73127 | #[cfg_attr( |
| 73411 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73128 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73412 | assert_instr(trn) | 73129 | assert_instr(trn1) |
| 73130 | )] | ||
| 73131 | #[cfg_attr( | ||
| 73132 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73133 | assert_instr(trn2) | ||
| 73413 | )] | 73134 | )] |
| 73414 | #[cfg_attr( | 73135 | #[cfg_attr( |
| 73415 | not(target_arch = "arm"), | 73136 | not(target_arch = "arm"), |
| ... | @@ -73434,7 +73155,11 @@ pub fn vtrnq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t { | ... | @@ -73434,7 +73155,11 @@ pub fn vtrnq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t { |
| 73434 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73155 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73435 | #[cfg_attr( | 73156 | #[cfg_attr( |
| 73436 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73157 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73437 | assert_instr(trn) | 73158 | assert_instr(trn1) |
| 73159 | )] | ||
| 73160 | #[cfg_attr( | ||
| 73161 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73162 | assert_instr(trn2) | ||
| 73438 | )] | 73163 | )] |
| 73439 | #[cfg_attr( | 73164 | #[cfg_attr( |
| 73440 | not(target_arch = "arm"), | 73165 | not(target_arch = "arm"), |
| ... | @@ -73459,7 +73184,11 @@ pub fn vtrn_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t { | ... | @@ -73459,7 +73184,11 @@ pub fn vtrn_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t { |
| 73459 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73184 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73460 | #[cfg_attr( | 73185 | #[cfg_attr( |
| 73461 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73186 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73462 | assert_instr(trn) | 73187 | assert_instr(trn1) |
| 73188 | )] | ||
| 73189 | #[cfg_attr( | ||
| 73190 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73191 | assert_instr(trn2) | ||
| 73463 | )] | 73192 | )] |
| 73464 | #[cfg_attr( | 73193 | #[cfg_attr( |
| 73465 | not(target_arch = "arm"), | 73194 | not(target_arch = "arm"), |
| ... | @@ -73492,7 +73221,11 @@ pub fn vtrnq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t { | ... | @@ -73492,7 +73221,11 @@ pub fn vtrnq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t { |
| 73492 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73221 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73493 | #[cfg_attr( | 73222 | #[cfg_attr( |
| 73494 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73223 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73495 | assert_instr(trn) | 73224 | assert_instr(trn1) |
| 73225 | )] | ||
| 73226 | #[cfg_attr( | ||
| 73227 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73228 | assert_instr(trn2) | ||
| 73496 | )] | 73229 | )] |
| 73497 | #[cfg_attr( | 73230 | #[cfg_attr( |
| 73498 | not(target_arch = "arm"), | 73231 | not(target_arch = "arm"), |
| ... | @@ -73517,7 +73250,11 @@ pub fn vtrn_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t { | ... | @@ -73517,7 +73250,11 @@ pub fn vtrn_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t { |
| 73517 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73250 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73518 | #[cfg_attr( | 73251 | #[cfg_attr( |
| 73519 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73252 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73520 | assert_instr(trn) | 73253 | assert_instr(trn1) |
| 73254 | )] | ||
| 73255 | #[cfg_attr( | ||
| 73256 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73257 | assert_instr(trn2) | ||
| 73521 | )] | 73258 | )] |
| 73522 | #[cfg_attr( | 73259 | #[cfg_attr( |
| 73523 | not(target_arch = "arm"), | 73260 | not(target_arch = "arm"), |
| ... | @@ -73542,7 +73279,11 @@ pub fn vtrnq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t { | ... | @@ -73542,7 +73279,11 @@ pub fn vtrnq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t { |
| 73542 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73279 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73543 | #[cfg_attr( | 73280 | #[cfg_attr( |
| 73544 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73281 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73545 | assert_instr(trn) | 73282 | assert_instr(trn1) |
| 73283 | )] | ||
| 73284 | #[cfg_attr( | ||
| 73285 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73286 | assert_instr(trn2) | ||
| 73546 | )] | 73287 | )] |
| 73547 | #[cfg_attr( | 73288 | #[cfg_attr( |
| 73548 | not(target_arch = "arm"), | 73289 | not(target_arch = "arm"), |
| ... | @@ -73567,7 +73308,11 @@ pub fn vtrnq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t { | ... | @@ -73567,7 +73308,11 @@ pub fn vtrnq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t { |
| 73567 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73308 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73568 | #[cfg_attr( | 73309 | #[cfg_attr( |
| 73569 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73310 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73570 | assert_instr(trn) | 73311 | assert_instr(trn1) |
| 73312 | )] | ||
| 73313 | #[cfg_attr( | ||
| 73314 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73315 | assert_instr(trn2) | ||
| 73571 | )] | 73316 | )] |
| 73572 | #[cfg_attr( | 73317 | #[cfg_attr( |
| 73573 | not(target_arch = "arm"), | 73318 | not(target_arch = "arm"), |
| ... | @@ -73592,7 +73337,11 @@ pub fn vtrn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t { | ... | @@ -73592,7 +73337,11 @@ pub fn vtrn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t { |
| 73592 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73337 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73593 | #[cfg_attr( | 73338 | #[cfg_attr( |
| 73594 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73339 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73595 | assert_instr(trn) | 73340 | assert_instr(trn1) |
| 73341 | )] | ||
| 73342 | #[cfg_attr( | ||
| 73343 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73344 | assert_instr(trn2) | ||
| 73596 | )] | 73345 | )] |
| 73597 | #[cfg_attr( | 73346 | #[cfg_attr( |
| 73598 | not(target_arch = "arm"), | 73347 | not(target_arch = "arm"), |
| ... | @@ -73625,7 +73374,11 @@ pub fn vtrnq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t { | ... | @@ -73625,7 +73374,11 @@ pub fn vtrnq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t { |
| 73625 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73374 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73626 | #[cfg_attr( | 73375 | #[cfg_attr( |
| 73627 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73376 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73628 | assert_instr(trn) | 73377 | assert_instr(trn1) |
| 73378 | )] | ||
| 73379 | #[cfg_attr( | ||
| 73380 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73381 | assert_instr(trn2) | ||
| 73629 | )] | 73382 | )] |
| 73630 | #[cfg_attr( | 73383 | #[cfg_attr( |
| 73631 | not(target_arch = "arm"), | 73384 | not(target_arch = "arm"), |
| ... | @@ -73650,7 +73403,11 @@ pub fn vtrn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t { | ... | @@ -73650,7 +73403,11 @@ pub fn vtrn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t { |
| 73650 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73403 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73651 | #[cfg_attr( | 73404 | #[cfg_attr( |
| 73652 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73405 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73653 | assert_instr(trn) | 73406 | assert_instr(trn1) |
| 73407 | )] | ||
| 73408 | #[cfg_attr( | ||
| 73409 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73410 | assert_instr(trn2) | ||
| 73654 | )] | 73411 | )] |
| 73655 | #[cfg_attr( | 73412 | #[cfg_attr( |
| 73656 | not(target_arch = "arm"), | 73413 | not(target_arch = "arm"), |
| ... | @@ -73675,7 +73432,11 @@ pub fn vtrnq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t { | ... | @@ -73675,7 +73432,11 @@ pub fn vtrnq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t { |
| 73675 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73432 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73676 | #[cfg_attr( | 73433 | #[cfg_attr( |
| 73677 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73434 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73678 | assert_instr(trn) | 73435 | assert_instr(trn1) |
| 73436 | )] | ||
| 73437 | #[cfg_attr( | ||
| 73438 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73439 | assert_instr(trn2) | ||
| 73679 | )] | 73440 | )] |
| 73680 | #[cfg_attr( | 73441 | #[cfg_attr( |
| 73681 | not(target_arch = "arm"), | 73442 | not(target_arch = "arm"), |
| ... | @@ -73700,7 +73461,11 @@ pub fn vtrnq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t { | ... | @@ -73700,7 +73461,11 @@ pub fn vtrnq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t { |
| 73700 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73461 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73701 | #[cfg_attr( | 73462 | #[cfg_attr( |
| 73702 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73463 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73703 | assert_instr(trn) | 73464 | assert_instr(trn1) |
| 73465 | )] | ||
| 73466 | #[cfg_attr( | ||
| 73467 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73468 | assert_instr(trn2) | ||
| 73704 | )] | 73469 | )] |
| 73705 | #[cfg_attr( | 73470 | #[cfg_attr( |
| 73706 | not(target_arch = "arm"), | 73471 | not(target_arch = "arm"), |
| ... | @@ -73725,7 +73490,11 @@ pub fn vtrn_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t { | ... | @@ -73725,7 +73490,11 @@ pub fn vtrn_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t { |
| 73725 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73490 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73726 | #[cfg_attr( | 73491 | #[cfg_attr( |
| 73727 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73492 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73728 | assert_instr(trn) | 73493 | assert_instr(trn1) |
| 73494 | )] | ||
| 73495 | #[cfg_attr( | ||
| 73496 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73497 | assert_instr(trn2) | ||
| 73729 | )] | 73498 | )] |
| 73730 | #[cfg_attr( | 73499 | #[cfg_attr( |
| 73731 | not(target_arch = "arm"), | 73500 | not(target_arch = "arm"), |
| ... | @@ -73758,7 +73527,11 @@ pub fn vtrnq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t { | ... | @@ -73758,7 +73527,11 @@ pub fn vtrnq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t { |
| 73758 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73527 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73759 | #[cfg_attr( | 73528 | #[cfg_attr( |
| 73760 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73529 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73761 | assert_instr(trn) | 73530 | assert_instr(trn1) |
| 73531 | )] | ||
| 73532 | #[cfg_attr( | ||
| 73533 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73534 | assert_instr(trn2) | ||
| 73762 | )] | 73535 | )] |
| 73763 | #[cfg_attr( | 73536 | #[cfg_attr( |
| 73764 | not(target_arch = "arm"), | 73537 | not(target_arch = "arm"), |
| ... | @@ -73783,7 +73556,11 @@ pub fn vtrn_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t { | ... | @@ -73783,7 +73556,11 @@ pub fn vtrn_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t { |
| 73783 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 73556 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 73784 | #[cfg_attr( | 73557 | #[cfg_attr( |
| 73785 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 73558 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 73786 | assert_instr(trn) | 73559 | assert_instr(trn1) |
| 73560 | )] | ||
| 73561 | #[cfg_attr( | ||
| 73562 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 73563 | assert_instr(trn2) | ||
| 73787 | )] | 73564 | )] |
| 73788 | #[cfg_attr( | 73565 | #[cfg_attr( |
| 73789 | not(target_arch = "arm"), | 73566 | not(target_arch = "arm"), |
| ... | @@ -74349,7 +74126,11 @@ pub fn vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t { | ... | @@ -74349,7 +74126,11 @@ pub fn vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t { |
| 74349 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74126 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74350 | #[cfg_attr( | 74127 | #[cfg_attr( |
| 74351 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74128 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74352 | assert_instr(uzp) | 74129 | assert_instr(uzp1) |
| 74130 | )] | ||
| 74131 | #[cfg_attr( | ||
| 74132 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74133 | assert_instr(uzp2) | ||
| 74353 | )] | 74134 | )] |
| 74354 | #[target_feature(enable = "neon,fp16")] | 74135 | #[target_feature(enable = "neon,fp16")] |
| 74355 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 74136 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| ... | @@ -74367,7 +74148,11 @@ pub fn vuzp_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t { | ... | @@ -74367,7 +74148,11 @@ pub fn vuzp_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t { |
| 74367 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74148 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74368 | #[cfg_attr( | 74149 | #[cfg_attr( |
| 74369 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74150 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74370 | assert_instr(uzp) | 74151 | assert_instr(uzp1) |
| 74152 | )] | ||
| 74153 | #[cfg_attr( | ||
| 74154 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74155 | assert_instr(uzp2) | ||
| 74371 | )] | 74156 | )] |
| 74372 | #[target_feature(enable = "neon,fp16")] | 74157 | #[target_feature(enable = "neon,fp16")] |
| 74373 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 74158 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| ... | @@ -74386,7 +74171,11 @@ pub fn vuzpq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t { | ... | @@ -74386,7 +74171,11 @@ pub fn vuzpq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t { |
| 74386 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 74171 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 74387 | #[cfg_attr( | 74172 | #[cfg_attr( |
| 74388 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74173 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74389 | assert_instr(zip) | 74174 | assert_instr(zip1) |
| 74175 | )] | ||
| 74176 | #[cfg_attr( | ||
| 74177 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74178 | assert_instr(zip2) | ||
| 74390 | )] | 74179 | )] |
| 74391 | #[cfg_attr( | 74180 | #[cfg_attr( |
| 74392 | not(target_arch = "arm"), | 74181 | not(target_arch = "arm"), |
| ... | @@ -74411,7 +74200,11 @@ pub fn vuzp_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t { | ... | @@ -74411,7 +74200,11 @@ pub fn vuzp_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t { |
| 74411 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 74200 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 74412 | #[cfg_attr( | 74201 | #[cfg_attr( |
| 74413 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74202 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74414 | assert_instr(zip) | 74203 | assert_instr(zip1) |
| 74204 | )] | ||
| 74205 | #[cfg_attr( | ||
| 74206 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74207 | assert_instr(zip2) | ||
| 74415 | )] | 74208 | )] |
| 74416 | #[cfg_attr( | 74209 | #[cfg_attr( |
| 74417 | not(target_arch = "arm"), | 74210 | not(target_arch = "arm"), |
| ... | @@ -74436,7 +74229,11 @@ pub fn vuzp_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t { | ... | @@ -74436,7 +74229,11 @@ pub fn vuzp_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t { |
| 74436 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 74229 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 74437 | #[cfg_attr( | 74230 | #[cfg_attr( |
| 74438 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74231 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74439 | assert_instr(zip) | 74232 | assert_instr(zip1) |
| 74233 | )] | ||
| 74234 | #[cfg_attr( | ||
| 74235 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74236 | assert_instr(zip2) | ||
| 74440 | )] | 74237 | )] |
| 74441 | #[cfg_attr( | 74238 | #[cfg_attr( |
| 74442 | not(target_arch = "arm"), | 74239 | not(target_arch = "arm"), |
| ... | @@ -74461,7 +74258,11 @@ pub fn vuzp_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t { | ... | @@ -74461,7 +74258,11 @@ pub fn vuzp_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t { |
| 74461 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74258 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74462 | #[cfg_attr( | 74259 | #[cfg_attr( |
| 74463 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74260 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74464 | assert_instr(uzp) | 74261 | assert_instr(uzp1) |
| 74262 | )] | ||
| 74263 | #[cfg_attr( | ||
| 74264 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74265 | assert_instr(uzp2) | ||
| 74465 | )] | 74266 | )] |
| 74466 | #[cfg_attr( | 74267 | #[cfg_attr( |
| 74467 | not(target_arch = "arm"), | 74268 | not(target_arch = "arm"), |
| ... | @@ -74486,7 +74287,11 @@ pub fn vuzpq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t { | ... | @@ -74486,7 +74287,11 @@ pub fn vuzpq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t { |
| 74486 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74287 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74487 | #[cfg_attr( | 74288 | #[cfg_attr( |
| 74488 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74289 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74489 | assert_instr(uzp) | 74290 | assert_instr(uzp1) |
| 74291 | )] | ||
| 74292 | #[cfg_attr( | ||
| 74293 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74294 | assert_instr(uzp2) | ||
| 74490 | )] | 74295 | )] |
| 74491 | #[cfg_attr( | 74296 | #[cfg_attr( |
| 74492 | not(target_arch = "arm"), | 74297 | not(target_arch = "arm"), |
| ... | @@ -74511,7 +74316,11 @@ pub fn vuzp_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t { | ... | @@ -74511,7 +74316,11 @@ pub fn vuzp_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t { |
| 74511 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74316 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74512 | #[cfg_attr( | 74317 | #[cfg_attr( |
| 74513 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74318 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74514 | assert_instr(uzp) | 74319 | assert_instr(uzp1) |
| 74320 | )] | ||
| 74321 | #[cfg_attr( | ||
| 74322 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74323 | assert_instr(uzp2) | ||
| 74515 | )] | 74324 | )] |
| 74516 | #[cfg_attr( | 74325 | #[cfg_attr( |
| 74517 | not(target_arch = "arm"), | 74326 | not(target_arch = "arm"), |
| ... | @@ -74544,7 +74353,11 @@ pub fn vuzpq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t { | ... | @@ -74544,7 +74353,11 @@ pub fn vuzpq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t { |
| 74544 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74353 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74545 | #[cfg_attr( | 74354 | #[cfg_attr( |
| 74546 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74355 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74547 | assert_instr(uzp) | 74356 | assert_instr(uzp1) |
| 74357 | )] | ||
| 74358 | #[cfg_attr( | ||
| 74359 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74360 | assert_instr(uzp2) | ||
| 74548 | )] | 74361 | )] |
| 74549 | #[cfg_attr( | 74362 | #[cfg_attr( |
| 74550 | not(target_arch = "arm"), | 74363 | not(target_arch = "arm"), |
| ... | @@ -74569,7 +74382,11 @@ pub fn vuzp_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t { | ... | @@ -74569,7 +74382,11 @@ pub fn vuzp_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t { |
| 74569 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74382 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74570 | #[cfg_attr( | 74383 | #[cfg_attr( |
| 74571 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74384 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74572 | assert_instr(uzp) | 74385 | assert_instr(uzp1) |
| 74386 | )] | ||
| 74387 | #[cfg_attr( | ||
| 74388 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74389 | assert_instr(uzp2) | ||
| 74573 | )] | 74390 | )] |
| 74574 | #[cfg_attr( | 74391 | #[cfg_attr( |
| 74575 | not(target_arch = "arm"), | 74392 | not(target_arch = "arm"), |
| ... | @@ -74594,7 +74411,11 @@ pub fn vuzpq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t { | ... | @@ -74594,7 +74411,11 @@ pub fn vuzpq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t { |
| 74594 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74411 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74595 | #[cfg_attr( | 74412 | #[cfg_attr( |
| 74596 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74413 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74597 | assert_instr(uzp) | 74414 | assert_instr(uzp1) |
| 74415 | )] | ||
| 74416 | #[cfg_attr( | ||
| 74417 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74418 | assert_instr(uzp2) | ||
| 74598 | )] | 74419 | )] |
| 74599 | #[cfg_attr( | 74420 | #[cfg_attr( |
| 74600 | not(target_arch = "arm"), | 74421 | not(target_arch = "arm"), |
| ... | @@ -74619,7 +74440,11 @@ pub fn vuzpq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t { | ... | @@ -74619,7 +74440,11 @@ pub fn vuzpq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t { |
| 74619 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74440 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74620 | #[cfg_attr( | 74441 | #[cfg_attr( |
| 74621 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74442 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74622 | assert_instr(uzp) | 74443 | assert_instr(uzp1) |
| 74444 | )] | ||
| 74445 | #[cfg_attr( | ||
| 74446 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74447 | assert_instr(uzp2) | ||
| 74623 | )] | 74448 | )] |
| 74624 | #[cfg_attr( | 74449 | #[cfg_attr( |
| 74625 | not(target_arch = "arm"), | 74450 | not(target_arch = "arm"), |
| ... | @@ -74644,7 +74469,11 @@ pub fn vuzp_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t { | ... | @@ -74644,7 +74469,11 @@ pub fn vuzp_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t { |
| 74644 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74469 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74645 | #[cfg_attr( | 74470 | #[cfg_attr( |
| 74646 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74471 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74647 | assert_instr(uzp) | 74472 | assert_instr(uzp1) |
| 74473 | )] | ||
| 74474 | #[cfg_attr( | ||
| 74475 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74476 | assert_instr(uzp2) | ||
| 74648 | )] | 74477 | )] |
| 74649 | #[cfg_attr( | 74478 | #[cfg_attr( |
| 74650 | not(target_arch = "arm"), | 74479 | not(target_arch = "arm"), |
| ... | @@ -74677,7 +74506,11 @@ pub fn vuzpq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t { | ... | @@ -74677,7 +74506,11 @@ pub fn vuzpq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t { |
| 74677 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74506 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74678 | #[cfg_attr( | 74507 | #[cfg_attr( |
| 74679 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74508 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74680 | assert_instr(uzp) | 74509 | assert_instr(uzp1) |
| 74510 | )] | ||
| 74511 | #[cfg_attr( | ||
| 74512 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74513 | assert_instr(uzp2) | ||
| 74681 | )] | 74514 | )] |
| 74682 | #[cfg_attr( | 74515 | #[cfg_attr( |
| 74683 | not(target_arch = "arm"), | 74516 | not(target_arch = "arm"), |
| ... | @@ -74702,7 +74535,11 @@ pub fn vuzp_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t { | ... | @@ -74702,7 +74535,11 @@ pub fn vuzp_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t { |
| 74702 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74535 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74703 | #[cfg_attr( | 74536 | #[cfg_attr( |
| 74704 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74537 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74705 | assert_instr(uzp) | 74538 | assert_instr(uzp1) |
| 74539 | )] | ||
| 74540 | #[cfg_attr( | ||
| 74541 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74542 | assert_instr(uzp2) | ||
| 74706 | )] | 74543 | )] |
| 74707 | #[cfg_attr( | 74544 | #[cfg_attr( |
| 74708 | not(target_arch = "arm"), | 74545 | not(target_arch = "arm"), |
| ... | @@ -74727,7 +74564,11 @@ pub fn vuzpq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t { | ... | @@ -74727,7 +74564,11 @@ pub fn vuzpq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t { |
| 74727 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74564 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74728 | #[cfg_attr( | 74565 | #[cfg_attr( |
| 74729 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74566 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74730 | assert_instr(uzp) | 74567 | assert_instr(uzp1) |
| 74568 | )] | ||
| 74569 | #[cfg_attr( | ||
| 74570 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74571 | assert_instr(uzp2) | ||
| 74731 | )] | 74572 | )] |
| 74732 | #[cfg_attr( | 74573 | #[cfg_attr( |
| 74733 | not(target_arch = "arm"), | 74574 | not(target_arch = "arm"), |
| ... | @@ -74752,7 +74593,11 @@ pub fn vuzpq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t { | ... | @@ -74752,7 +74593,11 @@ pub fn vuzpq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t { |
| 74752 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74593 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74753 | #[cfg_attr( | 74594 | #[cfg_attr( |
| 74754 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74595 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74755 | assert_instr(uzp) | 74596 | assert_instr(uzp1) |
| 74597 | )] | ||
| 74598 | #[cfg_attr( | ||
| 74599 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74600 | assert_instr(uzp2) | ||
| 74756 | )] | 74601 | )] |
| 74757 | #[cfg_attr( | 74602 | #[cfg_attr( |
| 74758 | not(target_arch = "arm"), | 74603 | not(target_arch = "arm"), |
| ... | @@ -74777,7 +74622,11 @@ pub fn vuzp_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t { | ... | @@ -74777,7 +74622,11 @@ pub fn vuzp_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t { |
| 74777 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74622 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74778 | #[cfg_attr( | 74623 | #[cfg_attr( |
| 74779 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74624 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74780 | assert_instr(uzp) | 74625 | assert_instr(uzp1) |
| 74626 | )] | ||
| 74627 | #[cfg_attr( | ||
| 74628 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74629 | assert_instr(uzp2) | ||
| 74781 | )] | 74630 | )] |
| 74782 | #[cfg_attr( | 74631 | #[cfg_attr( |
| 74783 | not(target_arch = "arm"), | 74632 | not(target_arch = "arm"), |
| ... | @@ -74810,7 +74659,11 @@ pub fn vuzpq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t { | ... | @@ -74810,7 +74659,11 @@ pub fn vuzpq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t { |
| 74810 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74659 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74811 | #[cfg_attr( | 74660 | #[cfg_attr( |
| 74812 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74661 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74813 | assert_instr(uzp) | 74662 | assert_instr(uzp1) |
| 74663 | )] | ||
| 74664 | #[cfg_attr( | ||
| 74665 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74666 | assert_instr(uzp2) | ||
| 74814 | )] | 74667 | )] |
| 74815 | #[cfg_attr( | 74668 | #[cfg_attr( |
| 74816 | not(target_arch = "arm"), | 74669 | not(target_arch = "arm"), |
| ... | @@ -74835,7 +74688,11 @@ pub fn vuzp_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t { | ... | @@ -74835,7 +74688,11 @@ pub fn vuzp_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t { |
| 74835 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] | 74688 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))] |
| 74836 | #[cfg_attr( | 74689 | #[cfg_attr( |
| 74837 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74690 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74838 | assert_instr(uzp) | 74691 | assert_instr(uzp1) |
| 74692 | )] | ||
| 74693 | #[cfg_attr( | ||
| 74694 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74695 | assert_instr(uzp2) | ||
| 74839 | )] | 74696 | )] |
| 74840 | #[cfg_attr( | 74697 | #[cfg_attr( |
| 74841 | not(target_arch = "arm"), | 74698 | not(target_arch = "arm"), |
| ... | @@ -74859,7 +74716,11 @@ pub fn vuzpq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t { | ... | @@ -74859,7 +74716,11 @@ pub fn vuzpq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t { |
| 74859 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))] | 74716 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))] |
| 74860 | #[cfg_attr( | 74717 | #[cfg_attr( |
| 74861 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74718 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74862 | assert_instr(zip) | 74719 | assert_instr(zip1) |
| 74720 | )] | ||
| 74721 | #[cfg_attr( | ||
| 74722 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74723 | assert_instr(zip2) | ||
| 74863 | )] | 74724 | )] |
| 74864 | #[target_feature(enable = "neon,fp16")] | 74725 | #[target_feature(enable = "neon,fp16")] |
| 74865 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 74726 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| ... | @@ -74877,7 +74738,11 @@ pub fn vzip_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t { | ... | @@ -74877,7 +74738,11 @@ pub fn vzip_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t { |
| 74877 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))] | 74738 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))] |
| 74878 | #[cfg_attr( | 74739 | #[cfg_attr( |
| 74879 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74740 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74880 | assert_instr(zip) | 74741 | assert_instr(zip1) |
| 74742 | )] | ||
| 74743 | #[cfg_attr( | ||
| 74744 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74745 | assert_instr(zip2) | ||
| 74881 | )] | 74746 | )] |
| 74882 | #[target_feature(enable = "neon,fp16")] | 74747 | #[target_feature(enable = "neon,fp16")] |
| 74883 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] | 74748 | #[unstable(feature = "stdarch_neon_f16", issue = "136306")] |
| ... | @@ -74896,7 +74761,11 @@ pub fn vzipq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t { | ... | @@ -74896,7 +74761,11 @@ pub fn vzipq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t { |
| 74896 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 74761 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 74897 | #[cfg_attr( | 74762 | #[cfg_attr( |
| 74898 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74763 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74899 | assert_instr(zip) | 74764 | assert_instr(zip1) |
| 74765 | )] | ||
| 74766 | #[cfg_attr( | ||
| 74767 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74768 | assert_instr(zip2) | ||
| 74900 | )] | 74769 | )] |
| 74901 | #[cfg_attr( | 74770 | #[cfg_attr( |
| 74902 | not(target_arch = "arm"), | 74771 | not(target_arch = "arm"), |
| ... | @@ -74921,7 +74790,11 @@ pub fn vzip_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t { | ... | @@ -74921,7 +74790,11 @@ pub fn vzip_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t { |
| 74921 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 74790 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 74922 | #[cfg_attr( | 74791 | #[cfg_attr( |
| 74923 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74792 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74924 | assert_instr(zip) | 74793 | assert_instr(zip1) |
| 74794 | )] | ||
| 74795 | #[cfg_attr( | ||
| 74796 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74797 | assert_instr(zip2) | ||
| 74925 | )] | 74798 | )] |
| 74926 | #[cfg_attr( | 74799 | #[cfg_attr( |
| 74927 | not(target_arch = "arm"), | 74800 | not(target_arch = "arm"), |
| ... | @@ -74946,7 +74819,11 @@ pub fn vzip_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t { | ... | @@ -74946,7 +74819,11 @@ pub fn vzip_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t { |
| 74946 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] | 74819 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))] |
| 74947 | #[cfg_attr( | 74820 | #[cfg_attr( |
| 74948 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74821 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74949 | assert_instr(zip) | 74822 | assert_instr(zip1) |
| 74823 | )] | ||
| 74824 | #[cfg_attr( | ||
| 74825 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74826 | assert_instr(zip2) | ||
| 74950 | )] | 74827 | )] |
| 74951 | #[cfg_attr( | 74828 | #[cfg_attr( |
| 74952 | not(target_arch = "arm"), | 74829 | not(target_arch = "arm"), |
| ... | @@ -74971,7 +74848,11 @@ pub fn vzip_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t { | ... | @@ -74971,7 +74848,11 @@ pub fn vzip_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t { |
| 74971 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] | 74848 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] |
| 74972 | #[cfg_attr( | 74849 | #[cfg_attr( |
| 74973 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74850 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74974 | assert_instr(zip) | 74851 | assert_instr(zip1) |
| 74852 | )] | ||
| 74853 | #[cfg_attr( | ||
| 74854 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74855 | assert_instr(zip2) | ||
| 74975 | )] | 74856 | )] |
| 74976 | #[cfg_attr( | 74857 | #[cfg_attr( |
| 74977 | not(target_arch = "arm"), | 74858 | not(target_arch = "arm"), |
| ... | @@ -74996,7 +74877,11 @@ pub fn vzip_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t { | ... | @@ -74996,7 +74877,11 @@ pub fn vzip_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t { |
| 74996 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] | 74877 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] |
| 74997 | #[cfg_attr( | 74878 | #[cfg_attr( |
| 74998 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74879 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 74999 | assert_instr(zip) | 74880 | assert_instr(zip1) |
| 74881 | )] | ||
| 74882 | #[cfg_attr( | ||
| 74883 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74884 | assert_instr(zip2) | ||
| 75000 | )] | 74885 | )] |
| 75001 | #[cfg_attr( | 74886 | #[cfg_attr( |
| 75002 | not(target_arch = "arm"), | 74887 | not(target_arch = "arm"), |
| ... | @@ -75021,7 +74906,11 @@ pub fn vzip_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t { | ... | @@ -75021,7 +74906,11 @@ pub fn vzip_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t { |
| 75021 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] | 74906 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] |
| 75022 | #[cfg_attr( | 74907 | #[cfg_attr( |
| 75023 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74908 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75024 | assert_instr(zip) | 74909 | assert_instr(zip1) |
| 74910 | )] | ||
| 74911 | #[cfg_attr( | ||
| 74912 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74913 | assert_instr(zip2) | ||
| 75025 | )] | 74914 | )] |
| 75026 | #[cfg_attr( | 74915 | #[cfg_attr( |
| 75027 | not(target_arch = "arm"), | 74916 | not(target_arch = "arm"), |
| ... | @@ -75046,7 +74935,11 @@ pub fn vzip_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t { | ... | @@ -75046,7 +74935,11 @@ pub fn vzip_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t { |
| 75046 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] | 74935 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] |
| 75047 | #[cfg_attr( | 74936 | #[cfg_attr( |
| 75048 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74937 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75049 | assert_instr(zip) | 74938 | assert_instr(zip1) |
| 74939 | )] | ||
| 74940 | #[cfg_attr( | ||
| 74941 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74942 | assert_instr(zip2) | ||
| 75050 | )] | 74943 | )] |
| 75051 | #[cfg_attr( | 74944 | #[cfg_attr( |
| 75052 | not(target_arch = "arm"), | 74945 | not(target_arch = "arm"), |
| ... | @@ -75071,7 +74964,11 @@ pub fn vzip_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t { | ... | @@ -75071,7 +74964,11 @@ pub fn vzip_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t { |
| 75071 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] | 74964 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] |
| 75072 | #[cfg_attr( | 74965 | #[cfg_attr( |
| 75073 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74966 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75074 | assert_instr(zip) | 74967 | assert_instr(zip1) |
| 74968 | )] | ||
| 74969 | #[cfg_attr( | ||
| 74970 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 74971 | assert_instr(zip2) | ||
| 75075 | )] | 74972 | )] |
| 75076 | #[cfg_attr( | 74973 | #[cfg_attr( |
| 75077 | not(target_arch = "arm"), | 74974 | not(target_arch = "arm"), |
| ... | @@ -75096,7 +74993,11 @@ pub fn vzip_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t { | ... | @@ -75096,7 +74993,11 @@ pub fn vzip_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t { |
| 75096 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] | 74993 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))] |
| 75097 | #[cfg_attr( | 74994 | #[cfg_attr( |
| 75098 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 74995 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75099 | assert_instr(zip) | 74996 | assert_instr(zip1) |
| 74997 | )] | ||
| 74998 | #[cfg_attr( | ||
| 74999 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75000 | assert_instr(zip2) | ||
| 75100 | )] | 75001 | )] |
| 75101 | #[cfg_attr( | 75002 | #[cfg_attr( |
| 75102 | not(target_arch = "arm"), | 75003 | not(target_arch = "arm"), |
| ... | @@ -75121,7 +75022,11 @@ pub fn vzip_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t { | ... | @@ -75121,7 +75022,11 @@ pub fn vzip_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t { |
| 75121 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75022 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75122 | #[cfg_attr( | 75023 | #[cfg_attr( |
| 75123 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75024 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75124 | assert_instr(zip) | 75025 | assert_instr(zip1) |
| 75026 | )] | ||
| 75027 | #[cfg_attr( | ||
| 75028 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75029 | assert_instr(zip2) | ||
| 75125 | )] | 75030 | )] |
| 75126 | #[cfg_attr( | 75031 | #[cfg_attr( |
| 75127 | not(target_arch = "arm"), | 75032 | not(target_arch = "arm"), |
| ... | @@ -75146,7 +75051,11 @@ pub fn vzipq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t { | ... | @@ -75146,7 +75051,11 @@ pub fn vzipq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t { |
| 75146 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75051 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75147 | #[cfg_attr( | 75052 | #[cfg_attr( |
| 75148 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75053 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75149 | assert_instr(zip) | 75054 | assert_instr(zip1) |
| 75055 | )] | ||
| 75056 | #[cfg_attr( | ||
| 75057 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75058 | assert_instr(zip2) | ||
| 75150 | )] | 75059 | )] |
| 75151 | #[cfg_attr( | 75060 | #[cfg_attr( |
| 75152 | not(target_arch = "arm"), | 75061 | not(target_arch = "arm"), |
| ... | @@ -75179,7 +75088,11 @@ pub fn vzipq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t { | ... | @@ -75179,7 +75088,11 @@ pub fn vzipq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t { |
| 75179 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75088 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75180 | #[cfg_attr( | 75089 | #[cfg_attr( |
| 75181 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75090 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75182 | assert_instr(zip) | 75091 | assert_instr(zip1) |
| 75092 | )] | ||
| 75093 | #[cfg_attr( | ||
| 75094 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75095 | assert_instr(zip2) | ||
| 75183 | )] | 75096 | )] |
| 75184 | #[cfg_attr( | 75097 | #[cfg_attr( |
| 75185 | not(target_arch = "arm"), | 75098 | not(target_arch = "arm"), |
| ... | @@ -75204,7 +75117,11 @@ pub fn vzipq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t { | ... | @@ -75204,7 +75117,11 @@ pub fn vzipq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t { |
| 75204 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75117 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75205 | #[cfg_attr( | 75118 | #[cfg_attr( |
| 75206 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75119 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75207 | assert_instr(zip) | 75120 | assert_instr(zip1) |
| 75121 | )] | ||
| 75122 | #[cfg_attr( | ||
| 75123 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75124 | assert_instr(zip2) | ||
| 75208 | )] | 75125 | )] |
| 75209 | #[cfg_attr( | 75126 | #[cfg_attr( |
| 75210 | not(target_arch = "arm"), | 75127 | not(target_arch = "arm"), |
| ... | @@ -75229,7 +75146,11 @@ pub fn vzipq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t { | ... | @@ -75229,7 +75146,11 @@ pub fn vzipq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t { |
| 75229 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75146 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75230 | #[cfg_attr( | 75147 | #[cfg_attr( |
| 75231 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75148 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75232 | assert_instr(zip) | 75149 | assert_instr(zip1) |
| 75150 | )] | ||
| 75151 | #[cfg_attr( | ||
| 75152 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75153 | assert_instr(zip2) | ||
| 75233 | )] | 75154 | )] |
| 75234 | #[cfg_attr( | 75155 | #[cfg_attr( |
| 75235 | not(target_arch = "arm"), | 75156 | not(target_arch = "arm"), |
| ... | @@ -75262,7 +75183,11 @@ pub fn vzipq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t { | ... | @@ -75262,7 +75183,11 @@ pub fn vzipq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t { |
| 75262 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75183 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75263 | #[cfg_attr( | 75184 | #[cfg_attr( |
| 75264 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75185 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75265 | assert_instr(zip) | 75186 | assert_instr(zip1) |
| 75187 | )] | ||
| 75188 | #[cfg_attr( | ||
| 75189 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75190 | assert_instr(zip2) | ||
| 75266 | )] | 75191 | )] |
| 75267 | #[cfg_attr( | 75192 | #[cfg_attr( |
| 75268 | not(target_arch = "arm"), | 75193 | not(target_arch = "arm"), |
| ... | @@ -75287,7 +75212,11 @@ pub fn vzipq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t { | ... | @@ -75287,7 +75212,11 @@ pub fn vzipq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t { |
| 75287 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75212 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75288 | #[cfg_attr( | 75213 | #[cfg_attr( |
| 75289 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75214 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75290 | assert_instr(zip) | 75215 | assert_instr(zip1) |
| 75216 | )] | ||
| 75217 | #[cfg_attr( | ||
| 75218 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75219 | assert_instr(zip2) | ||
| 75291 | )] | 75220 | )] |
| 75292 | #[cfg_attr( | 75221 | #[cfg_attr( |
| 75293 | not(target_arch = "arm"), | 75222 | not(target_arch = "arm"), |
| ... | @@ -75312,7 +75241,11 @@ pub fn vzipq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t { | ... | @@ -75312,7 +75241,11 @@ pub fn vzipq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t { |
| 75312 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75241 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75313 | #[cfg_attr( | 75242 | #[cfg_attr( |
| 75314 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75243 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75315 | assert_instr(zip) | 75244 | assert_instr(zip1) |
| 75245 | )] | ||
| 75246 | #[cfg_attr( | ||
| 75247 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75248 | assert_instr(zip2) | ||
| 75316 | )] | 75249 | )] |
| 75317 | #[cfg_attr( | 75250 | #[cfg_attr( |
| 75318 | not(target_arch = "arm"), | 75251 | not(target_arch = "arm"), |
| ... | @@ -75345,7 +75278,11 @@ pub fn vzipq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t { | ... | @@ -75345,7 +75278,11 @@ pub fn vzipq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t { |
| 75345 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] | 75278 | #[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))] |
| 75346 | #[cfg_attr( | 75279 | #[cfg_attr( |
| 75347 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | 75280 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), |
| 75348 | assert_instr(zip) | 75281 | assert_instr(zip1) |
| 75282 | )] | ||
| 75283 | #[cfg_attr( | ||
| 75284 | all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), | ||
| 75285 | assert_instr(zip2) | ||
| 75349 | )] | 75286 | )] |
| 75350 | #[cfg_attr( | 75287 | #[cfg_attr( |
| 75351 | not(target_arch = "arm"), | 75288 | not(target_arch = "arm"), |
library/stdarch/crates/core_arch/src/core_arch_docs.md+2| ... | @@ -193,6 +193,7 @@ others at: | ... | @@ -193,6 +193,7 @@ others at: |
| 193 | * [`powerpc64`] | 193 | * [`powerpc64`] |
| 194 | * [`nvptx`] | 194 | * [`nvptx`] |
| 195 | * [`wasm32`] | 195 | * [`wasm32`] |
| 196 | * [`loongarch32`] | ||
| 196 | * [`loongarch64`] | 197 | * [`loongarch64`] |
| 197 | * [`s390x`] | 198 | * [`s390x`] |
| 198 | 199 | ||
| ... | @@ -208,6 +209,7 @@ others at: | ... | @@ -208,6 +209,7 @@ others at: |
| 208 | [`powerpc64`]: ../../core/arch/powerpc64/index.html | 209 | [`powerpc64`]: ../../core/arch/powerpc64/index.html |
| 209 | [`nvptx`]: ../../core/arch/nvptx/index.html | 210 | [`nvptx`]: ../../core/arch/nvptx/index.html |
| 210 | [`wasm32`]: ../../core/arch/wasm32/index.html | 211 | [`wasm32`]: ../../core/arch/wasm32/index.html |
| 212 | [`loongarch32`]: ../../core/arch/loongarch32/index.html | ||
| 211 | [`loongarch64`]: ../../core/arch/loongarch64/index.html | 213 | [`loongarch64`]: ../../core/arch/loongarch64/index.html |
| 212 | [`s390x`]: ../../core/arch/s390x/index.html | 214 | [`s390x`]: ../../core/arch/s390x/index.html |
| 213 | 215 |
library/stdarch/crates/core_arch/src/loongarch32/mod.rs created+47| ... | @@ -0,0 +1,47 @@ | ||
| 1 | //! `LoongArch32` intrinsics | ||
| 2 | |||
| 3 | use crate::arch::asm; | ||
| 4 | |||
| 5 | #[allow(improper_ctypes)] | ||
| 6 | unsafe extern "unadjusted" { | ||
| 7 | #[link_name = "llvm.loongarch.cacop.w"] | ||
| 8 | fn __cacop(a: i32, b: i32, c: i32); | ||
| 9 | #[link_name = "llvm.loongarch.csrrd.w"] | ||
| 10 | fn __csrrd(a: i32) -> i32; | ||
| 11 | #[link_name = "llvm.loongarch.csrwr.w"] | ||
| 12 | fn __csrwr(a: i32, b: i32) -> i32; | ||
| 13 | #[link_name = "llvm.loongarch.csrxchg.w"] | ||
| 14 | fn __csrxchg(a: i32, b: i32, c: i32) -> i32; | ||
| 15 | } | ||
| 16 | |||
| 17 | /// Generates the cache operation instruction | ||
| 18 | #[inline] | ||
| 19 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 20 | pub unsafe fn cacop<const IMM12: i32>(a: i32, b: i32) { | ||
| 21 | static_assert_simm_bits!(IMM12, 12); | ||
| 22 | __cacop(a, b, IMM12); | ||
| 23 | } | ||
| 24 | |||
| 25 | /// Reads the CSR | ||
| 26 | #[inline] | ||
| 27 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 28 | pub unsafe fn csrrd<const IMM14: i32>() -> i32 { | ||
| 29 | static_assert_uimm_bits!(IMM14, 14); | ||
| 30 | __csrrd(IMM14) | ||
| 31 | } | ||
| 32 | |||
| 33 | /// Writes the CSR | ||
| 34 | #[inline] | ||
| 35 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 36 | pub unsafe fn csrwr<const IMM14: i32>(a: i32) -> i32 { | ||
| 37 | static_assert_uimm_bits!(IMM14, 14); | ||
| 38 | __csrwr(a, IMM14) | ||
| 39 | } | ||
| 40 | |||
| 41 | /// Exchanges the CSR | ||
| 42 | #[inline] | ||
| 43 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 44 | pub unsafe fn csrxchg<const IMM14: i32>(a: i32, b: i32) -> i32 { | ||
| 45 | static_assert_uimm_bits!(IMM14, 14); | ||
| 46 | __csrxchg(a, b, IMM14) | ||
| 47 | } | ||
library/stdarch/crates/core_arch/src/loongarch64/lasx/generated.rs+1456-1456| ... | @@ -1495,3501 +1495,3501 @@ unsafe extern "unadjusted" { | ... | @@ -1495,3501 +1495,3501 @@ unsafe extern "unadjusted" { |
| 1495 | #[inline] | 1495 | #[inline] |
| 1496 | #[target_feature(enable = "lasx")] | 1496 | #[target_feature(enable = "lasx")] |
| 1497 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1497 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1498 | pub unsafe fn lasx_xvsll_b(a: v32i8, b: v32i8) -> v32i8 { | 1498 | pub fn lasx_xvsll_b(a: v32i8, b: v32i8) -> v32i8 { |
| 1499 | __lasx_xvsll_b(a, b) | 1499 | unsafe { __lasx_xvsll_b(a, b) } |
| 1500 | } | 1500 | } |
| 1501 | 1501 | ||
| 1502 | #[inline] | 1502 | #[inline] |
| 1503 | #[target_feature(enable = "lasx")] | 1503 | #[target_feature(enable = "lasx")] |
| 1504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1505 | pub unsafe fn lasx_xvsll_h(a: v16i16, b: v16i16) -> v16i16 { | 1505 | pub fn lasx_xvsll_h(a: v16i16, b: v16i16) -> v16i16 { |
| 1506 | __lasx_xvsll_h(a, b) | 1506 | unsafe { __lasx_xvsll_h(a, b) } |
| 1507 | } | 1507 | } |
| 1508 | 1508 | ||
| 1509 | #[inline] | 1509 | #[inline] |
| 1510 | #[target_feature(enable = "lasx")] | 1510 | #[target_feature(enable = "lasx")] |
| 1511 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1511 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1512 | pub unsafe fn lasx_xvsll_w(a: v8i32, b: v8i32) -> v8i32 { | 1512 | pub fn lasx_xvsll_w(a: v8i32, b: v8i32) -> v8i32 { |
| 1513 | __lasx_xvsll_w(a, b) | 1513 | unsafe { __lasx_xvsll_w(a, b) } |
| 1514 | } | 1514 | } |
| 1515 | 1515 | ||
| 1516 | #[inline] | 1516 | #[inline] |
| 1517 | #[target_feature(enable = "lasx")] | 1517 | #[target_feature(enable = "lasx")] |
| 1518 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1518 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1519 | pub unsafe fn lasx_xvsll_d(a: v4i64, b: v4i64) -> v4i64 { | 1519 | pub fn lasx_xvsll_d(a: v4i64, b: v4i64) -> v4i64 { |
| 1520 | __lasx_xvsll_d(a, b) | 1520 | unsafe { __lasx_xvsll_d(a, b) } |
| 1521 | } | 1521 | } |
| 1522 | 1522 | ||
| 1523 | #[inline] | 1523 | #[inline] |
| 1524 | #[target_feature(enable = "lasx")] | 1524 | #[target_feature(enable = "lasx")] |
| 1525 | #[rustc_legacy_const_generics(1)] | 1525 | #[rustc_legacy_const_generics(1)] |
| 1526 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1526 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1527 | pub unsafe fn lasx_xvslli_b<const IMM3: u32>(a: v32i8) -> v32i8 { | 1527 | pub fn lasx_xvslli_b<const IMM3: u32>(a: v32i8) -> v32i8 { |
| 1528 | static_assert_uimm_bits!(IMM3, 3); | 1528 | static_assert_uimm_bits!(IMM3, 3); |
| 1529 | __lasx_xvslli_b(a, IMM3) | 1529 | unsafe { __lasx_xvslli_b(a, IMM3) } |
| 1530 | } | 1530 | } |
| 1531 | 1531 | ||
| 1532 | #[inline] | 1532 | #[inline] |
| 1533 | #[target_feature(enable = "lasx")] | 1533 | #[target_feature(enable = "lasx")] |
| 1534 | #[rustc_legacy_const_generics(1)] | 1534 | #[rustc_legacy_const_generics(1)] |
| 1535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1536 | pub unsafe fn lasx_xvslli_h<const IMM4: u32>(a: v16i16) -> v16i16 { | 1536 | pub fn lasx_xvslli_h<const IMM4: u32>(a: v16i16) -> v16i16 { |
| 1537 | static_assert_uimm_bits!(IMM4, 4); | 1537 | static_assert_uimm_bits!(IMM4, 4); |
| 1538 | __lasx_xvslli_h(a, IMM4) | 1538 | unsafe { __lasx_xvslli_h(a, IMM4) } |
| 1539 | } | 1539 | } |
| 1540 | 1540 | ||
| 1541 | #[inline] | 1541 | #[inline] |
| 1542 | #[target_feature(enable = "lasx")] | 1542 | #[target_feature(enable = "lasx")] |
| 1543 | #[rustc_legacy_const_generics(1)] | 1543 | #[rustc_legacy_const_generics(1)] |
| 1544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1545 | pub unsafe fn lasx_xvslli_w<const IMM5: u32>(a: v8i32) -> v8i32 { | 1545 | pub fn lasx_xvslli_w<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 1546 | static_assert_uimm_bits!(IMM5, 5); | 1546 | static_assert_uimm_bits!(IMM5, 5); |
| 1547 | __lasx_xvslli_w(a, IMM5) | 1547 | unsafe { __lasx_xvslli_w(a, IMM5) } |
| 1548 | } | 1548 | } |
| 1549 | 1549 | ||
| 1550 | #[inline] | 1550 | #[inline] |
| 1551 | #[target_feature(enable = "lasx")] | 1551 | #[target_feature(enable = "lasx")] |
| 1552 | #[rustc_legacy_const_generics(1)] | 1552 | #[rustc_legacy_const_generics(1)] |
| 1553 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1553 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1554 | pub unsafe fn lasx_xvslli_d<const IMM6: u32>(a: v4i64) -> v4i64 { | 1554 | pub fn lasx_xvslli_d<const IMM6: u32>(a: v4i64) -> v4i64 { |
| 1555 | static_assert_uimm_bits!(IMM6, 6); | 1555 | static_assert_uimm_bits!(IMM6, 6); |
| 1556 | __lasx_xvslli_d(a, IMM6) | 1556 | unsafe { __lasx_xvslli_d(a, IMM6) } |
| 1557 | } | 1557 | } |
| 1558 | 1558 | ||
| 1559 | #[inline] | 1559 | #[inline] |
| 1560 | #[target_feature(enable = "lasx")] | 1560 | #[target_feature(enable = "lasx")] |
| 1561 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1561 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1562 | pub unsafe fn lasx_xvsra_b(a: v32i8, b: v32i8) -> v32i8 { | 1562 | pub fn lasx_xvsra_b(a: v32i8, b: v32i8) -> v32i8 { |
| 1563 | __lasx_xvsra_b(a, b) | 1563 | unsafe { __lasx_xvsra_b(a, b) } |
| 1564 | } | 1564 | } |
| 1565 | 1565 | ||
| 1566 | #[inline] | 1566 | #[inline] |
| 1567 | #[target_feature(enable = "lasx")] | 1567 | #[target_feature(enable = "lasx")] |
| 1568 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1568 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1569 | pub unsafe fn lasx_xvsra_h(a: v16i16, b: v16i16) -> v16i16 { | 1569 | pub fn lasx_xvsra_h(a: v16i16, b: v16i16) -> v16i16 { |
| 1570 | __lasx_xvsra_h(a, b) | 1570 | unsafe { __lasx_xvsra_h(a, b) } |
| 1571 | } | 1571 | } |
| 1572 | 1572 | ||
| 1573 | #[inline] | 1573 | #[inline] |
| 1574 | #[target_feature(enable = "lasx")] | 1574 | #[target_feature(enable = "lasx")] |
| 1575 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1575 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1576 | pub unsafe fn lasx_xvsra_w(a: v8i32, b: v8i32) -> v8i32 { | 1576 | pub fn lasx_xvsra_w(a: v8i32, b: v8i32) -> v8i32 { |
| 1577 | __lasx_xvsra_w(a, b) | 1577 | unsafe { __lasx_xvsra_w(a, b) } |
| 1578 | } | 1578 | } |
| 1579 | 1579 | ||
| 1580 | #[inline] | 1580 | #[inline] |
| 1581 | #[target_feature(enable = "lasx")] | 1581 | #[target_feature(enable = "lasx")] |
| 1582 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1582 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1583 | pub unsafe fn lasx_xvsra_d(a: v4i64, b: v4i64) -> v4i64 { | 1583 | pub fn lasx_xvsra_d(a: v4i64, b: v4i64) -> v4i64 { |
| 1584 | __lasx_xvsra_d(a, b) | 1584 | unsafe { __lasx_xvsra_d(a, b) } |
| 1585 | } | 1585 | } |
| 1586 | 1586 | ||
| 1587 | #[inline] | 1587 | #[inline] |
| 1588 | #[target_feature(enable = "lasx")] | 1588 | #[target_feature(enable = "lasx")] |
| 1589 | #[rustc_legacy_const_generics(1)] | 1589 | #[rustc_legacy_const_generics(1)] |
| 1590 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1590 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1591 | pub unsafe fn lasx_xvsrai_b<const IMM3: u32>(a: v32i8) -> v32i8 { | 1591 | pub fn lasx_xvsrai_b<const IMM3: u32>(a: v32i8) -> v32i8 { |
| 1592 | static_assert_uimm_bits!(IMM3, 3); | 1592 | static_assert_uimm_bits!(IMM3, 3); |
| 1593 | __lasx_xvsrai_b(a, IMM3) | 1593 | unsafe { __lasx_xvsrai_b(a, IMM3) } |
| 1594 | } | 1594 | } |
| 1595 | 1595 | ||
| 1596 | #[inline] | 1596 | #[inline] |
| 1597 | #[target_feature(enable = "lasx")] | 1597 | #[target_feature(enable = "lasx")] |
| 1598 | #[rustc_legacy_const_generics(1)] | 1598 | #[rustc_legacy_const_generics(1)] |
| 1599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1600 | pub unsafe fn lasx_xvsrai_h<const IMM4: u32>(a: v16i16) -> v16i16 { | 1600 | pub fn lasx_xvsrai_h<const IMM4: u32>(a: v16i16) -> v16i16 { |
| 1601 | static_assert_uimm_bits!(IMM4, 4); | 1601 | static_assert_uimm_bits!(IMM4, 4); |
| 1602 | __lasx_xvsrai_h(a, IMM4) | 1602 | unsafe { __lasx_xvsrai_h(a, IMM4) } |
| 1603 | } | 1603 | } |
| 1604 | 1604 | ||
| 1605 | #[inline] | 1605 | #[inline] |
| 1606 | #[target_feature(enable = "lasx")] | 1606 | #[target_feature(enable = "lasx")] |
| 1607 | #[rustc_legacy_const_generics(1)] | 1607 | #[rustc_legacy_const_generics(1)] |
| 1608 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1608 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1609 | pub unsafe fn lasx_xvsrai_w<const IMM5: u32>(a: v8i32) -> v8i32 { | 1609 | pub fn lasx_xvsrai_w<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 1610 | static_assert_uimm_bits!(IMM5, 5); | 1610 | static_assert_uimm_bits!(IMM5, 5); |
| 1611 | __lasx_xvsrai_w(a, IMM5) | 1611 | unsafe { __lasx_xvsrai_w(a, IMM5) } |
| 1612 | } | 1612 | } |
| 1613 | 1613 | ||
| 1614 | #[inline] | 1614 | #[inline] |
| 1615 | #[target_feature(enable = "lasx")] | 1615 | #[target_feature(enable = "lasx")] |
| 1616 | #[rustc_legacy_const_generics(1)] | 1616 | #[rustc_legacy_const_generics(1)] |
| 1617 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1617 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1618 | pub unsafe fn lasx_xvsrai_d<const IMM6: u32>(a: v4i64) -> v4i64 { | 1618 | pub fn lasx_xvsrai_d<const IMM6: u32>(a: v4i64) -> v4i64 { |
| 1619 | static_assert_uimm_bits!(IMM6, 6); | 1619 | static_assert_uimm_bits!(IMM6, 6); |
| 1620 | __lasx_xvsrai_d(a, IMM6) | 1620 | unsafe { __lasx_xvsrai_d(a, IMM6) } |
| 1621 | } | 1621 | } |
| 1622 | 1622 | ||
| 1623 | #[inline] | 1623 | #[inline] |
| 1624 | #[target_feature(enable = "lasx")] | 1624 | #[target_feature(enable = "lasx")] |
| 1625 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1625 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1626 | pub unsafe fn lasx_xvsrar_b(a: v32i8, b: v32i8) -> v32i8 { | 1626 | pub fn lasx_xvsrar_b(a: v32i8, b: v32i8) -> v32i8 { |
| 1627 | __lasx_xvsrar_b(a, b) | 1627 | unsafe { __lasx_xvsrar_b(a, b) } |
| 1628 | } | 1628 | } |
| 1629 | 1629 | ||
| 1630 | #[inline] | 1630 | #[inline] |
| 1631 | #[target_feature(enable = "lasx")] | 1631 | #[target_feature(enable = "lasx")] |
| 1632 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1632 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1633 | pub unsafe fn lasx_xvsrar_h(a: v16i16, b: v16i16) -> v16i16 { | 1633 | pub fn lasx_xvsrar_h(a: v16i16, b: v16i16) -> v16i16 { |
| 1634 | __lasx_xvsrar_h(a, b) | 1634 | unsafe { __lasx_xvsrar_h(a, b) } |
| 1635 | } | 1635 | } |
| 1636 | 1636 | ||
| 1637 | #[inline] | 1637 | #[inline] |
| 1638 | #[target_feature(enable = "lasx")] | 1638 | #[target_feature(enable = "lasx")] |
| 1639 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1639 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1640 | pub unsafe fn lasx_xvsrar_w(a: v8i32, b: v8i32) -> v8i32 { | 1640 | pub fn lasx_xvsrar_w(a: v8i32, b: v8i32) -> v8i32 { |
| 1641 | __lasx_xvsrar_w(a, b) | 1641 | unsafe { __lasx_xvsrar_w(a, b) } |
| 1642 | } | 1642 | } |
| 1643 | 1643 | ||
| 1644 | #[inline] | 1644 | #[inline] |
| 1645 | #[target_feature(enable = "lasx")] | 1645 | #[target_feature(enable = "lasx")] |
| 1646 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1646 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1647 | pub unsafe fn lasx_xvsrar_d(a: v4i64, b: v4i64) -> v4i64 { | 1647 | pub fn lasx_xvsrar_d(a: v4i64, b: v4i64) -> v4i64 { |
| 1648 | __lasx_xvsrar_d(a, b) | 1648 | unsafe { __lasx_xvsrar_d(a, b) } |
| 1649 | } | 1649 | } |
| 1650 | 1650 | ||
| 1651 | #[inline] | 1651 | #[inline] |
| 1652 | #[target_feature(enable = "lasx")] | 1652 | #[target_feature(enable = "lasx")] |
| 1653 | #[rustc_legacy_const_generics(1)] | 1653 | #[rustc_legacy_const_generics(1)] |
| 1654 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1654 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1655 | pub unsafe fn lasx_xvsrari_b<const IMM3: u32>(a: v32i8) -> v32i8 { | 1655 | pub fn lasx_xvsrari_b<const IMM3: u32>(a: v32i8) -> v32i8 { |
| 1656 | static_assert_uimm_bits!(IMM3, 3); | 1656 | static_assert_uimm_bits!(IMM3, 3); |
| 1657 | __lasx_xvsrari_b(a, IMM3) | 1657 | unsafe { __lasx_xvsrari_b(a, IMM3) } |
| 1658 | } | 1658 | } |
| 1659 | 1659 | ||
| 1660 | #[inline] | 1660 | #[inline] |
| 1661 | #[target_feature(enable = "lasx")] | 1661 | #[target_feature(enable = "lasx")] |
| 1662 | #[rustc_legacy_const_generics(1)] | 1662 | #[rustc_legacy_const_generics(1)] |
| 1663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1664 | pub unsafe fn lasx_xvsrari_h<const IMM4: u32>(a: v16i16) -> v16i16 { | 1664 | pub fn lasx_xvsrari_h<const IMM4: u32>(a: v16i16) -> v16i16 { |
| 1665 | static_assert_uimm_bits!(IMM4, 4); | 1665 | static_assert_uimm_bits!(IMM4, 4); |
| 1666 | __lasx_xvsrari_h(a, IMM4) | 1666 | unsafe { __lasx_xvsrari_h(a, IMM4) } |
| 1667 | } | 1667 | } |
| 1668 | 1668 | ||
| 1669 | #[inline] | 1669 | #[inline] |
| 1670 | #[target_feature(enable = "lasx")] | 1670 | #[target_feature(enable = "lasx")] |
| 1671 | #[rustc_legacy_const_generics(1)] | 1671 | #[rustc_legacy_const_generics(1)] |
| 1672 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1672 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1673 | pub unsafe fn lasx_xvsrari_w<const IMM5: u32>(a: v8i32) -> v8i32 { | 1673 | pub fn lasx_xvsrari_w<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 1674 | static_assert_uimm_bits!(IMM5, 5); | 1674 | static_assert_uimm_bits!(IMM5, 5); |
| 1675 | __lasx_xvsrari_w(a, IMM5) | 1675 | unsafe { __lasx_xvsrari_w(a, IMM5) } |
| 1676 | } | 1676 | } |
| 1677 | 1677 | ||
| 1678 | #[inline] | 1678 | #[inline] |
| 1679 | #[target_feature(enable = "lasx")] | 1679 | #[target_feature(enable = "lasx")] |
| 1680 | #[rustc_legacy_const_generics(1)] | 1680 | #[rustc_legacy_const_generics(1)] |
| 1681 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1681 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1682 | pub unsafe fn lasx_xvsrari_d<const IMM6: u32>(a: v4i64) -> v4i64 { | 1682 | pub fn lasx_xvsrari_d<const IMM6: u32>(a: v4i64) -> v4i64 { |
| 1683 | static_assert_uimm_bits!(IMM6, 6); | 1683 | static_assert_uimm_bits!(IMM6, 6); |
| 1684 | __lasx_xvsrari_d(a, IMM6) | 1684 | unsafe { __lasx_xvsrari_d(a, IMM6) } |
| 1685 | } | 1685 | } |
| 1686 | 1686 | ||
| 1687 | #[inline] | 1687 | #[inline] |
| 1688 | #[target_feature(enable = "lasx")] | 1688 | #[target_feature(enable = "lasx")] |
| 1689 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1689 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1690 | pub unsafe fn lasx_xvsrl_b(a: v32i8, b: v32i8) -> v32i8 { | 1690 | pub fn lasx_xvsrl_b(a: v32i8, b: v32i8) -> v32i8 { |
| 1691 | __lasx_xvsrl_b(a, b) | 1691 | unsafe { __lasx_xvsrl_b(a, b) } |
| 1692 | } | 1692 | } |
| 1693 | 1693 | ||
| 1694 | #[inline] | 1694 | #[inline] |
| 1695 | #[target_feature(enable = "lasx")] | 1695 | #[target_feature(enable = "lasx")] |
| 1696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1697 | pub unsafe fn lasx_xvsrl_h(a: v16i16, b: v16i16) -> v16i16 { | 1697 | pub fn lasx_xvsrl_h(a: v16i16, b: v16i16) -> v16i16 { |
| 1698 | __lasx_xvsrl_h(a, b) | 1698 | unsafe { __lasx_xvsrl_h(a, b) } |
| 1699 | } | 1699 | } |
| 1700 | 1700 | ||
| 1701 | #[inline] | 1701 | #[inline] |
| 1702 | #[target_feature(enable = "lasx")] | 1702 | #[target_feature(enable = "lasx")] |
| 1703 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1703 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1704 | pub unsafe fn lasx_xvsrl_w(a: v8i32, b: v8i32) -> v8i32 { | 1704 | pub fn lasx_xvsrl_w(a: v8i32, b: v8i32) -> v8i32 { |
| 1705 | __lasx_xvsrl_w(a, b) | 1705 | unsafe { __lasx_xvsrl_w(a, b) } |
| 1706 | } | 1706 | } |
| 1707 | 1707 | ||
| 1708 | #[inline] | 1708 | #[inline] |
| 1709 | #[target_feature(enable = "lasx")] | 1709 | #[target_feature(enable = "lasx")] |
| 1710 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1710 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1711 | pub unsafe fn lasx_xvsrl_d(a: v4i64, b: v4i64) -> v4i64 { | 1711 | pub fn lasx_xvsrl_d(a: v4i64, b: v4i64) -> v4i64 { |
| 1712 | __lasx_xvsrl_d(a, b) | 1712 | unsafe { __lasx_xvsrl_d(a, b) } |
| 1713 | } | 1713 | } |
| 1714 | 1714 | ||
| 1715 | #[inline] | 1715 | #[inline] |
| 1716 | #[target_feature(enable = "lasx")] | 1716 | #[target_feature(enable = "lasx")] |
| 1717 | #[rustc_legacy_const_generics(1)] | 1717 | #[rustc_legacy_const_generics(1)] |
| 1718 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1718 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1719 | pub unsafe fn lasx_xvsrli_b<const IMM3: u32>(a: v32i8) -> v32i8 { | 1719 | pub fn lasx_xvsrli_b<const IMM3: u32>(a: v32i8) -> v32i8 { |
| 1720 | static_assert_uimm_bits!(IMM3, 3); | 1720 | static_assert_uimm_bits!(IMM3, 3); |
| 1721 | __lasx_xvsrli_b(a, IMM3) | 1721 | unsafe { __lasx_xvsrli_b(a, IMM3) } |
| 1722 | } | 1722 | } |
| 1723 | 1723 | ||
| 1724 | #[inline] | 1724 | #[inline] |
| 1725 | #[target_feature(enable = "lasx")] | 1725 | #[target_feature(enable = "lasx")] |
| 1726 | #[rustc_legacy_const_generics(1)] | 1726 | #[rustc_legacy_const_generics(1)] |
| 1727 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1727 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1728 | pub unsafe fn lasx_xvsrli_h<const IMM4: u32>(a: v16i16) -> v16i16 { | 1728 | pub fn lasx_xvsrli_h<const IMM4: u32>(a: v16i16) -> v16i16 { |
| 1729 | static_assert_uimm_bits!(IMM4, 4); | 1729 | static_assert_uimm_bits!(IMM4, 4); |
| 1730 | __lasx_xvsrli_h(a, IMM4) | 1730 | unsafe { __lasx_xvsrli_h(a, IMM4) } |
| 1731 | } | 1731 | } |
| 1732 | 1732 | ||
| 1733 | #[inline] | 1733 | #[inline] |
| 1734 | #[target_feature(enable = "lasx")] | 1734 | #[target_feature(enable = "lasx")] |
| 1735 | #[rustc_legacy_const_generics(1)] | 1735 | #[rustc_legacy_const_generics(1)] |
| 1736 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1736 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1737 | pub unsafe fn lasx_xvsrli_w<const IMM5: u32>(a: v8i32) -> v8i32 { | 1737 | pub fn lasx_xvsrli_w<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 1738 | static_assert_uimm_bits!(IMM5, 5); | 1738 | static_assert_uimm_bits!(IMM5, 5); |
| 1739 | __lasx_xvsrli_w(a, IMM5) | 1739 | unsafe { __lasx_xvsrli_w(a, IMM5) } |
| 1740 | } | 1740 | } |
| 1741 | 1741 | ||
| 1742 | #[inline] | 1742 | #[inline] |
| 1743 | #[target_feature(enable = "lasx")] | 1743 | #[target_feature(enable = "lasx")] |
| 1744 | #[rustc_legacy_const_generics(1)] | 1744 | #[rustc_legacy_const_generics(1)] |
| 1745 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1745 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1746 | pub unsafe fn lasx_xvsrli_d<const IMM6: u32>(a: v4i64) -> v4i64 { | 1746 | pub fn lasx_xvsrli_d<const IMM6: u32>(a: v4i64) -> v4i64 { |
| 1747 | static_assert_uimm_bits!(IMM6, 6); | 1747 | static_assert_uimm_bits!(IMM6, 6); |
| 1748 | __lasx_xvsrli_d(a, IMM6) | 1748 | unsafe { __lasx_xvsrli_d(a, IMM6) } |
| 1749 | } | 1749 | } |
| 1750 | 1750 | ||
| 1751 | #[inline] | 1751 | #[inline] |
| 1752 | #[target_feature(enable = "lasx")] | 1752 | #[target_feature(enable = "lasx")] |
| 1753 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1753 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1754 | pub unsafe fn lasx_xvsrlr_b(a: v32i8, b: v32i8) -> v32i8 { | 1754 | pub fn lasx_xvsrlr_b(a: v32i8, b: v32i8) -> v32i8 { |
| 1755 | __lasx_xvsrlr_b(a, b) | 1755 | unsafe { __lasx_xvsrlr_b(a, b) } |
| 1756 | } | 1756 | } |
| 1757 | 1757 | ||
| 1758 | #[inline] | 1758 | #[inline] |
| 1759 | #[target_feature(enable = "lasx")] | 1759 | #[target_feature(enable = "lasx")] |
| 1760 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1760 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1761 | pub unsafe fn lasx_xvsrlr_h(a: v16i16, b: v16i16) -> v16i16 { | 1761 | pub fn lasx_xvsrlr_h(a: v16i16, b: v16i16) -> v16i16 { |
| 1762 | __lasx_xvsrlr_h(a, b) | 1762 | unsafe { __lasx_xvsrlr_h(a, b) } |
| 1763 | } | 1763 | } |
| 1764 | 1764 | ||
| 1765 | #[inline] | 1765 | #[inline] |
| 1766 | #[target_feature(enable = "lasx")] | 1766 | #[target_feature(enable = "lasx")] |
| 1767 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1767 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1768 | pub unsafe fn lasx_xvsrlr_w(a: v8i32, b: v8i32) -> v8i32 { | 1768 | pub fn lasx_xvsrlr_w(a: v8i32, b: v8i32) -> v8i32 { |
| 1769 | __lasx_xvsrlr_w(a, b) | 1769 | unsafe { __lasx_xvsrlr_w(a, b) } |
| 1770 | } | 1770 | } |
| 1771 | 1771 | ||
| 1772 | #[inline] | 1772 | #[inline] |
| 1773 | #[target_feature(enable = "lasx")] | 1773 | #[target_feature(enable = "lasx")] |
| 1774 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1774 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1775 | pub unsafe fn lasx_xvsrlr_d(a: v4i64, b: v4i64) -> v4i64 { | 1775 | pub fn lasx_xvsrlr_d(a: v4i64, b: v4i64) -> v4i64 { |
| 1776 | __lasx_xvsrlr_d(a, b) | 1776 | unsafe { __lasx_xvsrlr_d(a, b) } |
| 1777 | } | 1777 | } |
| 1778 | 1778 | ||
| 1779 | #[inline] | 1779 | #[inline] |
| 1780 | #[target_feature(enable = "lasx")] | 1780 | #[target_feature(enable = "lasx")] |
| 1781 | #[rustc_legacy_const_generics(1)] | 1781 | #[rustc_legacy_const_generics(1)] |
| 1782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1783 | pub unsafe fn lasx_xvsrlri_b<const IMM3: u32>(a: v32i8) -> v32i8 { | 1783 | pub fn lasx_xvsrlri_b<const IMM3: u32>(a: v32i8) -> v32i8 { |
| 1784 | static_assert_uimm_bits!(IMM3, 3); | 1784 | static_assert_uimm_bits!(IMM3, 3); |
| 1785 | __lasx_xvsrlri_b(a, IMM3) | 1785 | unsafe { __lasx_xvsrlri_b(a, IMM3) } |
| 1786 | } | 1786 | } |
| 1787 | 1787 | ||
| 1788 | #[inline] | 1788 | #[inline] |
| 1789 | #[target_feature(enable = "lasx")] | 1789 | #[target_feature(enable = "lasx")] |
| 1790 | #[rustc_legacy_const_generics(1)] | 1790 | #[rustc_legacy_const_generics(1)] |
| 1791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1792 | pub unsafe fn lasx_xvsrlri_h<const IMM4: u32>(a: v16i16) -> v16i16 { | 1792 | pub fn lasx_xvsrlri_h<const IMM4: u32>(a: v16i16) -> v16i16 { |
| 1793 | static_assert_uimm_bits!(IMM4, 4); | 1793 | static_assert_uimm_bits!(IMM4, 4); |
| 1794 | __lasx_xvsrlri_h(a, IMM4) | 1794 | unsafe { __lasx_xvsrlri_h(a, IMM4) } |
| 1795 | } | 1795 | } |
| 1796 | 1796 | ||
| 1797 | #[inline] | 1797 | #[inline] |
| 1798 | #[target_feature(enable = "lasx")] | 1798 | #[target_feature(enable = "lasx")] |
| 1799 | #[rustc_legacy_const_generics(1)] | 1799 | #[rustc_legacy_const_generics(1)] |
| 1800 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1800 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1801 | pub unsafe fn lasx_xvsrlri_w<const IMM5: u32>(a: v8i32) -> v8i32 { | 1801 | pub fn lasx_xvsrlri_w<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 1802 | static_assert_uimm_bits!(IMM5, 5); | 1802 | static_assert_uimm_bits!(IMM5, 5); |
| 1803 | __lasx_xvsrlri_w(a, IMM5) | 1803 | unsafe { __lasx_xvsrlri_w(a, IMM5) } |
| 1804 | } | 1804 | } |
| 1805 | 1805 | ||
| 1806 | #[inline] | 1806 | #[inline] |
| 1807 | #[target_feature(enable = "lasx")] | 1807 | #[target_feature(enable = "lasx")] |
| 1808 | #[rustc_legacy_const_generics(1)] | 1808 | #[rustc_legacy_const_generics(1)] |
| 1809 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1809 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1810 | pub unsafe fn lasx_xvsrlri_d<const IMM6: u32>(a: v4i64) -> v4i64 { | 1810 | pub fn lasx_xvsrlri_d<const IMM6: u32>(a: v4i64) -> v4i64 { |
| 1811 | static_assert_uimm_bits!(IMM6, 6); | 1811 | static_assert_uimm_bits!(IMM6, 6); |
| 1812 | __lasx_xvsrlri_d(a, IMM6) | 1812 | unsafe { __lasx_xvsrlri_d(a, IMM6) } |
| 1813 | } | 1813 | } |
| 1814 | 1814 | ||
| 1815 | #[inline] | 1815 | #[inline] |
| 1816 | #[target_feature(enable = "lasx")] | 1816 | #[target_feature(enable = "lasx")] |
| 1817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1818 | pub unsafe fn lasx_xvbitclr_b(a: v32u8, b: v32u8) -> v32u8 { | 1818 | pub fn lasx_xvbitclr_b(a: v32u8, b: v32u8) -> v32u8 { |
| 1819 | __lasx_xvbitclr_b(a, b) | 1819 | unsafe { __lasx_xvbitclr_b(a, b) } |
| 1820 | } | 1820 | } |
| 1821 | 1821 | ||
| 1822 | #[inline] | 1822 | #[inline] |
| 1823 | #[target_feature(enable = "lasx")] | 1823 | #[target_feature(enable = "lasx")] |
| 1824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1825 | pub unsafe fn lasx_xvbitclr_h(a: v16u16, b: v16u16) -> v16u16 { | 1825 | pub fn lasx_xvbitclr_h(a: v16u16, b: v16u16) -> v16u16 { |
| 1826 | __lasx_xvbitclr_h(a, b) | 1826 | unsafe { __lasx_xvbitclr_h(a, b) } |
| 1827 | } | 1827 | } |
| 1828 | 1828 | ||
| 1829 | #[inline] | 1829 | #[inline] |
| 1830 | #[target_feature(enable = "lasx")] | 1830 | #[target_feature(enable = "lasx")] |
| 1831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1832 | pub unsafe fn lasx_xvbitclr_w(a: v8u32, b: v8u32) -> v8u32 { | 1832 | pub fn lasx_xvbitclr_w(a: v8u32, b: v8u32) -> v8u32 { |
| 1833 | __lasx_xvbitclr_w(a, b) | 1833 | unsafe { __lasx_xvbitclr_w(a, b) } |
| 1834 | } | 1834 | } |
| 1835 | 1835 | ||
| 1836 | #[inline] | 1836 | #[inline] |
| 1837 | #[target_feature(enable = "lasx")] | 1837 | #[target_feature(enable = "lasx")] |
| 1838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1839 | pub unsafe fn lasx_xvbitclr_d(a: v4u64, b: v4u64) -> v4u64 { | 1839 | pub fn lasx_xvbitclr_d(a: v4u64, b: v4u64) -> v4u64 { |
| 1840 | __lasx_xvbitclr_d(a, b) | 1840 | unsafe { __lasx_xvbitclr_d(a, b) } |
| 1841 | } | 1841 | } |
| 1842 | 1842 | ||
| 1843 | #[inline] | 1843 | #[inline] |
| 1844 | #[target_feature(enable = "lasx")] | 1844 | #[target_feature(enable = "lasx")] |
| 1845 | #[rustc_legacy_const_generics(1)] | 1845 | #[rustc_legacy_const_generics(1)] |
| 1846 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1846 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1847 | pub unsafe fn lasx_xvbitclri_b<const IMM3: u32>(a: v32u8) -> v32u8 { | 1847 | pub fn lasx_xvbitclri_b<const IMM3: u32>(a: v32u8) -> v32u8 { |
| 1848 | static_assert_uimm_bits!(IMM3, 3); | 1848 | static_assert_uimm_bits!(IMM3, 3); |
| 1849 | __lasx_xvbitclri_b(a, IMM3) | 1849 | unsafe { __lasx_xvbitclri_b(a, IMM3) } |
| 1850 | } | 1850 | } |
| 1851 | 1851 | ||
| 1852 | #[inline] | 1852 | #[inline] |
| 1853 | #[target_feature(enable = "lasx")] | 1853 | #[target_feature(enable = "lasx")] |
| 1854 | #[rustc_legacy_const_generics(1)] | 1854 | #[rustc_legacy_const_generics(1)] |
| 1855 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1855 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1856 | pub unsafe fn lasx_xvbitclri_h<const IMM4: u32>(a: v16u16) -> v16u16 { | 1856 | pub fn lasx_xvbitclri_h<const IMM4: u32>(a: v16u16) -> v16u16 { |
| 1857 | static_assert_uimm_bits!(IMM4, 4); | 1857 | static_assert_uimm_bits!(IMM4, 4); |
| 1858 | __lasx_xvbitclri_h(a, IMM4) | 1858 | unsafe { __lasx_xvbitclri_h(a, IMM4) } |
| 1859 | } | 1859 | } |
| 1860 | 1860 | ||
| 1861 | #[inline] | 1861 | #[inline] |
| 1862 | #[target_feature(enable = "lasx")] | 1862 | #[target_feature(enable = "lasx")] |
| 1863 | #[rustc_legacy_const_generics(1)] | 1863 | #[rustc_legacy_const_generics(1)] |
| 1864 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1864 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1865 | pub unsafe fn lasx_xvbitclri_w<const IMM5: u32>(a: v8u32) -> v8u32 { | 1865 | pub fn lasx_xvbitclri_w<const IMM5: u32>(a: v8u32) -> v8u32 { |
| 1866 | static_assert_uimm_bits!(IMM5, 5); | 1866 | static_assert_uimm_bits!(IMM5, 5); |
| 1867 | __lasx_xvbitclri_w(a, IMM5) | 1867 | unsafe { __lasx_xvbitclri_w(a, IMM5) } |
| 1868 | } | 1868 | } |
| 1869 | 1869 | ||
| 1870 | #[inline] | 1870 | #[inline] |
| 1871 | #[target_feature(enable = "lasx")] | 1871 | #[target_feature(enable = "lasx")] |
| 1872 | #[rustc_legacy_const_generics(1)] | 1872 | #[rustc_legacy_const_generics(1)] |
| 1873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1874 | pub unsafe fn lasx_xvbitclri_d<const IMM6: u32>(a: v4u64) -> v4u64 { | 1874 | pub fn lasx_xvbitclri_d<const IMM6: u32>(a: v4u64) -> v4u64 { |
| 1875 | static_assert_uimm_bits!(IMM6, 6); | 1875 | static_assert_uimm_bits!(IMM6, 6); |
| 1876 | __lasx_xvbitclri_d(a, IMM6) | 1876 | unsafe { __lasx_xvbitclri_d(a, IMM6) } |
| 1877 | } | 1877 | } |
| 1878 | 1878 | ||
| 1879 | #[inline] | 1879 | #[inline] |
| 1880 | #[target_feature(enable = "lasx")] | 1880 | #[target_feature(enable = "lasx")] |
| 1881 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1881 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1882 | pub unsafe fn lasx_xvbitset_b(a: v32u8, b: v32u8) -> v32u8 { | 1882 | pub fn lasx_xvbitset_b(a: v32u8, b: v32u8) -> v32u8 { |
| 1883 | __lasx_xvbitset_b(a, b) | 1883 | unsafe { __lasx_xvbitset_b(a, b) } |
| 1884 | } | 1884 | } |
| 1885 | 1885 | ||
| 1886 | #[inline] | 1886 | #[inline] |
| 1887 | #[target_feature(enable = "lasx")] | 1887 | #[target_feature(enable = "lasx")] |
| 1888 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1888 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1889 | pub unsafe fn lasx_xvbitset_h(a: v16u16, b: v16u16) -> v16u16 { | 1889 | pub fn lasx_xvbitset_h(a: v16u16, b: v16u16) -> v16u16 { |
| 1890 | __lasx_xvbitset_h(a, b) | 1890 | unsafe { __lasx_xvbitset_h(a, b) } |
| 1891 | } | 1891 | } |
| 1892 | 1892 | ||
| 1893 | #[inline] | 1893 | #[inline] |
| 1894 | #[target_feature(enable = "lasx")] | 1894 | #[target_feature(enable = "lasx")] |
| 1895 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1895 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1896 | pub unsafe fn lasx_xvbitset_w(a: v8u32, b: v8u32) -> v8u32 { | 1896 | pub fn lasx_xvbitset_w(a: v8u32, b: v8u32) -> v8u32 { |
| 1897 | __lasx_xvbitset_w(a, b) | 1897 | unsafe { __lasx_xvbitset_w(a, b) } |
| 1898 | } | 1898 | } |
| 1899 | 1899 | ||
| 1900 | #[inline] | 1900 | #[inline] |
| 1901 | #[target_feature(enable = "lasx")] | 1901 | #[target_feature(enable = "lasx")] |
| 1902 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1902 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1903 | pub unsafe fn lasx_xvbitset_d(a: v4u64, b: v4u64) -> v4u64 { | 1903 | pub fn lasx_xvbitset_d(a: v4u64, b: v4u64) -> v4u64 { |
| 1904 | __lasx_xvbitset_d(a, b) | 1904 | unsafe { __lasx_xvbitset_d(a, b) } |
| 1905 | } | 1905 | } |
| 1906 | 1906 | ||
| 1907 | #[inline] | 1907 | #[inline] |
| 1908 | #[target_feature(enable = "lasx")] | 1908 | #[target_feature(enable = "lasx")] |
| 1909 | #[rustc_legacy_const_generics(1)] | 1909 | #[rustc_legacy_const_generics(1)] |
| 1910 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1910 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1911 | pub unsafe fn lasx_xvbitseti_b<const IMM3: u32>(a: v32u8) -> v32u8 { | 1911 | pub fn lasx_xvbitseti_b<const IMM3: u32>(a: v32u8) -> v32u8 { |
| 1912 | static_assert_uimm_bits!(IMM3, 3); | 1912 | static_assert_uimm_bits!(IMM3, 3); |
| 1913 | __lasx_xvbitseti_b(a, IMM3) | 1913 | unsafe { __lasx_xvbitseti_b(a, IMM3) } |
| 1914 | } | 1914 | } |
| 1915 | 1915 | ||
| 1916 | #[inline] | 1916 | #[inline] |
| 1917 | #[target_feature(enable = "lasx")] | 1917 | #[target_feature(enable = "lasx")] |
| 1918 | #[rustc_legacy_const_generics(1)] | 1918 | #[rustc_legacy_const_generics(1)] |
| 1919 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1919 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1920 | pub unsafe fn lasx_xvbitseti_h<const IMM4: u32>(a: v16u16) -> v16u16 { | 1920 | pub fn lasx_xvbitseti_h<const IMM4: u32>(a: v16u16) -> v16u16 { |
| 1921 | static_assert_uimm_bits!(IMM4, 4); | 1921 | static_assert_uimm_bits!(IMM4, 4); |
| 1922 | __lasx_xvbitseti_h(a, IMM4) | 1922 | unsafe { __lasx_xvbitseti_h(a, IMM4) } |
| 1923 | } | 1923 | } |
| 1924 | 1924 | ||
| 1925 | #[inline] | 1925 | #[inline] |
| 1926 | #[target_feature(enable = "lasx")] | 1926 | #[target_feature(enable = "lasx")] |
| 1927 | #[rustc_legacy_const_generics(1)] | 1927 | #[rustc_legacy_const_generics(1)] |
| 1928 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1928 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1929 | pub unsafe fn lasx_xvbitseti_w<const IMM5: u32>(a: v8u32) -> v8u32 { | 1929 | pub fn lasx_xvbitseti_w<const IMM5: u32>(a: v8u32) -> v8u32 { |
| 1930 | static_assert_uimm_bits!(IMM5, 5); | 1930 | static_assert_uimm_bits!(IMM5, 5); |
| 1931 | __lasx_xvbitseti_w(a, IMM5) | 1931 | unsafe { __lasx_xvbitseti_w(a, IMM5) } |
| 1932 | } | 1932 | } |
| 1933 | 1933 | ||
| 1934 | #[inline] | 1934 | #[inline] |
| 1935 | #[target_feature(enable = "lasx")] | 1935 | #[target_feature(enable = "lasx")] |
| 1936 | #[rustc_legacy_const_generics(1)] | 1936 | #[rustc_legacy_const_generics(1)] |
| 1937 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1937 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1938 | pub unsafe fn lasx_xvbitseti_d<const IMM6: u32>(a: v4u64) -> v4u64 { | 1938 | pub fn lasx_xvbitseti_d<const IMM6: u32>(a: v4u64) -> v4u64 { |
| 1939 | static_assert_uimm_bits!(IMM6, 6); | 1939 | static_assert_uimm_bits!(IMM6, 6); |
| 1940 | __lasx_xvbitseti_d(a, IMM6) | 1940 | unsafe { __lasx_xvbitseti_d(a, IMM6) } |
| 1941 | } | 1941 | } |
| 1942 | 1942 | ||
| 1943 | #[inline] | 1943 | #[inline] |
| 1944 | #[target_feature(enable = "lasx")] | 1944 | #[target_feature(enable = "lasx")] |
| 1945 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1945 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1946 | pub unsafe fn lasx_xvbitrev_b(a: v32u8, b: v32u8) -> v32u8 { | 1946 | pub fn lasx_xvbitrev_b(a: v32u8, b: v32u8) -> v32u8 { |
| 1947 | __lasx_xvbitrev_b(a, b) | 1947 | unsafe { __lasx_xvbitrev_b(a, b) } |
| 1948 | } | 1948 | } |
| 1949 | 1949 | ||
| 1950 | #[inline] | 1950 | #[inline] |
| 1951 | #[target_feature(enable = "lasx")] | 1951 | #[target_feature(enable = "lasx")] |
| 1952 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1952 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1953 | pub unsafe fn lasx_xvbitrev_h(a: v16u16, b: v16u16) -> v16u16 { | 1953 | pub fn lasx_xvbitrev_h(a: v16u16, b: v16u16) -> v16u16 { |
| 1954 | __lasx_xvbitrev_h(a, b) | 1954 | unsafe { __lasx_xvbitrev_h(a, b) } |
| 1955 | } | 1955 | } |
| 1956 | 1956 | ||
| 1957 | #[inline] | 1957 | #[inline] |
| 1958 | #[target_feature(enable = "lasx")] | 1958 | #[target_feature(enable = "lasx")] |
| 1959 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1959 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1960 | pub unsafe fn lasx_xvbitrev_w(a: v8u32, b: v8u32) -> v8u32 { | 1960 | pub fn lasx_xvbitrev_w(a: v8u32, b: v8u32) -> v8u32 { |
| 1961 | __lasx_xvbitrev_w(a, b) | 1961 | unsafe { __lasx_xvbitrev_w(a, b) } |
| 1962 | } | 1962 | } |
| 1963 | 1963 | ||
| 1964 | #[inline] | 1964 | #[inline] |
| 1965 | #[target_feature(enable = "lasx")] | 1965 | #[target_feature(enable = "lasx")] |
| 1966 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1966 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1967 | pub unsafe fn lasx_xvbitrev_d(a: v4u64, b: v4u64) -> v4u64 { | 1967 | pub fn lasx_xvbitrev_d(a: v4u64, b: v4u64) -> v4u64 { |
| 1968 | __lasx_xvbitrev_d(a, b) | 1968 | unsafe { __lasx_xvbitrev_d(a, b) } |
| 1969 | } | 1969 | } |
| 1970 | 1970 | ||
| 1971 | #[inline] | 1971 | #[inline] |
| 1972 | #[target_feature(enable = "lasx")] | 1972 | #[target_feature(enable = "lasx")] |
| 1973 | #[rustc_legacy_const_generics(1)] | 1973 | #[rustc_legacy_const_generics(1)] |
| 1974 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1974 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1975 | pub unsafe fn lasx_xvbitrevi_b<const IMM3: u32>(a: v32u8) -> v32u8 { | 1975 | pub fn lasx_xvbitrevi_b<const IMM3: u32>(a: v32u8) -> v32u8 { |
| 1976 | static_assert_uimm_bits!(IMM3, 3); | 1976 | static_assert_uimm_bits!(IMM3, 3); |
| 1977 | __lasx_xvbitrevi_b(a, IMM3) | 1977 | unsafe { __lasx_xvbitrevi_b(a, IMM3) } |
| 1978 | } | 1978 | } |
| 1979 | 1979 | ||
| 1980 | #[inline] | 1980 | #[inline] |
| 1981 | #[target_feature(enable = "lasx")] | 1981 | #[target_feature(enable = "lasx")] |
| 1982 | #[rustc_legacy_const_generics(1)] | 1982 | #[rustc_legacy_const_generics(1)] |
| 1983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1984 | pub unsafe fn lasx_xvbitrevi_h<const IMM4: u32>(a: v16u16) -> v16u16 { | 1984 | pub fn lasx_xvbitrevi_h<const IMM4: u32>(a: v16u16) -> v16u16 { |
| 1985 | static_assert_uimm_bits!(IMM4, 4); | 1985 | static_assert_uimm_bits!(IMM4, 4); |
| 1986 | __lasx_xvbitrevi_h(a, IMM4) | 1986 | unsafe { __lasx_xvbitrevi_h(a, IMM4) } |
| 1987 | } | 1987 | } |
| 1988 | 1988 | ||
| 1989 | #[inline] | 1989 | #[inline] |
| 1990 | #[target_feature(enable = "lasx")] | 1990 | #[target_feature(enable = "lasx")] |
| 1991 | #[rustc_legacy_const_generics(1)] | 1991 | #[rustc_legacy_const_generics(1)] |
| 1992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1993 | pub unsafe fn lasx_xvbitrevi_w<const IMM5: u32>(a: v8u32) -> v8u32 { | 1993 | pub fn lasx_xvbitrevi_w<const IMM5: u32>(a: v8u32) -> v8u32 { |
| 1994 | static_assert_uimm_bits!(IMM5, 5); | 1994 | static_assert_uimm_bits!(IMM5, 5); |
| 1995 | __lasx_xvbitrevi_w(a, IMM5) | 1995 | unsafe { __lasx_xvbitrevi_w(a, IMM5) } |
| 1996 | } | 1996 | } |
| 1997 | 1997 | ||
| 1998 | #[inline] | 1998 | #[inline] |
| 1999 | #[target_feature(enable = "lasx")] | 1999 | #[target_feature(enable = "lasx")] |
| 2000 | #[rustc_legacy_const_generics(1)] | 2000 | #[rustc_legacy_const_generics(1)] |
| 2001 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2001 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2002 | pub unsafe fn lasx_xvbitrevi_d<const IMM6: u32>(a: v4u64) -> v4u64 { | 2002 | pub fn lasx_xvbitrevi_d<const IMM6: u32>(a: v4u64) -> v4u64 { |
| 2003 | static_assert_uimm_bits!(IMM6, 6); | 2003 | static_assert_uimm_bits!(IMM6, 6); |
| 2004 | __lasx_xvbitrevi_d(a, IMM6) | 2004 | unsafe { __lasx_xvbitrevi_d(a, IMM6) } |
| 2005 | } | 2005 | } |
| 2006 | 2006 | ||
| 2007 | #[inline] | 2007 | #[inline] |
| 2008 | #[target_feature(enable = "lasx")] | 2008 | #[target_feature(enable = "lasx")] |
| 2009 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2009 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2010 | pub unsafe fn lasx_xvadd_b(a: v32i8, b: v32i8) -> v32i8 { | 2010 | pub fn lasx_xvadd_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2011 | __lasx_xvadd_b(a, b) | 2011 | unsafe { __lasx_xvadd_b(a, b) } |
| 2012 | } | 2012 | } |
| 2013 | 2013 | ||
| 2014 | #[inline] | 2014 | #[inline] |
| 2015 | #[target_feature(enable = "lasx")] | 2015 | #[target_feature(enable = "lasx")] |
| 2016 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2016 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2017 | pub unsafe fn lasx_xvadd_h(a: v16i16, b: v16i16) -> v16i16 { | 2017 | pub fn lasx_xvadd_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2018 | __lasx_xvadd_h(a, b) | 2018 | unsafe { __lasx_xvadd_h(a, b) } |
| 2019 | } | 2019 | } |
| 2020 | 2020 | ||
| 2021 | #[inline] | 2021 | #[inline] |
| 2022 | #[target_feature(enable = "lasx")] | 2022 | #[target_feature(enable = "lasx")] |
| 2023 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2023 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2024 | pub unsafe fn lasx_xvadd_w(a: v8i32, b: v8i32) -> v8i32 { | 2024 | pub fn lasx_xvadd_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2025 | __lasx_xvadd_w(a, b) | 2025 | unsafe { __lasx_xvadd_w(a, b) } |
| 2026 | } | 2026 | } |
| 2027 | 2027 | ||
| 2028 | #[inline] | 2028 | #[inline] |
| 2029 | #[target_feature(enable = "lasx")] | 2029 | #[target_feature(enable = "lasx")] |
| 2030 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2030 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2031 | pub unsafe fn lasx_xvadd_d(a: v4i64, b: v4i64) -> v4i64 { | 2031 | pub fn lasx_xvadd_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2032 | __lasx_xvadd_d(a, b) | 2032 | unsafe { __lasx_xvadd_d(a, b) } |
| 2033 | } | 2033 | } |
| 2034 | 2034 | ||
| 2035 | #[inline] | 2035 | #[inline] |
| 2036 | #[target_feature(enable = "lasx")] | 2036 | #[target_feature(enable = "lasx")] |
| 2037 | #[rustc_legacy_const_generics(1)] | 2037 | #[rustc_legacy_const_generics(1)] |
| 2038 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2038 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2039 | pub unsafe fn lasx_xvaddi_bu<const IMM5: u32>(a: v32i8) -> v32i8 { | 2039 | pub fn lasx_xvaddi_bu<const IMM5: u32>(a: v32i8) -> v32i8 { |
| 2040 | static_assert_uimm_bits!(IMM5, 5); | 2040 | static_assert_uimm_bits!(IMM5, 5); |
| 2041 | __lasx_xvaddi_bu(a, IMM5) | 2041 | unsafe { __lasx_xvaddi_bu(a, IMM5) } |
| 2042 | } | 2042 | } |
| 2043 | 2043 | ||
| 2044 | #[inline] | 2044 | #[inline] |
| 2045 | #[target_feature(enable = "lasx")] | 2045 | #[target_feature(enable = "lasx")] |
| 2046 | #[rustc_legacy_const_generics(1)] | 2046 | #[rustc_legacy_const_generics(1)] |
| 2047 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2047 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2048 | pub unsafe fn lasx_xvaddi_hu<const IMM5: u32>(a: v16i16) -> v16i16 { | 2048 | pub fn lasx_xvaddi_hu<const IMM5: u32>(a: v16i16) -> v16i16 { |
| 2049 | static_assert_uimm_bits!(IMM5, 5); | 2049 | static_assert_uimm_bits!(IMM5, 5); |
| 2050 | __lasx_xvaddi_hu(a, IMM5) | 2050 | unsafe { __lasx_xvaddi_hu(a, IMM5) } |
| 2051 | } | 2051 | } |
| 2052 | 2052 | ||
| 2053 | #[inline] | 2053 | #[inline] |
| 2054 | #[target_feature(enable = "lasx")] | 2054 | #[target_feature(enable = "lasx")] |
| 2055 | #[rustc_legacy_const_generics(1)] | 2055 | #[rustc_legacy_const_generics(1)] |
| 2056 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2056 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2057 | pub unsafe fn lasx_xvaddi_wu<const IMM5: u32>(a: v8i32) -> v8i32 { | 2057 | pub fn lasx_xvaddi_wu<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 2058 | static_assert_uimm_bits!(IMM5, 5); | 2058 | static_assert_uimm_bits!(IMM5, 5); |
| 2059 | __lasx_xvaddi_wu(a, IMM5) | 2059 | unsafe { __lasx_xvaddi_wu(a, IMM5) } |
| 2060 | } | 2060 | } |
| 2061 | 2061 | ||
| 2062 | #[inline] | 2062 | #[inline] |
| 2063 | #[target_feature(enable = "lasx")] | 2063 | #[target_feature(enable = "lasx")] |
| 2064 | #[rustc_legacy_const_generics(1)] | 2064 | #[rustc_legacy_const_generics(1)] |
| 2065 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2065 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2066 | pub unsafe fn lasx_xvaddi_du<const IMM5: u32>(a: v4i64) -> v4i64 { | 2066 | pub fn lasx_xvaddi_du<const IMM5: u32>(a: v4i64) -> v4i64 { |
| 2067 | static_assert_uimm_bits!(IMM5, 5); | 2067 | static_assert_uimm_bits!(IMM5, 5); |
| 2068 | __lasx_xvaddi_du(a, IMM5) | 2068 | unsafe { __lasx_xvaddi_du(a, IMM5) } |
| 2069 | } | 2069 | } |
| 2070 | 2070 | ||
| 2071 | #[inline] | 2071 | #[inline] |
| 2072 | #[target_feature(enable = "lasx")] | 2072 | #[target_feature(enable = "lasx")] |
| 2073 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2073 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2074 | pub unsafe fn lasx_xvsub_b(a: v32i8, b: v32i8) -> v32i8 { | 2074 | pub fn lasx_xvsub_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2075 | __lasx_xvsub_b(a, b) | 2075 | unsafe { __lasx_xvsub_b(a, b) } |
| 2076 | } | 2076 | } |
| 2077 | 2077 | ||
| 2078 | #[inline] | 2078 | #[inline] |
| 2079 | #[target_feature(enable = "lasx")] | 2079 | #[target_feature(enable = "lasx")] |
| 2080 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2080 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2081 | pub unsafe fn lasx_xvsub_h(a: v16i16, b: v16i16) -> v16i16 { | 2081 | pub fn lasx_xvsub_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2082 | __lasx_xvsub_h(a, b) | 2082 | unsafe { __lasx_xvsub_h(a, b) } |
| 2083 | } | 2083 | } |
| 2084 | 2084 | ||
| 2085 | #[inline] | 2085 | #[inline] |
| 2086 | #[target_feature(enable = "lasx")] | 2086 | #[target_feature(enable = "lasx")] |
| 2087 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2087 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2088 | pub unsafe fn lasx_xvsub_w(a: v8i32, b: v8i32) -> v8i32 { | 2088 | pub fn lasx_xvsub_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2089 | __lasx_xvsub_w(a, b) | 2089 | unsafe { __lasx_xvsub_w(a, b) } |
| 2090 | } | 2090 | } |
| 2091 | 2091 | ||
| 2092 | #[inline] | 2092 | #[inline] |
| 2093 | #[target_feature(enable = "lasx")] | 2093 | #[target_feature(enable = "lasx")] |
| 2094 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2094 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2095 | pub unsafe fn lasx_xvsub_d(a: v4i64, b: v4i64) -> v4i64 { | 2095 | pub fn lasx_xvsub_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2096 | __lasx_xvsub_d(a, b) | 2096 | unsafe { __lasx_xvsub_d(a, b) } |
| 2097 | } | 2097 | } |
| 2098 | 2098 | ||
| 2099 | #[inline] | 2099 | #[inline] |
| 2100 | #[target_feature(enable = "lasx")] | 2100 | #[target_feature(enable = "lasx")] |
| 2101 | #[rustc_legacy_const_generics(1)] | 2101 | #[rustc_legacy_const_generics(1)] |
| 2102 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2102 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2103 | pub unsafe fn lasx_xvsubi_bu<const IMM5: u32>(a: v32i8) -> v32i8 { | 2103 | pub fn lasx_xvsubi_bu<const IMM5: u32>(a: v32i8) -> v32i8 { |
| 2104 | static_assert_uimm_bits!(IMM5, 5); | 2104 | static_assert_uimm_bits!(IMM5, 5); |
| 2105 | __lasx_xvsubi_bu(a, IMM5) | 2105 | unsafe { __lasx_xvsubi_bu(a, IMM5) } |
| 2106 | } | 2106 | } |
| 2107 | 2107 | ||
| 2108 | #[inline] | 2108 | #[inline] |
| 2109 | #[target_feature(enable = "lasx")] | 2109 | #[target_feature(enable = "lasx")] |
| 2110 | #[rustc_legacy_const_generics(1)] | 2110 | #[rustc_legacy_const_generics(1)] |
| 2111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2112 | pub unsafe fn lasx_xvsubi_hu<const IMM5: u32>(a: v16i16) -> v16i16 { | 2112 | pub fn lasx_xvsubi_hu<const IMM5: u32>(a: v16i16) -> v16i16 { |
| 2113 | static_assert_uimm_bits!(IMM5, 5); | 2113 | static_assert_uimm_bits!(IMM5, 5); |
| 2114 | __lasx_xvsubi_hu(a, IMM5) | 2114 | unsafe { __lasx_xvsubi_hu(a, IMM5) } |
| 2115 | } | 2115 | } |
| 2116 | 2116 | ||
| 2117 | #[inline] | 2117 | #[inline] |
| 2118 | #[target_feature(enable = "lasx")] | 2118 | #[target_feature(enable = "lasx")] |
| 2119 | #[rustc_legacy_const_generics(1)] | 2119 | #[rustc_legacy_const_generics(1)] |
| 2120 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2120 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2121 | pub unsafe fn lasx_xvsubi_wu<const IMM5: u32>(a: v8i32) -> v8i32 { | 2121 | pub fn lasx_xvsubi_wu<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 2122 | static_assert_uimm_bits!(IMM5, 5); | 2122 | static_assert_uimm_bits!(IMM5, 5); |
| 2123 | __lasx_xvsubi_wu(a, IMM5) | 2123 | unsafe { __lasx_xvsubi_wu(a, IMM5) } |
| 2124 | } | 2124 | } |
| 2125 | 2125 | ||
| 2126 | #[inline] | 2126 | #[inline] |
| 2127 | #[target_feature(enable = "lasx")] | 2127 | #[target_feature(enable = "lasx")] |
| 2128 | #[rustc_legacy_const_generics(1)] | 2128 | #[rustc_legacy_const_generics(1)] |
| 2129 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2129 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2130 | pub unsafe fn lasx_xvsubi_du<const IMM5: u32>(a: v4i64) -> v4i64 { | 2130 | pub fn lasx_xvsubi_du<const IMM5: u32>(a: v4i64) -> v4i64 { |
| 2131 | static_assert_uimm_bits!(IMM5, 5); | 2131 | static_assert_uimm_bits!(IMM5, 5); |
| 2132 | __lasx_xvsubi_du(a, IMM5) | 2132 | unsafe { __lasx_xvsubi_du(a, IMM5) } |
| 2133 | } | 2133 | } |
| 2134 | 2134 | ||
| 2135 | #[inline] | 2135 | #[inline] |
| 2136 | #[target_feature(enable = "lasx")] | 2136 | #[target_feature(enable = "lasx")] |
| 2137 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2137 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2138 | pub unsafe fn lasx_xvmax_b(a: v32i8, b: v32i8) -> v32i8 { | 2138 | pub fn lasx_xvmax_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2139 | __lasx_xvmax_b(a, b) | 2139 | unsafe { __lasx_xvmax_b(a, b) } |
| 2140 | } | 2140 | } |
| 2141 | 2141 | ||
| 2142 | #[inline] | 2142 | #[inline] |
| 2143 | #[target_feature(enable = "lasx")] | 2143 | #[target_feature(enable = "lasx")] |
| 2144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2145 | pub unsafe fn lasx_xvmax_h(a: v16i16, b: v16i16) -> v16i16 { | 2145 | pub fn lasx_xvmax_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2146 | __lasx_xvmax_h(a, b) | 2146 | unsafe { __lasx_xvmax_h(a, b) } |
| 2147 | } | 2147 | } |
| 2148 | 2148 | ||
| 2149 | #[inline] | 2149 | #[inline] |
| 2150 | #[target_feature(enable = "lasx")] | 2150 | #[target_feature(enable = "lasx")] |
| 2151 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2151 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2152 | pub unsafe fn lasx_xvmax_w(a: v8i32, b: v8i32) -> v8i32 { | 2152 | pub fn lasx_xvmax_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2153 | __lasx_xvmax_w(a, b) | 2153 | unsafe { __lasx_xvmax_w(a, b) } |
| 2154 | } | 2154 | } |
| 2155 | 2155 | ||
| 2156 | #[inline] | 2156 | #[inline] |
| 2157 | #[target_feature(enable = "lasx")] | 2157 | #[target_feature(enable = "lasx")] |
| 2158 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2158 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2159 | pub unsafe fn lasx_xvmax_d(a: v4i64, b: v4i64) -> v4i64 { | 2159 | pub fn lasx_xvmax_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2160 | __lasx_xvmax_d(a, b) | 2160 | unsafe { __lasx_xvmax_d(a, b) } |
| 2161 | } | 2161 | } |
| 2162 | 2162 | ||
| 2163 | #[inline] | 2163 | #[inline] |
| 2164 | #[target_feature(enable = "lasx")] | 2164 | #[target_feature(enable = "lasx")] |
| 2165 | #[rustc_legacy_const_generics(1)] | 2165 | #[rustc_legacy_const_generics(1)] |
| 2166 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2166 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2167 | pub unsafe fn lasx_xvmaxi_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { | 2167 | pub fn lasx_xvmaxi_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { |
| 2168 | static_assert_simm_bits!(IMM_S5, 5); | 2168 | static_assert_simm_bits!(IMM_S5, 5); |
| 2169 | __lasx_xvmaxi_b(a, IMM_S5) | 2169 | unsafe { __lasx_xvmaxi_b(a, IMM_S5) } |
| 2170 | } | 2170 | } |
| 2171 | 2171 | ||
| 2172 | #[inline] | 2172 | #[inline] |
| 2173 | #[target_feature(enable = "lasx")] | 2173 | #[target_feature(enable = "lasx")] |
| 2174 | #[rustc_legacy_const_generics(1)] | 2174 | #[rustc_legacy_const_generics(1)] |
| 2175 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2175 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2176 | pub unsafe fn lasx_xvmaxi_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { | 2176 | pub fn lasx_xvmaxi_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { |
| 2177 | static_assert_simm_bits!(IMM_S5, 5); | 2177 | static_assert_simm_bits!(IMM_S5, 5); |
| 2178 | __lasx_xvmaxi_h(a, IMM_S5) | 2178 | unsafe { __lasx_xvmaxi_h(a, IMM_S5) } |
| 2179 | } | 2179 | } |
| 2180 | 2180 | ||
| 2181 | #[inline] | 2181 | #[inline] |
| 2182 | #[target_feature(enable = "lasx")] | 2182 | #[target_feature(enable = "lasx")] |
| 2183 | #[rustc_legacy_const_generics(1)] | 2183 | #[rustc_legacy_const_generics(1)] |
| 2184 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2184 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2185 | pub unsafe fn lasx_xvmaxi_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { | 2185 | pub fn lasx_xvmaxi_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { |
| 2186 | static_assert_simm_bits!(IMM_S5, 5); | 2186 | static_assert_simm_bits!(IMM_S5, 5); |
| 2187 | __lasx_xvmaxi_w(a, IMM_S5) | 2187 | unsafe { __lasx_xvmaxi_w(a, IMM_S5) } |
| 2188 | } | 2188 | } |
| 2189 | 2189 | ||
| 2190 | #[inline] | 2190 | #[inline] |
| 2191 | #[target_feature(enable = "lasx")] | 2191 | #[target_feature(enable = "lasx")] |
| 2192 | #[rustc_legacy_const_generics(1)] | 2192 | #[rustc_legacy_const_generics(1)] |
| 2193 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2193 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2194 | pub unsafe fn lasx_xvmaxi_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { | 2194 | pub fn lasx_xvmaxi_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { |
| 2195 | static_assert_simm_bits!(IMM_S5, 5); | 2195 | static_assert_simm_bits!(IMM_S5, 5); |
| 2196 | __lasx_xvmaxi_d(a, IMM_S5) | 2196 | unsafe { __lasx_xvmaxi_d(a, IMM_S5) } |
| 2197 | } | 2197 | } |
| 2198 | 2198 | ||
| 2199 | #[inline] | 2199 | #[inline] |
| 2200 | #[target_feature(enable = "lasx")] | 2200 | #[target_feature(enable = "lasx")] |
| 2201 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2201 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2202 | pub unsafe fn lasx_xvmax_bu(a: v32u8, b: v32u8) -> v32u8 { | 2202 | pub fn lasx_xvmax_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 2203 | __lasx_xvmax_bu(a, b) | 2203 | unsafe { __lasx_xvmax_bu(a, b) } |
| 2204 | } | 2204 | } |
| 2205 | 2205 | ||
| 2206 | #[inline] | 2206 | #[inline] |
| 2207 | #[target_feature(enable = "lasx")] | 2207 | #[target_feature(enable = "lasx")] |
| 2208 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2208 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2209 | pub unsafe fn lasx_xvmax_hu(a: v16u16, b: v16u16) -> v16u16 { | 2209 | pub fn lasx_xvmax_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 2210 | __lasx_xvmax_hu(a, b) | 2210 | unsafe { __lasx_xvmax_hu(a, b) } |
| 2211 | } | 2211 | } |
| 2212 | 2212 | ||
| 2213 | #[inline] | 2213 | #[inline] |
| 2214 | #[target_feature(enable = "lasx")] | 2214 | #[target_feature(enable = "lasx")] |
| 2215 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2215 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2216 | pub unsafe fn lasx_xvmax_wu(a: v8u32, b: v8u32) -> v8u32 { | 2216 | pub fn lasx_xvmax_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 2217 | __lasx_xvmax_wu(a, b) | 2217 | unsafe { __lasx_xvmax_wu(a, b) } |
| 2218 | } | 2218 | } |
| 2219 | 2219 | ||
| 2220 | #[inline] | 2220 | #[inline] |
| 2221 | #[target_feature(enable = "lasx")] | 2221 | #[target_feature(enable = "lasx")] |
| 2222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2223 | pub unsafe fn lasx_xvmax_du(a: v4u64, b: v4u64) -> v4u64 { | 2223 | pub fn lasx_xvmax_du(a: v4u64, b: v4u64) -> v4u64 { |
| 2224 | __lasx_xvmax_du(a, b) | 2224 | unsafe { __lasx_xvmax_du(a, b) } |
| 2225 | } | 2225 | } |
| 2226 | 2226 | ||
| 2227 | #[inline] | 2227 | #[inline] |
| 2228 | #[target_feature(enable = "lasx")] | 2228 | #[target_feature(enable = "lasx")] |
| 2229 | #[rustc_legacy_const_generics(1)] | 2229 | #[rustc_legacy_const_generics(1)] |
| 2230 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2230 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2231 | pub unsafe fn lasx_xvmaxi_bu<const IMM5: u32>(a: v32u8) -> v32u8 { | 2231 | pub fn lasx_xvmaxi_bu<const IMM5: u32>(a: v32u8) -> v32u8 { |
| 2232 | static_assert_uimm_bits!(IMM5, 5); | 2232 | static_assert_uimm_bits!(IMM5, 5); |
| 2233 | __lasx_xvmaxi_bu(a, IMM5) | 2233 | unsafe { __lasx_xvmaxi_bu(a, IMM5) } |
| 2234 | } | 2234 | } |
| 2235 | 2235 | ||
| 2236 | #[inline] | 2236 | #[inline] |
| 2237 | #[target_feature(enable = "lasx")] | 2237 | #[target_feature(enable = "lasx")] |
| 2238 | #[rustc_legacy_const_generics(1)] | 2238 | #[rustc_legacy_const_generics(1)] |
| 2239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2240 | pub unsafe fn lasx_xvmaxi_hu<const IMM5: u32>(a: v16u16) -> v16u16 { | 2240 | pub fn lasx_xvmaxi_hu<const IMM5: u32>(a: v16u16) -> v16u16 { |
| 2241 | static_assert_uimm_bits!(IMM5, 5); | 2241 | static_assert_uimm_bits!(IMM5, 5); |
| 2242 | __lasx_xvmaxi_hu(a, IMM5) | 2242 | unsafe { __lasx_xvmaxi_hu(a, IMM5) } |
| 2243 | } | 2243 | } |
| 2244 | 2244 | ||
| 2245 | #[inline] | 2245 | #[inline] |
| 2246 | #[target_feature(enable = "lasx")] | 2246 | #[target_feature(enable = "lasx")] |
| 2247 | #[rustc_legacy_const_generics(1)] | 2247 | #[rustc_legacy_const_generics(1)] |
| 2248 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2248 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2249 | pub unsafe fn lasx_xvmaxi_wu<const IMM5: u32>(a: v8u32) -> v8u32 { | 2249 | pub fn lasx_xvmaxi_wu<const IMM5: u32>(a: v8u32) -> v8u32 { |
| 2250 | static_assert_uimm_bits!(IMM5, 5); | 2250 | static_assert_uimm_bits!(IMM5, 5); |
| 2251 | __lasx_xvmaxi_wu(a, IMM5) | 2251 | unsafe { __lasx_xvmaxi_wu(a, IMM5) } |
| 2252 | } | 2252 | } |
| 2253 | 2253 | ||
| 2254 | #[inline] | 2254 | #[inline] |
| 2255 | #[target_feature(enable = "lasx")] | 2255 | #[target_feature(enable = "lasx")] |
| 2256 | #[rustc_legacy_const_generics(1)] | 2256 | #[rustc_legacy_const_generics(1)] |
| 2257 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2257 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2258 | pub unsafe fn lasx_xvmaxi_du<const IMM5: u32>(a: v4u64) -> v4u64 { | 2258 | pub fn lasx_xvmaxi_du<const IMM5: u32>(a: v4u64) -> v4u64 { |
| 2259 | static_assert_uimm_bits!(IMM5, 5); | 2259 | static_assert_uimm_bits!(IMM5, 5); |
| 2260 | __lasx_xvmaxi_du(a, IMM5) | 2260 | unsafe { __lasx_xvmaxi_du(a, IMM5) } |
| 2261 | } | 2261 | } |
| 2262 | 2262 | ||
| 2263 | #[inline] | 2263 | #[inline] |
| 2264 | #[target_feature(enable = "lasx")] | 2264 | #[target_feature(enable = "lasx")] |
| 2265 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2265 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2266 | pub unsafe fn lasx_xvmin_b(a: v32i8, b: v32i8) -> v32i8 { | 2266 | pub fn lasx_xvmin_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2267 | __lasx_xvmin_b(a, b) | 2267 | unsafe { __lasx_xvmin_b(a, b) } |
| 2268 | } | 2268 | } |
| 2269 | 2269 | ||
| 2270 | #[inline] | 2270 | #[inline] |
| 2271 | #[target_feature(enable = "lasx")] | 2271 | #[target_feature(enable = "lasx")] |
| 2272 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2272 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2273 | pub unsafe fn lasx_xvmin_h(a: v16i16, b: v16i16) -> v16i16 { | 2273 | pub fn lasx_xvmin_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2274 | __lasx_xvmin_h(a, b) | 2274 | unsafe { __lasx_xvmin_h(a, b) } |
| 2275 | } | 2275 | } |
| 2276 | 2276 | ||
| 2277 | #[inline] | 2277 | #[inline] |
| 2278 | #[target_feature(enable = "lasx")] | 2278 | #[target_feature(enable = "lasx")] |
| 2279 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2279 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2280 | pub unsafe fn lasx_xvmin_w(a: v8i32, b: v8i32) -> v8i32 { | 2280 | pub fn lasx_xvmin_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2281 | __lasx_xvmin_w(a, b) | 2281 | unsafe { __lasx_xvmin_w(a, b) } |
| 2282 | } | 2282 | } |
| 2283 | 2283 | ||
| 2284 | #[inline] | 2284 | #[inline] |
| 2285 | #[target_feature(enable = "lasx")] | 2285 | #[target_feature(enable = "lasx")] |
| 2286 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2286 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2287 | pub unsafe fn lasx_xvmin_d(a: v4i64, b: v4i64) -> v4i64 { | 2287 | pub fn lasx_xvmin_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2288 | __lasx_xvmin_d(a, b) | 2288 | unsafe { __lasx_xvmin_d(a, b) } |
| 2289 | } | 2289 | } |
| 2290 | 2290 | ||
| 2291 | #[inline] | 2291 | #[inline] |
| 2292 | #[target_feature(enable = "lasx")] | 2292 | #[target_feature(enable = "lasx")] |
| 2293 | #[rustc_legacy_const_generics(1)] | 2293 | #[rustc_legacy_const_generics(1)] |
| 2294 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2294 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2295 | pub unsafe fn lasx_xvmini_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { | 2295 | pub fn lasx_xvmini_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { |
| 2296 | static_assert_simm_bits!(IMM_S5, 5); | 2296 | static_assert_simm_bits!(IMM_S5, 5); |
| 2297 | __lasx_xvmini_b(a, IMM_S5) | 2297 | unsafe { __lasx_xvmini_b(a, IMM_S5) } |
| 2298 | } | 2298 | } |
| 2299 | 2299 | ||
| 2300 | #[inline] | 2300 | #[inline] |
| 2301 | #[target_feature(enable = "lasx")] | 2301 | #[target_feature(enable = "lasx")] |
| 2302 | #[rustc_legacy_const_generics(1)] | 2302 | #[rustc_legacy_const_generics(1)] |
| 2303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2304 | pub unsafe fn lasx_xvmini_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { | 2304 | pub fn lasx_xvmini_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { |
| 2305 | static_assert_simm_bits!(IMM_S5, 5); | 2305 | static_assert_simm_bits!(IMM_S5, 5); |
| 2306 | __lasx_xvmini_h(a, IMM_S5) | 2306 | unsafe { __lasx_xvmini_h(a, IMM_S5) } |
| 2307 | } | 2307 | } |
| 2308 | 2308 | ||
| 2309 | #[inline] | 2309 | #[inline] |
| 2310 | #[target_feature(enable = "lasx")] | 2310 | #[target_feature(enable = "lasx")] |
| 2311 | #[rustc_legacy_const_generics(1)] | 2311 | #[rustc_legacy_const_generics(1)] |
| 2312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2313 | pub unsafe fn lasx_xvmini_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { | 2313 | pub fn lasx_xvmini_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { |
| 2314 | static_assert_simm_bits!(IMM_S5, 5); | 2314 | static_assert_simm_bits!(IMM_S5, 5); |
| 2315 | __lasx_xvmini_w(a, IMM_S5) | 2315 | unsafe { __lasx_xvmini_w(a, IMM_S5) } |
| 2316 | } | 2316 | } |
| 2317 | 2317 | ||
| 2318 | #[inline] | 2318 | #[inline] |
| 2319 | #[target_feature(enable = "lasx")] | 2319 | #[target_feature(enable = "lasx")] |
| 2320 | #[rustc_legacy_const_generics(1)] | 2320 | #[rustc_legacy_const_generics(1)] |
| 2321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2322 | pub unsafe fn lasx_xvmini_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { | 2322 | pub fn lasx_xvmini_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { |
| 2323 | static_assert_simm_bits!(IMM_S5, 5); | 2323 | static_assert_simm_bits!(IMM_S5, 5); |
| 2324 | __lasx_xvmini_d(a, IMM_S5) | 2324 | unsafe { __lasx_xvmini_d(a, IMM_S5) } |
| 2325 | } | 2325 | } |
| 2326 | 2326 | ||
| 2327 | #[inline] | 2327 | #[inline] |
| 2328 | #[target_feature(enable = "lasx")] | 2328 | #[target_feature(enable = "lasx")] |
| 2329 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2329 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2330 | pub unsafe fn lasx_xvmin_bu(a: v32u8, b: v32u8) -> v32u8 { | 2330 | pub fn lasx_xvmin_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 2331 | __lasx_xvmin_bu(a, b) | 2331 | unsafe { __lasx_xvmin_bu(a, b) } |
| 2332 | } | 2332 | } |
| 2333 | 2333 | ||
| 2334 | #[inline] | 2334 | #[inline] |
| 2335 | #[target_feature(enable = "lasx")] | 2335 | #[target_feature(enable = "lasx")] |
| 2336 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2336 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2337 | pub unsafe fn lasx_xvmin_hu(a: v16u16, b: v16u16) -> v16u16 { | 2337 | pub fn lasx_xvmin_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 2338 | __lasx_xvmin_hu(a, b) | 2338 | unsafe { __lasx_xvmin_hu(a, b) } |
| 2339 | } | 2339 | } |
| 2340 | 2340 | ||
| 2341 | #[inline] | 2341 | #[inline] |
| 2342 | #[target_feature(enable = "lasx")] | 2342 | #[target_feature(enable = "lasx")] |
| 2343 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2343 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2344 | pub unsafe fn lasx_xvmin_wu(a: v8u32, b: v8u32) -> v8u32 { | 2344 | pub fn lasx_xvmin_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 2345 | __lasx_xvmin_wu(a, b) | 2345 | unsafe { __lasx_xvmin_wu(a, b) } |
| 2346 | } | 2346 | } |
| 2347 | 2347 | ||
| 2348 | #[inline] | 2348 | #[inline] |
| 2349 | #[target_feature(enable = "lasx")] | 2349 | #[target_feature(enable = "lasx")] |
| 2350 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2350 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2351 | pub unsafe fn lasx_xvmin_du(a: v4u64, b: v4u64) -> v4u64 { | 2351 | pub fn lasx_xvmin_du(a: v4u64, b: v4u64) -> v4u64 { |
| 2352 | __lasx_xvmin_du(a, b) | 2352 | unsafe { __lasx_xvmin_du(a, b) } |
| 2353 | } | 2353 | } |
| 2354 | 2354 | ||
| 2355 | #[inline] | 2355 | #[inline] |
| 2356 | #[target_feature(enable = "lasx")] | 2356 | #[target_feature(enable = "lasx")] |
| 2357 | #[rustc_legacy_const_generics(1)] | 2357 | #[rustc_legacy_const_generics(1)] |
| 2358 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2358 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2359 | pub unsafe fn lasx_xvmini_bu<const IMM5: u32>(a: v32u8) -> v32u8 { | 2359 | pub fn lasx_xvmini_bu<const IMM5: u32>(a: v32u8) -> v32u8 { |
| 2360 | static_assert_uimm_bits!(IMM5, 5); | 2360 | static_assert_uimm_bits!(IMM5, 5); |
| 2361 | __lasx_xvmini_bu(a, IMM5) | 2361 | unsafe { __lasx_xvmini_bu(a, IMM5) } |
| 2362 | } | 2362 | } |
| 2363 | 2363 | ||
| 2364 | #[inline] | 2364 | #[inline] |
| 2365 | #[target_feature(enable = "lasx")] | 2365 | #[target_feature(enable = "lasx")] |
| 2366 | #[rustc_legacy_const_generics(1)] | 2366 | #[rustc_legacy_const_generics(1)] |
| 2367 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2367 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2368 | pub unsafe fn lasx_xvmini_hu<const IMM5: u32>(a: v16u16) -> v16u16 { | 2368 | pub fn lasx_xvmini_hu<const IMM5: u32>(a: v16u16) -> v16u16 { |
| 2369 | static_assert_uimm_bits!(IMM5, 5); | 2369 | static_assert_uimm_bits!(IMM5, 5); |
| 2370 | __lasx_xvmini_hu(a, IMM5) | 2370 | unsafe { __lasx_xvmini_hu(a, IMM5) } |
| 2371 | } | 2371 | } |
| 2372 | 2372 | ||
| 2373 | #[inline] | 2373 | #[inline] |
| 2374 | #[target_feature(enable = "lasx")] | 2374 | #[target_feature(enable = "lasx")] |
| 2375 | #[rustc_legacy_const_generics(1)] | 2375 | #[rustc_legacy_const_generics(1)] |
| 2376 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2376 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2377 | pub unsafe fn lasx_xvmini_wu<const IMM5: u32>(a: v8u32) -> v8u32 { | 2377 | pub fn lasx_xvmini_wu<const IMM5: u32>(a: v8u32) -> v8u32 { |
| 2378 | static_assert_uimm_bits!(IMM5, 5); | 2378 | static_assert_uimm_bits!(IMM5, 5); |
| 2379 | __lasx_xvmini_wu(a, IMM5) | 2379 | unsafe { __lasx_xvmini_wu(a, IMM5) } |
| 2380 | } | 2380 | } |
| 2381 | 2381 | ||
| 2382 | #[inline] | 2382 | #[inline] |
| 2383 | #[target_feature(enable = "lasx")] | 2383 | #[target_feature(enable = "lasx")] |
| 2384 | #[rustc_legacy_const_generics(1)] | 2384 | #[rustc_legacy_const_generics(1)] |
| 2385 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2385 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2386 | pub unsafe fn lasx_xvmini_du<const IMM5: u32>(a: v4u64) -> v4u64 { | 2386 | pub fn lasx_xvmini_du<const IMM5: u32>(a: v4u64) -> v4u64 { |
| 2387 | static_assert_uimm_bits!(IMM5, 5); | 2387 | static_assert_uimm_bits!(IMM5, 5); |
| 2388 | __lasx_xvmini_du(a, IMM5) | 2388 | unsafe { __lasx_xvmini_du(a, IMM5) } |
| 2389 | } | 2389 | } |
| 2390 | 2390 | ||
| 2391 | #[inline] | 2391 | #[inline] |
| 2392 | #[target_feature(enable = "lasx")] | 2392 | #[target_feature(enable = "lasx")] |
| 2393 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2393 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2394 | pub unsafe fn lasx_xvseq_b(a: v32i8, b: v32i8) -> v32i8 { | 2394 | pub fn lasx_xvseq_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2395 | __lasx_xvseq_b(a, b) | 2395 | unsafe { __lasx_xvseq_b(a, b) } |
| 2396 | } | 2396 | } |
| 2397 | 2397 | ||
| 2398 | #[inline] | 2398 | #[inline] |
| 2399 | #[target_feature(enable = "lasx")] | 2399 | #[target_feature(enable = "lasx")] |
| 2400 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2400 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2401 | pub unsafe fn lasx_xvseq_h(a: v16i16, b: v16i16) -> v16i16 { | 2401 | pub fn lasx_xvseq_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2402 | __lasx_xvseq_h(a, b) | 2402 | unsafe { __lasx_xvseq_h(a, b) } |
| 2403 | } | 2403 | } |
| 2404 | 2404 | ||
| 2405 | #[inline] | 2405 | #[inline] |
| 2406 | #[target_feature(enable = "lasx")] | 2406 | #[target_feature(enable = "lasx")] |
| 2407 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2407 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2408 | pub unsafe fn lasx_xvseq_w(a: v8i32, b: v8i32) -> v8i32 { | 2408 | pub fn lasx_xvseq_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2409 | __lasx_xvseq_w(a, b) | 2409 | unsafe { __lasx_xvseq_w(a, b) } |
| 2410 | } | 2410 | } |
| 2411 | 2411 | ||
| 2412 | #[inline] | 2412 | #[inline] |
| 2413 | #[target_feature(enable = "lasx")] | 2413 | #[target_feature(enable = "lasx")] |
| 2414 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2414 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2415 | pub unsafe fn lasx_xvseq_d(a: v4i64, b: v4i64) -> v4i64 { | 2415 | pub fn lasx_xvseq_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2416 | __lasx_xvseq_d(a, b) | 2416 | unsafe { __lasx_xvseq_d(a, b) } |
| 2417 | } | 2417 | } |
| 2418 | 2418 | ||
| 2419 | #[inline] | 2419 | #[inline] |
| 2420 | #[target_feature(enable = "lasx")] | 2420 | #[target_feature(enable = "lasx")] |
| 2421 | #[rustc_legacy_const_generics(1)] | 2421 | #[rustc_legacy_const_generics(1)] |
| 2422 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2422 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2423 | pub unsafe fn lasx_xvseqi_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { | 2423 | pub fn lasx_xvseqi_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { |
| 2424 | static_assert_simm_bits!(IMM_S5, 5); | 2424 | static_assert_simm_bits!(IMM_S5, 5); |
| 2425 | __lasx_xvseqi_b(a, IMM_S5) | 2425 | unsafe { __lasx_xvseqi_b(a, IMM_S5) } |
| 2426 | } | 2426 | } |
| 2427 | 2427 | ||
| 2428 | #[inline] | 2428 | #[inline] |
| 2429 | #[target_feature(enable = "lasx")] | 2429 | #[target_feature(enable = "lasx")] |
| 2430 | #[rustc_legacy_const_generics(1)] | 2430 | #[rustc_legacy_const_generics(1)] |
| 2431 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2431 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2432 | pub unsafe fn lasx_xvseqi_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { | 2432 | pub fn lasx_xvseqi_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { |
| 2433 | static_assert_simm_bits!(IMM_S5, 5); | 2433 | static_assert_simm_bits!(IMM_S5, 5); |
| 2434 | __lasx_xvseqi_h(a, IMM_S5) | 2434 | unsafe { __lasx_xvseqi_h(a, IMM_S5) } |
| 2435 | } | 2435 | } |
| 2436 | 2436 | ||
| 2437 | #[inline] | 2437 | #[inline] |
| 2438 | #[target_feature(enable = "lasx")] | 2438 | #[target_feature(enable = "lasx")] |
| 2439 | #[rustc_legacy_const_generics(1)] | 2439 | #[rustc_legacy_const_generics(1)] |
| 2440 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2440 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2441 | pub unsafe fn lasx_xvseqi_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { | 2441 | pub fn lasx_xvseqi_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { |
| 2442 | static_assert_simm_bits!(IMM_S5, 5); | 2442 | static_assert_simm_bits!(IMM_S5, 5); |
| 2443 | __lasx_xvseqi_w(a, IMM_S5) | 2443 | unsafe { __lasx_xvseqi_w(a, IMM_S5) } |
| 2444 | } | 2444 | } |
| 2445 | 2445 | ||
| 2446 | #[inline] | 2446 | #[inline] |
| 2447 | #[target_feature(enable = "lasx")] | 2447 | #[target_feature(enable = "lasx")] |
| 2448 | #[rustc_legacy_const_generics(1)] | 2448 | #[rustc_legacy_const_generics(1)] |
| 2449 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2449 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2450 | pub unsafe fn lasx_xvseqi_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { | 2450 | pub fn lasx_xvseqi_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { |
| 2451 | static_assert_simm_bits!(IMM_S5, 5); | 2451 | static_assert_simm_bits!(IMM_S5, 5); |
| 2452 | __lasx_xvseqi_d(a, IMM_S5) | 2452 | unsafe { __lasx_xvseqi_d(a, IMM_S5) } |
| 2453 | } | 2453 | } |
| 2454 | 2454 | ||
| 2455 | #[inline] | 2455 | #[inline] |
| 2456 | #[target_feature(enable = "lasx")] | 2456 | #[target_feature(enable = "lasx")] |
| 2457 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2457 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2458 | pub unsafe fn lasx_xvslt_b(a: v32i8, b: v32i8) -> v32i8 { | 2458 | pub fn lasx_xvslt_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2459 | __lasx_xvslt_b(a, b) | 2459 | unsafe { __lasx_xvslt_b(a, b) } |
| 2460 | } | 2460 | } |
| 2461 | 2461 | ||
| 2462 | #[inline] | 2462 | #[inline] |
| 2463 | #[target_feature(enable = "lasx")] | 2463 | #[target_feature(enable = "lasx")] |
| 2464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2465 | pub unsafe fn lasx_xvslt_h(a: v16i16, b: v16i16) -> v16i16 { | 2465 | pub fn lasx_xvslt_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2466 | __lasx_xvslt_h(a, b) | 2466 | unsafe { __lasx_xvslt_h(a, b) } |
| 2467 | } | 2467 | } |
| 2468 | 2468 | ||
| 2469 | #[inline] | 2469 | #[inline] |
| 2470 | #[target_feature(enable = "lasx")] | 2470 | #[target_feature(enable = "lasx")] |
| 2471 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2471 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2472 | pub unsafe fn lasx_xvslt_w(a: v8i32, b: v8i32) -> v8i32 { | 2472 | pub fn lasx_xvslt_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2473 | __lasx_xvslt_w(a, b) | 2473 | unsafe { __lasx_xvslt_w(a, b) } |
| 2474 | } | 2474 | } |
| 2475 | 2475 | ||
| 2476 | #[inline] | 2476 | #[inline] |
| 2477 | #[target_feature(enable = "lasx")] | 2477 | #[target_feature(enable = "lasx")] |
| 2478 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2478 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2479 | pub unsafe fn lasx_xvslt_d(a: v4i64, b: v4i64) -> v4i64 { | 2479 | pub fn lasx_xvslt_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2480 | __lasx_xvslt_d(a, b) | 2480 | unsafe { __lasx_xvslt_d(a, b) } |
| 2481 | } | 2481 | } |
| 2482 | 2482 | ||
| 2483 | #[inline] | 2483 | #[inline] |
| 2484 | #[target_feature(enable = "lasx")] | 2484 | #[target_feature(enable = "lasx")] |
| 2485 | #[rustc_legacy_const_generics(1)] | 2485 | #[rustc_legacy_const_generics(1)] |
| 2486 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2486 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2487 | pub unsafe fn lasx_xvslti_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { | 2487 | pub fn lasx_xvslti_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { |
| 2488 | static_assert_simm_bits!(IMM_S5, 5); | 2488 | static_assert_simm_bits!(IMM_S5, 5); |
| 2489 | __lasx_xvslti_b(a, IMM_S5) | 2489 | unsafe { __lasx_xvslti_b(a, IMM_S5) } |
| 2490 | } | 2490 | } |
| 2491 | 2491 | ||
| 2492 | #[inline] | 2492 | #[inline] |
| 2493 | #[target_feature(enable = "lasx")] | 2493 | #[target_feature(enable = "lasx")] |
| 2494 | #[rustc_legacy_const_generics(1)] | 2494 | #[rustc_legacy_const_generics(1)] |
| 2495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2496 | pub unsafe fn lasx_xvslti_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { | 2496 | pub fn lasx_xvslti_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { |
| 2497 | static_assert_simm_bits!(IMM_S5, 5); | 2497 | static_assert_simm_bits!(IMM_S5, 5); |
| 2498 | __lasx_xvslti_h(a, IMM_S5) | 2498 | unsafe { __lasx_xvslti_h(a, IMM_S5) } |
| 2499 | } | 2499 | } |
| 2500 | 2500 | ||
| 2501 | #[inline] | 2501 | #[inline] |
| 2502 | #[target_feature(enable = "lasx")] | 2502 | #[target_feature(enable = "lasx")] |
| 2503 | #[rustc_legacy_const_generics(1)] | 2503 | #[rustc_legacy_const_generics(1)] |
| 2504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2505 | pub unsafe fn lasx_xvslti_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { | 2505 | pub fn lasx_xvslti_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { |
| 2506 | static_assert_simm_bits!(IMM_S5, 5); | 2506 | static_assert_simm_bits!(IMM_S5, 5); |
| 2507 | __lasx_xvslti_w(a, IMM_S5) | 2507 | unsafe { __lasx_xvslti_w(a, IMM_S5) } |
| 2508 | } | 2508 | } |
| 2509 | 2509 | ||
| 2510 | #[inline] | 2510 | #[inline] |
| 2511 | #[target_feature(enable = "lasx")] | 2511 | #[target_feature(enable = "lasx")] |
| 2512 | #[rustc_legacy_const_generics(1)] | 2512 | #[rustc_legacy_const_generics(1)] |
| 2513 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2513 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2514 | pub unsafe fn lasx_xvslti_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { | 2514 | pub fn lasx_xvslti_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { |
| 2515 | static_assert_simm_bits!(IMM_S5, 5); | 2515 | static_assert_simm_bits!(IMM_S5, 5); |
| 2516 | __lasx_xvslti_d(a, IMM_S5) | 2516 | unsafe { __lasx_xvslti_d(a, IMM_S5) } |
| 2517 | } | 2517 | } |
| 2518 | 2518 | ||
| 2519 | #[inline] | 2519 | #[inline] |
| 2520 | #[target_feature(enable = "lasx")] | 2520 | #[target_feature(enable = "lasx")] |
| 2521 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2521 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2522 | pub unsafe fn lasx_xvslt_bu(a: v32u8, b: v32u8) -> v32i8 { | 2522 | pub fn lasx_xvslt_bu(a: v32u8, b: v32u8) -> v32i8 { |
| 2523 | __lasx_xvslt_bu(a, b) | 2523 | unsafe { __lasx_xvslt_bu(a, b) } |
| 2524 | } | 2524 | } |
| 2525 | 2525 | ||
| 2526 | #[inline] | 2526 | #[inline] |
| 2527 | #[target_feature(enable = "lasx")] | 2527 | #[target_feature(enable = "lasx")] |
| 2528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2529 | pub unsafe fn lasx_xvslt_hu(a: v16u16, b: v16u16) -> v16i16 { | 2529 | pub fn lasx_xvslt_hu(a: v16u16, b: v16u16) -> v16i16 { |
| 2530 | __lasx_xvslt_hu(a, b) | 2530 | unsafe { __lasx_xvslt_hu(a, b) } |
| 2531 | } | 2531 | } |
| 2532 | 2532 | ||
| 2533 | #[inline] | 2533 | #[inline] |
| 2534 | #[target_feature(enable = "lasx")] | 2534 | #[target_feature(enable = "lasx")] |
| 2535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2536 | pub unsafe fn lasx_xvslt_wu(a: v8u32, b: v8u32) -> v8i32 { | 2536 | pub fn lasx_xvslt_wu(a: v8u32, b: v8u32) -> v8i32 { |
| 2537 | __lasx_xvslt_wu(a, b) | 2537 | unsafe { __lasx_xvslt_wu(a, b) } |
| 2538 | } | 2538 | } |
| 2539 | 2539 | ||
| 2540 | #[inline] | 2540 | #[inline] |
| 2541 | #[target_feature(enable = "lasx")] | 2541 | #[target_feature(enable = "lasx")] |
| 2542 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2542 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2543 | pub unsafe fn lasx_xvslt_du(a: v4u64, b: v4u64) -> v4i64 { | 2543 | pub fn lasx_xvslt_du(a: v4u64, b: v4u64) -> v4i64 { |
| 2544 | __lasx_xvslt_du(a, b) | 2544 | unsafe { __lasx_xvslt_du(a, b) } |
| 2545 | } | 2545 | } |
| 2546 | 2546 | ||
| 2547 | #[inline] | 2547 | #[inline] |
| 2548 | #[target_feature(enable = "lasx")] | 2548 | #[target_feature(enable = "lasx")] |
| 2549 | #[rustc_legacy_const_generics(1)] | 2549 | #[rustc_legacy_const_generics(1)] |
| 2550 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2550 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2551 | pub unsafe fn lasx_xvslti_bu<const IMM5: u32>(a: v32u8) -> v32i8 { | 2551 | pub fn lasx_xvslti_bu<const IMM5: u32>(a: v32u8) -> v32i8 { |
| 2552 | static_assert_uimm_bits!(IMM5, 5); | 2552 | static_assert_uimm_bits!(IMM5, 5); |
| 2553 | __lasx_xvslti_bu(a, IMM5) | 2553 | unsafe { __lasx_xvslti_bu(a, IMM5) } |
| 2554 | } | 2554 | } |
| 2555 | 2555 | ||
| 2556 | #[inline] | 2556 | #[inline] |
| 2557 | #[target_feature(enable = "lasx")] | 2557 | #[target_feature(enable = "lasx")] |
| 2558 | #[rustc_legacy_const_generics(1)] | 2558 | #[rustc_legacy_const_generics(1)] |
| 2559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2560 | pub unsafe fn lasx_xvslti_hu<const IMM5: u32>(a: v16u16) -> v16i16 { | 2560 | pub fn lasx_xvslti_hu<const IMM5: u32>(a: v16u16) -> v16i16 { |
| 2561 | static_assert_uimm_bits!(IMM5, 5); | 2561 | static_assert_uimm_bits!(IMM5, 5); |
| 2562 | __lasx_xvslti_hu(a, IMM5) | 2562 | unsafe { __lasx_xvslti_hu(a, IMM5) } |
| 2563 | } | 2563 | } |
| 2564 | 2564 | ||
| 2565 | #[inline] | 2565 | #[inline] |
| 2566 | #[target_feature(enable = "lasx")] | 2566 | #[target_feature(enable = "lasx")] |
| 2567 | #[rustc_legacy_const_generics(1)] | 2567 | #[rustc_legacy_const_generics(1)] |
| 2568 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2568 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2569 | pub unsafe fn lasx_xvslti_wu<const IMM5: u32>(a: v8u32) -> v8i32 { | 2569 | pub fn lasx_xvslti_wu<const IMM5: u32>(a: v8u32) -> v8i32 { |
| 2570 | static_assert_uimm_bits!(IMM5, 5); | 2570 | static_assert_uimm_bits!(IMM5, 5); |
| 2571 | __lasx_xvslti_wu(a, IMM5) | 2571 | unsafe { __lasx_xvslti_wu(a, IMM5) } |
| 2572 | } | 2572 | } |
| 2573 | 2573 | ||
| 2574 | #[inline] | 2574 | #[inline] |
| 2575 | #[target_feature(enable = "lasx")] | 2575 | #[target_feature(enable = "lasx")] |
| 2576 | #[rustc_legacy_const_generics(1)] | 2576 | #[rustc_legacy_const_generics(1)] |
| 2577 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2577 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2578 | pub unsafe fn lasx_xvslti_du<const IMM5: u32>(a: v4u64) -> v4i64 { | 2578 | pub fn lasx_xvslti_du<const IMM5: u32>(a: v4u64) -> v4i64 { |
| 2579 | static_assert_uimm_bits!(IMM5, 5); | 2579 | static_assert_uimm_bits!(IMM5, 5); |
| 2580 | __lasx_xvslti_du(a, IMM5) | 2580 | unsafe { __lasx_xvslti_du(a, IMM5) } |
| 2581 | } | 2581 | } |
| 2582 | 2582 | ||
| 2583 | #[inline] | 2583 | #[inline] |
| 2584 | #[target_feature(enable = "lasx")] | 2584 | #[target_feature(enable = "lasx")] |
| 2585 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2585 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2586 | pub unsafe fn lasx_xvsle_b(a: v32i8, b: v32i8) -> v32i8 { | 2586 | pub fn lasx_xvsle_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2587 | __lasx_xvsle_b(a, b) | 2587 | unsafe { __lasx_xvsle_b(a, b) } |
| 2588 | } | 2588 | } |
| 2589 | 2589 | ||
| 2590 | #[inline] | 2590 | #[inline] |
| 2591 | #[target_feature(enable = "lasx")] | 2591 | #[target_feature(enable = "lasx")] |
| 2592 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2592 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2593 | pub unsafe fn lasx_xvsle_h(a: v16i16, b: v16i16) -> v16i16 { | 2593 | pub fn lasx_xvsle_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2594 | __lasx_xvsle_h(a, b) | 2594 | unsafe { __lasx_xvsle_h(a, b) } |
| 2595 | } | 2595 | } |
| 2596 | 2596 | ||
| 2597 | #[inline] | 2597 | #[inline] |
| 2598 | #[target_feature(enable = "lasx")] | 2598 | #[target_feature(enable = "lasx")] |
| 2599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2600 | pub unsafe fn lasx_xvsle_w(a: v8i32, b: v8i32) -> v8i32 { | 2600 | pub fn lasx_xvsle_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2601 | __lasx_xvsle_w(a, b) | 2601 | unsafe { __lasx_xvsle_w(a, b) } |
| 2602 | } | 2602 | } |
| 2603 | 2603 | ||
| 2604 | #[inline] | 2604 | #[inline] |
| 2605 | #[target_feature(enable = "lasx")] | 2605 | #[target_feature(enable = "lasx")] |
| 2606 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2606 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2607 | pub unsafe fn lasx_xvsle_d(a: v4i64, b: v4i64) -> v4i64 { | 2607 | pub fn lasx_xvsle_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2608 | __lasx_xvsle_d(a, b) | 2608 | unsafe { __lasx_xvsle_d(a, b) } |
| 2609 | } | 2609 | } |
| 2610 | 2610 | ||
| 2611 | #[inline] | 2611 | #[inline] |
| 2612 | #[target_feature(enable = "lasx")] | 2612 | #[target_feature(enable = "lasx")] |
| 2613 | #[rustc_legacy_const_generics(1)] | 2613 | #[rustc_legacy_const_generics(1)] |
| 2614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2615 | pub unsafe fn lasx_xvslei_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { | 2615 | pub fn lasx_xvslei_b<const IMM_S5: i32>(a: v32i8) -> v32i8 { |
| 2616 | static_assert_simm_bits!(IMM_S5, 5); | 2616 | static_assert_simm_bits!(IMM_S5, 5); |
| 2617 | __lasx_xvslei_b(a, IMM_S5) | 2617 | unsafe { __lasx_xvslei_b(a, IMM_S5) } |
| 2618 | } | 2618 | } |
| 2619 | 2619 | ||
| 2620 | #[inline] | 2620 | #[inline] |
| 2621 | #[target_feature(enable = "lasx")] | 2621 | #[target_feature(enable = "lasx")] |
| 2622 | #[rustc_legacy_const_generics(1)] | 2622 | #[rustc_legacy_const_generics(1)] |
| 2623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2624 | pub unsafe fn lasx_xvslei_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { | 2624 | pub fn lasx_xvslei_h<const IMM_S5: i32>(a: v16i16) -> v16i16 { |
| 2625 | static_assert_simm_bits!(IMM_S5, 5); | 2625 | static_assert_simm_bits!(IMM_S5, 5); |
| 2626 | __lasx_xvslei_h(a, IMM_S5) | 2626 | unsafe { __lasx_xvslei_h(a, IMM_S5) } |
| 2627 | } | 2627 | } |
| 2628 | 2628 | ||
| 2629 | #[inline] | 2629 | #[inline] |
| 2630 | #[target_feature(enable = "lasx")] | 2630 | #[target_feature(enable = "lasx")] |
| 2631 | #[rustc_legacy_const_generics(1)] | 2631 | #[rustc_legacy_const_generics(1)] |
| 2632 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2632 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2633 | pub unsafe fn lasx_xvslei_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { | 2633 | pub fn lasx_xvslei_w<const IMM_S5: i32>(a: v8i32) -> v8i32 { |
| 2634 | static_assert_simm_bits!(IMM_S5, 5); | 2634 | static_assert_simm_bits!(IMM_S5, 5); |
| 2635 | __lasx_xvslei_w(a, IMM_S5) | 2635 | unsafe { __lasx_xvslei_w(a, IMM_S5) } |
| 2636 | } | 2636 | } |
| 2637 | 2637 | ||
| 2638 | #[inline] | 2638 | #[inline] |
| 2639 | #[target_feature(enable = "lasx")] | 2639 | #[target_feature(enable = "lasx")] |
| 2640 | #[rustc_legacy_const_generics(1)] | 2640 | #[rustc_legacy_const_generics(1)] |
| 2641 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2641 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2642 | pub unsafe fn lasx_xvslei_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { | 2642 | pub fn lasx_xvslei_d<const IMM_S5: i32>(a: v4i64) -> v4i64 { |
| 2643 | static_assert_simm_bits!(IMM_S5, 5); | 2643 | static_assert_simm_bits!(IMM_S5, 5); |
| 2644 | __lasx_xvslei_d(a, IMM_S5) | 2644 | unsafe { __lasx_xvslei_d(a, IMM_S5) } |
| 2645 | } | 2645 | } |
| 2646 | 2646 | ||
| 2647 | #[inline] | 2647 | #[inline] |
| 2648 | #[target_feature(enable = "lasx")] | 2648 | #[target_feature(enable = "lasx")] |
| 2649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2650 | pub unsafe fn lasx_xvsle_bu(a: v32u8, b: v32u8) -> v32i8 { | 2650 | pub fn lasx_xvsle_bu(a: v32u8, b: v32u8) -> v32i8 { |
| 2651 | __lasx_xvsle_bu(a, b) | 2651 | unsafe { __lasx_xvsle_bu(a, b) } |
| 2652 | } | 2652 | } |
| 2653 | 2653 | ||
| 2654 | #[inline] | 2654 | #[inline] |
| 2655 | #[target_feature(enable = "lasx")] | 2655 | #[target_feature(enable = "lasx")] |
| 2656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2657 | pub unsafe fn lasx_xvsle_hu(a: v16u16, b: v16u16) -> v16i16 { | 2657 | pub fn lasx_xvsle_hu(a: v16u16, b: v16u16) -> v16i16 { |
| 2658 | __lasx_xvsle_hu(a, b) | 2658 | unsafe { __lasx_xvsle_hu(a, b) } |
| 2659 | } | 2659 | } |
| 2660 | 2660 | ||
| 2661 | #[inline] | 2661 | #[inline] |
| 2662 | #[target_feature(enable = "lasx")] | 2662 | #[target_feature(enable = "lasx")] |
| 2663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2664 | pub unsafe fn lasx_xvsle_wu(a: v8u32, b: v8u32) -> v8i32 { | 2664 | pub fn lasx_xvsle_wu(a: v8u32, b: v8u32) -> v8i32 { |
| 2665 | __lasx_xvsle_wu(a, b) | 2665 | unsafe { __lasx_xvsle_wu(a, b) } |
| 2666 | } | 2666 | } |
| 2667 | 2667 | ||
| 2668 | #[inline] | 2668 | #[inline] |
| 2669 | #[target_feature(enable = "lasx")] | 2669 | #[target_feature(enable = "lasx")] |
| 2670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2671 | pub unsafe fn lasx_xvsle_du(a: v4u64, b: v4u64) -> v4i64 { | 2671 | pub fn lasx_xvsle_du(a: v4u64, b: v4u64) -> v4i64 { |
| 2672 | __lasx_xvsle_du(a, b) | 2672 | unsafe { __lasx_xvsle_du(a, b) } |
| 2673 | } | 2673 | } |
| 2674 | 2674 | ||
| 2675 | #[inline] | 2675 | #[inline] |
| 2676 | #[target_feature(enable = "lasx")] | 2676 | #[target_feature(enable = "lasx")] |
| 2677 | #[rustc_legacy_const_generics(1)] | 2677 | #[rustc_legacy_const_generics(1)] |
| 2678 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2678 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2679 | pub unsafe fn lasx_xvslei_bu<const IMM5: u32>(a: v32u8) -> v32i8 { | 2679 | pub fn lasx_xvslei_bu<const IMM5: u32>(a: v32u8) -> v32i8 { |
| 2680 | static_assert_uimm_bits!(IMM5, 5); | 2680 | static_assert_uimm_bits!(IMM5, 5); |
| 2681 | __lasx_xvslei_bu(a, IMM5) | 2681 | unsafe { __lasx_xvslei_bu(a, IMM5) } |
| 2682 | } | 2682 | } |
| 2683 | 2683 | ||
| 2684 | #[inline] | 2684 | #[inline] |
| 2685 | #[target_feature(enable = "lasx")] | 2685 | #[target_feature(enable = "lasx")] |
| 2686 | #[rustc_legacy_const_generics(1)] | 2686 | #[rustc_legacy_const_generics(1)] |
| 2687 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2687 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2688 | pub unsafe fn lasx_xvslei_hu<const IMM5: u32>(a: v16u16) -> v16i16 { | 2688 | pub fn lasx_xvslei_hu<const IMM5: u32>(a: v16u16) -> v16i16 { |
| 2689 | static_assert_uimm_bits!(IMM5, 5); | 2689 | static_assert_uimm_bits!(IMM5, 5); |
| 2690 | __lasx_xvslei_hu(a, IMM5) | 2690 | unsafe { __lasx_xvslei_hu(a, IMM5) } |
| 2691 | } | 2691 | } |
| 2692 | 2692 | ||
| 2693 | #[inline] | 2693 | #[inline] |
| 2694 | #[target_feature(enable = "lasx")] | 2694 | #[target_feature(enable = "lasx")] |
| 2695 | #[rustc_legacy_const_generics(1)] | 2695 | #[rustc_legacy_const_generics(1)] |
| 2696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2697 | pub unsafe fn lasx_xvslei_wu<const IMM5: u32>(a: v8u32) -> v8i32 { | 2697 | pub fn lasx_xvslei_wu<const IMM5: u32>(a: v8u32) -> v8i32 { |
| 2698 | static_assert_uimm_bits!(IMM5, 5); | 2698 | static_assert_uimm_bits!(IMM5, 5); |
| 2699 | __lasx_xvslei_wu(a, IMM5) | 2699 | unsafe { __lasx_xvslei_wu(a, IMM5) } |
| 2700 | } | 2700 | } |
| 2701 | 2701 | ||
| 2702 | #[inline] | 2702 | #[inline] |
| 2703 | #[target_feature(enable = "lasx")] | 2703 | #[target_feature(enable = "lasx")] |
| 2704 | #[rustc_legacy_const_generics(1)] | 2704 | #[rustc_legacy_const_generics(1)] |
| 2705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2706 | pub unsafe fn lasx_xvslei_du<const IMM5: u32>(a: v4u64) -> v4i64 { | 2706 | pub fn lasx_xvslei_du<const IMM5: u32>(a: v4u64) -> v4i64 { |
| 2707 | static_assert_uimm_bits!(IMM5, 5); | 2707 | static_assert_uimm_bits!(IMM5, 5); |
| 2708 | __lasx_xvslei_du(a, IMM5) | 2708 | unsafe { __lasx_xvslei_du(a, IMM5) } |
| 2709 | } | 2709 | } |
| 2710 | 2710 | ||
| 2711 | #[inline] | 2711 | #[inline] |
| 2712 | #[target_feature(enable = "lasx")] | 2712 | #[target_feature(enable = "lasx")] |
| 2713 | #[rustc_legacy_const_generics(1)] | 2713 | #[rustc_legacy_const_generics(1)] |
| 2714 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2714 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2715 | pub unsafe fn lasx_xvsat_b<const IMM3: u32>(a: v32i8) -> v32i8 { | 2715 | pub fn lasx_xvsat_b<const IMM3: u32>(a: v32i8) -> v32i8 { |
| 2716 | static_assert_uimm_bits!(IMM3, 3); | 2716 | static_assert_uimm_bits!(IMM3, 3); |
| 2717 | __lasx_xvsat_b(a, IMM3) | 2717 | unsafe { __lasx_xvsat_b(a, IMM3) } |
| 2718 | } | 2718 | } |
| 2719 | 2719 | ||
| 2720 | #[inline] | 2720 | #[inline] |
| 2721 | #[target_feature(enable = "lasx")] | 2721 | #[target_feature(enable = "lasx")] |
| 2722 | #[rustc_legacy_const_generics(1)] | 2722 | #[rustc_legacy_const_generics(1)] |
| 2723 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2723 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2724 | pub unsafe fn lasx_xvsat_h<const IMM4: u32>(a: v16i16) -> v16i16 { | 2724 | pub fn lasx_xvsat_h<const IMM4: u32>(a: v16i16) -> v16i16 { |
| 2725 | static_assert_uimm_bits!(IMM4, 4); | 2725 | static_assert_uimm_bits!(IMM4, 4); |
| 2726 | __lasx_xvsat_h(a, IMM4) | 2726 | unsafe { __lasx_xvsat_h(a, IMM4) } |
| 2727 | } | 2727 | } |
| 2728 | 2728 | ||
| 2729 | #[inline] | 2729 | #[inline] |
| 2730 | #[target_feature(enable = "lasx")] | 2730 | #[target_feature(enable = "lasx")] |
| 2731 | #[rustc_legacy_const_generics(1)] | 2731 | #[rustc_legacy_const_generics(1)] |
| 2732 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2732 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2733 | pub unsafe fn lasx_xvsat_w<const IMM5: u32>(a: v8i32) -> v8i32 { | 2733 | pub fn lasx_xvsat_w<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 2734 | static_assert_uimm_bits!(IMM5, 5); | 2734 | static_assert_uimm_bits!(IMM5, 5); |
| 2735 | __lasx_xvsat_w(a, IMM5) | 2735 | unsafe { __lasx_xvsat_w(a, IMM5) } |
| 2736 | } | 2736 | } |
| 2737 | 2737 | ||
| 2738 | #[inline] | 2738 | #[inline] |
| 2739 | #[target_feature(enable = "lasx")] | 2739 | #[target_feature(enable = "lasx")] |
| 2740 | #[rustc_legacy_const_generics(1)] | 2740 | #[rustc_legacy_const_generics(1)] |
| 2741 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2741 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2742 | pub unsafe fn lasx_xvsat_d<const IMM6: u32>(a: v4i64) -> v4i64 { | 2742 | pub fn lasx_xvsat_d<const IMM6: u32>(a: v4i64) -> v4i64 { |
| 2743 | static_assert_uimm_bits!(IMM6, 6); | 2743 | static_assert_uimm_bits!(IMM6, 6); |
| 2744 | __lasx_xvsat_d(a, IMM6) | 2744 | unsafe { __lasx_xvsat_d(a, IMM6) } |
| 2745 | } | 2745 | } |
| 2746 | 2746 | ||
| 2747 | #[inline] | 2747 | #[inline] |
| 2748 | #[target_feature(enable = "lasx")] | 2748 | #[target_feature(enable = "lasx")] |
| 2749 | #[rustc_legacy_const_generics(1)] | 2749 | #[rustc_legacy_const_generics(1)] |
| 2750 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2750 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2751 | pub unsafe fn lasx_xvsat_bu<const IMM3: u32>(a: v32u8) -> v32u8 { | 2751 | pub fn lasx_xvsat_bu<const IMM3: u32>(a: v32u8) -> v32u8 { |
| 2752 | static_assert_uimm_bits!(IMM3, 3); | 2752 | static_assert_uimm_bits!(IMM3, 3); |
| 2753 | __lasx_xvsat_bu(a, IMM3) | 2753 | unsafe { __lasx_xvsat_bu(a, IMM3) } |
| 2754 | } | 2754 | } |
| 2755 | 2755 | ||
| 2756 | #[inline] | 2756 | #[inline] |
| 2757 | #[target_feature(enable = "lasx")] | 2757 | #[target_feature(enable = "lasx")] |
| 2758 | #[rustc_legacy_const_generics(1)] | 2758 | #[rustc_legacy_const_generics(1)] |
| 2759 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2759 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2760 | pub unsafe fn lasx_xvsat_hu<const IMM4: u32>(a: v16u16) -> v16u16 { | 2760 | pub fn lasx_xvsat_hu<const IMM4: u32>(a: v16u16) -> v16u16 { |
| 2761 | static_assert_uimm_bits!(IMM4, 4); | 2761 | static_assert_uimm_bits!(IMM4, 4); |
| 2762 | __lasx_xvsat_hu(a, IMM4) | 2762 | unsafe { __lasx_xvsat_hu(a, IMM4) } |
| 2763 | } | 2763 | } |
| 2764 | 2764 | ||
| 2765 | #[inline] | 2765 | #[inline] |
| 2766 | #[target_feature(enable = "lasx")] | 2766 | #[target_feature(enable = "lasx")] |
| 2767 | #[rustc_legacy_const_generics(1)] | 2767 | #[rustc_legacy_const_generics(1)] |
| 2768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2769 | pub unsafe fn lasx_xvsat_wu<const IMM5: u32>(a: v8u32) -> v8u32 { | 2769 | pub fn lasx_xvsat_wu<const IMM5: u32>(a: v8u32) -> v8u32 { |
| 2770 | static_assert_uimm_bits!(IMM5, 5); | 2770 | static_assert_uimm_bits!(IMM5, 5); |
| 2771 | __lasx_xvsat_wu(a, IMM5) | 2771 | unsafe { __lasx_xvsat_wu(a, IMM5) } |
| 2772 | } | 2772 | } |
| 2773 | 2773 | ||
| 2774 | #[inline] | 2774 | #[inline] |
| 2775 | #[target_feature(enable = "lasx")] | 2775 | #[target_feature(enable = "lasx")] |
| 2776 | #[rustc_legacy_const_generics(1)] | 2776 | #[rustc_legacy_const_generics(1)] |
| 2777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2778 | pub unsafe fn lasx_xvsat_du<const IMM6: u32>(a: v4u64) -> v4u64 { | 2778 | pub fn lasx_xvsat_du<const IMM6: u32>(a: v4u64) -> v4u64 { |
| 2779 | static_assert_uimm_bits!(IMM6, 6); | 2779 | static_assert_uimm_bits!(IMM6, 6); |
| 2780 | __lasx_xvsat_du(a, IMM6) | 2780 | unsafe { __lasx_xvsat_du(a, IMM6) } |
| 2781 | } | 2781 | } |
| 2782 | 2782 | ||
| 2783 | #[inline] | 2783 | #[inline] |
| 2784 | #[target_feature(enable = "lasx")] | 2784 | #[target_feature(enable = "lasx")] |
| 2785 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2785 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2786 | pub unsafe fn lasx_xvadda_b(a: v32i8, b: v32i8) -> v32i8 { | 2786 | pub fn lasx_xvadda_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2787 | __lasx_xvadda_b(a, b) | 2787 | unsafe { __lasx_xvadda_b(a, b) } |
| 2788 | } | 2788 | } |
| 2789 | 2789 | ||
| 2790 | #[inline] | 2790 | #[inline] |
| 2791 | #[target_feature(enable = "lasx")] | 2791 | #[target_feature(enable = "lasx")] |
| 2792 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2792 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2793 | pub unsafe fn lasx_xvadda_h(a: v16i16, b: v16i16) -> v16i16 { | 2793 | pub fn lasx_xvadda_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2794 | __lasx_xvadda_h(a, b) | 2794 | unsafe { __lasx_xvadda_h(a, b) } |
| 2795 | } | 2795 | } |
| 2796 | 2796 | ||
| 2797 | #[inline] | 2797 | #[inline] |
| 2798 | #[target_feature(enable = "lasx")] | 2798 | #[target_feature(enable = "lasx")] |
| 2799 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2799 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2800 | pub unsafe fn lasx_xvadda_w(a: v8i32, b: v8i32) -> v8i32 { | 2800 | pub fn lasx_xvadda_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2801 | __lasx_xvadda_w(a, b) | 2801 | unsafe { __lasx_xvadda_w(a, b) } |
| 2802 | } | 2802 | } |
| 2803 | 2803 | ||
| 2804 | #[inline] | 2804 | #[inline] |
| 2805 | #[target_feature(enable = "lasx")] | 2805 | #[target_feature(enable = "lasx")] |
| 2806 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2806 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2807 | pub unsafe fn lasx_xvadda_d(a: v4i64, b: v4i64) -> v4i64 { | 2807 | pub fn lasx_xvadda_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2808 | __lasx_xvadda_d(a, b) | 2808 | unsafe { __lasx_xvadda_d(a, b) } |
| 2809 | } | 2809 | } |
| 2810 | 2810 | ||
| 2811 | #[inline] | 2811 | #[inline] |
| 2812 | #[target_feature(enable = "lasx")] | 2812 | #[target_feature(enable = "lasx")] |
| 2813 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2813 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2814 | pub unsafe fn lasx_xvsadd_b(a: v32i8, b: v32i8) -> v32i8 { | 2814 | pub fn lasx_xvsadd_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2815 | __lasx_xvsadd_b(a, b) | 2815 | unsafe { __lasx_xvsadd_b(a, b) } |
| 2816 | } | 2816 | } |
| 2817 | 2817 | ||
| 2818 | #[inline] | 2818 | #[inline] |
| 2819 | #[target_feature(enable = "lasx")] | 2819 | #[target_feature(enable = "lasx")] |
| 2820 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2820 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2821 | pub unsafe fn lasx_xvsadd_h(a: v16i16, b: v16i16) -> v16i16 { | 2821 | pub fn lasx_xvsadd_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2822 | __lasx_xvsadd_h(a, b) | 2822 | unsafe { __lasx_xvsadd_h(a, b) } |
| 2823 | } | 2823 | } |
| 2824 | 2824 | ||
| 2825 | #[inline] | 2825 | #[inline] |
| 2826 | #[target_feature(enable = "lasx")] | 2826 | #[target_feature(enable = "lasx")] |
| 2827 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2827 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2828 | pub unsafe fn lasx_xvsadd_w(a: v8i32, b: v8i32) -> v8i32 { | 2828 | pub fn lasx_xvsadd_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2829 | __lasx_xvsadd_w(a, b) | 2829 | unsafe { __lasx_xvsadd_w(a, b) } |
| 2830 | } | 2830 | } |
| 2831 | 2831 | ||
| 2832 | #[inline] | 2832 | #[inline] |
| 2833 | #[target_feature(enable = "lasx")] | 2833 | #[target_feature(enable = "lasx")] |
| 2834 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2834 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2835 | pub unsafe fn lasx_xvsadd_d(a: v4i64, b: v4i64) -> v4i64 { | 2835 | pub fn lasx_xvsadd_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2836 | __lasx_xvsadd_d(a, b) | 2836 | unsafe { __lasx_xvsadd_d(a, b) } |
| 2837 | } | 2837 | } |
| 2838 | 2838 | ||
| 2839 | #[inline] | 2839 | #[inline] |
| 2840 | #[target_feature(enable = "lasx")] | 2840 | #[target_feature(enable = "lasx")] |
| 2841 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2841 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2842 | pub unsafe fn lasx_xvsadd_bu(a: v32u8, b: v32u8) -> v32u8 { | 2842 | pub fn lasx_xvsadd_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 2843 | __lasx_xvsadd_bu(a, b) | 2843 | unsafe { __lasx_xvsadd_bu(a, b) } |
| 2844 | } | 2844 | } |
| 2845 | 2845 | ||
| 2846 | #[inline] | 2846 | #[inline] |
| 2847 | #[target_feature(enable = "lasx")] | 2847 | #[target_feature(enable = "lasx")] |
| 2848 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2848 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2849 | pub unsafe fn lasx_xvsadd_hu(a: v16u16, b: v16u16) -> v16u16 { | 2849 | pub fn lasx_xvsadd_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 2850 | __lasx_xvsadd_hu(a, b) | 2850 | unsafe { __lasx_xvsadd_hu(a, b) } |
| 2851 | } | 2851 | } |
| 2852 | 2852 | ||
| 2853 | #[inline] | 2853 | #[inline] |
| 2854 | #[target_feature(enable = "lasx")] | 2854 | #[target_feature(enable = "lasx")] |
| 2855 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2855 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2856 | pub unsafe fn lasx_xvsadd_wu(a: v8u32, b: v8u32) -> v8u32 { | 2856 | pub fn lasx_xvsadd_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 2857 | __lasx_xvsadd_wu(a, b) | 2857 | unsafe { __lasx_xvsadd_wu(a, b) } |
| 2858 | } | 2858 | } |
| 2859 | 2859 | ||
| 2860 | #[inline] | 2860 | #[inline] |
| 2861 | #[target_feature(enable = "lasx")] | 2861 | #[target_feature(enable = "lasx")] |
| 2862 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2862 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2863 | pub unsafe fn lasx_xvsadd_du(a: v4u64, b: v4u64) -> v4u64 { | 2863 | pub fn lasx_xvsadd_du(a: v4u64, b: v4u64) -> v4u64 { |
| 2864 | __lasx_xvsadd_du(a, b) | 2864 | unsafe { __lasx_xvsadd_du(a, b) } |
| 2865 | } | 2865 | } |
| 2866 | 2866 | ||
| 2867 | #[inline] | 2867 | #[inline] |
| 2868 | #[target_feature(enable = "lasx")] | 2868 | #[target_feature(enable = "lasx")] |
| 2869 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2869 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2870 | pub unsafe fn lasx_xvavg_b(a: v32i8, b: v32i8) -> v32i8 { | 2870 | pub fn lasx_xvavg_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2871 | __lasx_xvavg_b(a, b) | 2871 | unsafe { __lasx_xvavg_b(a, b) } |
| 2872 | } | 2872 | } |
| 2873 | 2873 | ||
| 2874 | #[inline] | 2874 | #[inline] |
| 2875 | #[target_feature(enable = "lasx")] | 2875 | #[target_feature(enable = "lasx")] |
| 2876 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2876 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2877 | pub unsafe fn lasx_xvavg_h(a: v16i16, b: v16i16) -> v16i16 { | 2877 | pub fn lasx_xvavg_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2878 | __lasx_xvavg_h(a, b) | 2878 | unsafe { __lasx_xvavg_h(a, b) } |
| 2879 | } | 2879 | } |
| 2880 | 2880 | ||
| 2881 | #[inline] | 2881 | #[inline] |
| 2882 | #[target_feature(enable = "lasx")] | 2882 | #[target_feature(enable = "lasx")] |
| 2883 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2883 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2884 | pub unsafe fn lasx_xvavg_w(a: v8i32, b: v8i32) -> v8i32 { | 2884 | pub fn lasx_xvavg_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2885 | __lasx_xvavg_w(a, b) | 2885 | unsafe { __lasx_xvavg_w(a, b) } |
| 2886 | } | 2886 | } |
| 2887 | 2887 | ||
| 2888 | #[inline] | 2888 | #[inline] |
| 2889 | #[target_feature(enable = "lasx")] | 2889 | #[target_feature(enable = "lasx")] |
| 2890 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2890 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2891 | pub unsafe fn lasx_xvavg_d(a: v4i64, b: v4i64) -> v4i64 { | 2891 | pub fn lasx_xvavg_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2892 | __lasx_xvavg_d(a, b) | 2892 | unsafe { __lasx_xvavg_d(a, b) } |
| 2893 | } | 2893 | } |
| 2894 | 2894 | ||
| 2895 | #[inline] | 2895 | #[inline] |
| 2896 | #[target_feature(enable = "lasx")] | 2896 | #[target_feature(enable = "lasx")] |
| 2897 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2897 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2898 | pub unsafe fn lasx_xvavg_bu(a: v32u8, b: v32u8) -> v32u8 { | 2898 | pub fn lasx_xvavg_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 2899 | __lasx_xvavg_bu(a, b) | 2899 | unsafe { __lasx_xvavg_bu(a, b) } |
| 2900 | } | 2900 | } |
| 2901 | 2901 | ||
| 2902 | #[inline] | 2902 | #[inline] |
| 2903 | #[target_feature(enable = "lasx")] | 2903 | #[target_feature(enable = "lasx")] |
| 2904 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2904 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2905 | pub unsafe fn lasx_xvavg_hu(a: v16u16, b: v16u16) -> v16u16 { | 2905 | pub fn lasx_xvavg_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 2906 | __lasx_xvavg_hu(a, b) | 2906 | unsafe { __lasx_xvavg_hu(a, b) } |
| 2907 | } | 2907 | } |
| 2908 | 2908 | ||
| 2909 | #[inline] | 2909 | #[inline] |
| 2910 | #[target_feature(enable = "lasx")] | 2910 | #[target_feature(enable = "lasx")] |
| 2911 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2911 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2912 | pub unsafe fn lasx_xvavg_wu(a: v8u32, b: v8u32) -> v8u32 { | 2912 | pub fn lasx_xvavg_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 2913 | __lasx_xvavg_wu(a, b) | 2913 | unsafe { __lasx_xvavg_wu(a, b) } |
| 2914 | } | 2914 | } |
| 2915 | 2915 | ||
| 2916 | #[inline] | 2916 | #[inline] |
| 2917 | #[target_feature(enable = "lasx")] | 2917 | #[target_feature(enable = "lasx")] |
| 2918 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2918 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2919 | pub unsafe fn lasx_xvavg_du(a: v4u64, b: v4u64) -> v4u64 { | 2919 | pub fn lasx_xvavg_du(a: v4u64, b: v4u64) -> v4u64 { |
| 2920 | __lasx_xvavg_du(a, b) | 2920 | unsafe { __lasx_xvavg_du(a, b) } |
| 2921 | } | 2921 | } |
| 2922 | 2922 | ||
| 2923 | #[inline] | 2923 | #[inline] |
| 2924 | #[target_feature(enable = "lasx")] | 2924 | #[target_feature(enable = "lasx")] |
| 2925 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2925 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2926 | pub unsafe fn lasx_xvavgr_b(a: v32i8, b: v32i8) -> v32i8 { | 2926 | pub fn lasx_xvavgr_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2927 | __lasx_xvavgr_b(a, b) | 2927 | unsafe { __lasx_xvavgr_b(a, b) } |
| 2928 | } | 2928 | } |
| 2929 | 2929 | ||
| 2930 | #[inline] | 2930 | #[inline] |
| 2931 | #[target_feature(enable = "lasx")] | 2931 | #[target_feature(enable = "lasx")] |
| 2932 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2932 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2933 | pub unsafe fn lasx_xvavgr_h(a: v16i16, b: v16i16) -> v16i16 { | 2933 | pub fn lasx_xvavgr_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2934 | __lasx_xvavgr_h(a, b) | 2934 | unsafe { __lasx_xvavgr_h(a, b) } |
| 2935 | } | 2935 | } |
| 2936 | 2936 | ||
| 2937 | #[inline] | 2937 | #[inline] |
| 2938 | #[target_feature(enable = "lasx")] | 2938 | #[target_feature(enable = "lasx")] |
| 2939 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2939 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2940 | pub unsafe fn lasx_xvavgr_w(a: v8i32, b: v8i32) -> v8i32 { | 2940 | pub fn lasx_xvavgr_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2941 | __lasx_xvavgr_w(a, b) | 2941 | unsafe { __lasx_xvavgr_w(a, b) } |
| 2942 | } | 2942 | } |
| 2943 | 2943 | ||
| 2944 | #[inline] | 2944 | #[inline] |
| 2945 | #[target_feature(enable = "lasx")] | 2945 | #[target_feature(enable = "lasx")] |
| 2946 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2946 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2947 | pub unsafe fn lasx_xvavgr_d(a: v4i64, b: v4i64) -> v4i64 { | 2947 | pub fn lasx_xvavgr_d(a: v4i64, b: v4i64) -> v4i64 { |
| 2948 | __lasx_xvavgr_d(a, b) | 2948 | unsafe { __lasx_xvavgr_d(a, b) } |
| 2949 | } | 2949 | } |
| 2950 | 2950 | ||
| 2951 | #[inline] | 2951 | #[inline] |
| 2952 | #[target_feature(enable = "lasx")] | 2952 | #[target_feature(enable = "lasx")] |
| 2953 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2953 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2954 | pub unsafe fn lasx_xvavgr_bu(a: v32u8, b: v32u8) -> v32u8 { | 2954 | pub fn lasx_xvavgr_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 2955 | __lasx_xvavgr_bu(a, b) | 2955 | unsafe { __lasx_xvavgr_bu(a, b) } |
| 2956 | } | 2956 | } |
| 2957 | 2957 | ||
| 2958 | #[inline] | 2958 | #[inline] |
| 2959 | #[target_feature(enable = "lasx")] | 2959 | #[target_feature(enable = "lasx")] |
| 2960 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2960 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2961 | pub unsafe fn lasx_xvavgr_hu(a: v16u16, b: v16u16) -> v16u16 { | 2961 | pub fn lasx_xvavgr_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 2962 | __lasx_xvavgr_hu(a, b) | 2962 | unsafe { __lasx_xvavgr_hu(a, b) } |
| 2963 | } | 2963 | } |
| 2964 | 2964 | ||
| 2965 | #[inline] | 2965 | #[inline] |
| 2966 | #[target_feature(enable = "lasx")] | 2966 | #[target_feature(enable = "lasx")] |
| 2967 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2967 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2968 | pub unsafe fn lasx_xvavgr_wu(a: v8u32, b: v8u32) -> v8u32 { | 2968 | pub fn lasx_xvavgr_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 2969 | __lasx_xvavgr_wu(a, b) | 2969 | unsafe { __lasx_xvavgr_wu(a, b) } |
| 2970 | } | 2970 | } |
| 2971 | 2971 | ||
| 2972 | #[inline] | 2972 | #[inline] |
| 2973 | #[target_feature(enable = "lasx")] | 2973 | #[target_feature(enable = "lasx")] |
| 2974 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2974 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2975 | pub unsafe fn lasx_xvavgr_du(a: v4u64, b: v4u64) -> v4u64 { | 2975 | pub fn lasx_xvavgr_du(a: v4u64, b: v4u64) -> v4u64 { |
| 2976 | __lasx_xvavgr_du(a, b) | 2976 | unsafe { __lasx_xvavgr_du(a, b) } |
| 2977 | } | 2977 | } |
| 2978 | 2978 | ||
| 2979 | #[inline] | 2979 | #[inline] |
| 2980 | #[target_feature(enable = "lasx")] | 2980 | #[target_feature(enable = "lasx")] |
| 2981 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2981 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2982 | pub unsafe fn lasx_xvssub_b(a: v32i8, b: v32i8) -> v32i8 { | 2982 | pub fn lasx_xvssub_b(a: v32i8, b: v32i8) -> v32i8 { |
| 2983 | __lasx_xvssub_b(a, b) | 2983 | unsafe { __lasx_xvssub_b(a, b) } |
| 2984 | } | 2984 | } |
| 2985 | 2985 | ||
| 2986 | #[inline] | 2986 | #[inline] |
| 2987 | #[target_feature(enable = "lasx")] | 2987 | #[target_feature(enable = "lasx")] |
| 2988 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2988 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2989 | pub unsafe fn lasx_xvssub_h(a: v16i16, b: v16i16) -> v16i16 { | 2989 | pub fn lasx_xvssub_h(a: v16i16, b: v16i16) -> v16i16 { |
| 2990 | __lasx_xvssub_h(a, b) | 2990 | unsafe { __lasx_xvssub_h(a, b) } |
| 2991 | } | 2991 | } |
| 2992 | 2992 | ||
| 2993 | #[inline] | 2993 | #[inline] |
| 2994 | #[target_feature(enable = "lasx")] | 2994 | #[target_feature(enable = "lasx")] |
| 2995 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2995 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2996 | pub unsafe fn lasx_xvssub_w(a: v8i32, b: v8i32) -> v8i32 { | 2996 | pub fn lasx_xvssub_w(a: v8i32, b: v8i32) -> v8i32 { |
| 2997 | __lasx_xvssub_w(a, b) | 2997 | unsafe { __lasx_xvssub_w(a, b) } |
| 2998 | } | 2998 | } |
| 2999 | 2999 | ||
| 3000 | #[inline] | 3000 | #[inline] |
| 3001 | #[target_feature(enable = "lasx")] | 3001 | #[target_feature(enable = "lasx")] |
| 3002 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3002 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3003 | pub unsafe fn lasx_xvssub_d(a: v4i64, b: v4i64) -> v4i64 { | 3003 | pub fn lasx_xvssub_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3004 | __lasx_xvssub_d(a, b) | 3004 | unsafe { __lasx_xvssub_d(a, b) } |
| 3005 | } | 3005 | } |
| 3006 | 3006 | ||
| 3007 | #[inline] | 3007 | #[inline] |
| 3008 | #[target_feature(enable = "lasx")] | 3008 | #[target_feature(enable = "lasx")] |
| 3009 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3009 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3010 | pub unsafe fn lasx_xvssub_bu(a: v32u8, b: v32u8) -> v32u8 { | 3010 | pub fn lasx_xvssub_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 3011 | __lasx_xvssub_bu(a, b) | 3011 | unsafe { __lasx_xvssub_bu(a, b) } |
| 3012 | } | 3012 | } |
| 3013 | 3013 | ||
| 3014 | #[inline] | 3014 | #[inline] |
| 3015 | #[target_feature(enable = "lasx")] | 3015 | #[target_feature(enable = "lasx")] |
| 3016 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3016 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3017 | pub unsafe fn lasx_xvssub_hu(a: v16u16, b: v16u16) -> v16u16 { | 3017 | pub fn lasx_xvssub_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 3018 | __lasx_xvssub_hu(a, b) | 3018 | unsafe { __lasx_xvssub_hu(a, b) } |
| 3019 | } | 3019 | } |
| 3020 | 3020 | ||
| 3021 | #[inline] | 3021 | #[inline] |
| 3022 | #[target_feature(enable = "lasx")] | 3022 | #[target_feature(enable = "lasx")] |
| 3023 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3023 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3024 | pub unsafe fn lasx_xvssub_wu(a: v8u32, b: v8u32) -> v8u32 { | 3024 | pub fn lasx_xvssub_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 3025 | __lasx_xvssub_wu(a, b) | 3025 | unsafe { __lasx_xvssub_wu(a, b) } |
| 3026 | } | 3026 | } |
| 3027 | 3027 | ||
| 3028 | #[inline] | 3028 | #[inline] |
| 3029 | #[target_feature(enable = "lasx")] | 3029 | #[target_feature(enable = "lasx")] |
| 3030 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3030 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3031 | pub unsafe fn lasx_xvssub_du(a: v4u64, b: v4u64) -> v4u64 { | 3031 | pub fn lasx_xvssub_du(a: v4u64, b: v4u64) -> v4u64 { |
| 3032 | __lasx_xvssub_du(a, b) | 3032 | unsafe { __lasx_xvssub_du(a, b) } |
| 3033 | } | 3033 | } |
| 3034 | 3034 | ||
| 3035 | #[inline] | 3035 | #[inline] |
| 3036 | #[target_feature(enable = "lasx")] | 3036 | #[target_feature(enable = "lasx")] |
| 3037 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3037 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3038 | pub unsafe fn lasx_xvabsd_b(a: v32i8, b: v32i8) -> v32i8 { | 3038 | pub fn lasx_xvabsd_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3039 | __lasx_xvabsd_b(a, b) | 3039 | unsafe { __lasx_xvabsd_b(a, b) } |
| 3040 | } | 3040 | } |
| 3041 | 3041 | ||
| 3042 | #[inline] | 3042 | #[inline] |
| 3043 | #[target_feature(enable = "lasx")] | 3043 | #[target_feature(enable = "lasx")] |
| 3044 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3044 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3045 | pub unsafe fn lasx_xvabsd_h(a: v16i16, b: v16i16) -> v16i16 { | 3045 | pub fn lasx_xvabsd_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3046 | __lasx_xvabsd_h(a, b) | 3046 | unsafe { __lasx_xvabsd_h(a, b) } |
| 3047 | } | 3047 | } |
| 3048 | 3048 | ||
| 3049 | #[inline] | 3049 | #[inline] |
| 3050 | #[target_feature(enable = "lasx")] | 3050 | #[target_feature(enable = "lasx")] |
| 3051 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3051 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3052 | pub unsafe fn lasx_xvabsd_w(a: v8i32, b: v8i32) -> v8i32 { | 3052 | pub fn lasx_xvabsd_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3053 | __lasx_xvabsd_w(a, b) | 3053 | unsafe { __lasx_xvabsd_w(a, b) } |
| 3054 | } | 3054 | } |
| 3055 | 3055 | ||
| 3056 | #[inline] | 3056 | #[inline] |
| 3057 | #[target_feature(enable = "lasx")] | 3057 | #[target_feature(enable = "lasx")] |
| 3058 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3058 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3059 | pub unsafe fn lasx_xvabsd_d(a: v4i64, b: v4i64) -> v4i64 { | 3059 | pub fn lasx_xvabsd_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3060 | __lasx_xvabsd_d(a, b) | 3060 | unsafe { __lasx_xvabsd_d(a, b) } |
| 3061 | } | 3061 | } |
| 3062 | 3062 | ||
| 3063 | #[inline] | 3063 | #[inline] |
| 3064 | #[target_feature(enable = "lasx")] | 3064 | #[target_feature(enable = "lasx")] |
| 3065 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3065 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3066 | pub unsafe fn lasx_xvabsd_bu(a: v32u8, b: v32u8) -> v32u8 { | 3066 | pub fn lasx_xvabsd_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 3067 | __lasx_xvabsd_bu(a, b) | 3067 | unsafe { __lasx_xvabsd_bu(a, b) } |
| 3068 | } | 3068 | } |
| 3069 | 3069 | ||
| 3070 | #[inline] | 3070 | #[inline] |
| 3071 | #[target_feature(enable = "lasx")] | 3071 | #[target_feature(enable = "lasx")] |
| 3072 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3072 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3073 | pub unsafe fn lasx_xvabsd_hu(a: v16u16, b: v16u16) -> v16u16 { | 3073 | pub fn lasx_xvabsd_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 3074 | __lasx_xvabsd_hu(a, b) | 3074 | unsafe { __lasx_xvabsd_hu(a, b) } |
| 3075 | } | 3075 | } |
| 3076 | 3076 | ||
| 3077 | #[inline] | 3077 | #[inline] |
| 3078 | #[target_feature(enable = "lasx")] | 3078 | #[target_feature(enable = "lasx")] |
| 3079 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3079 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3080 | pub unsafe fn lasx_xvabsd_wu(a: v8u32, b: v8u32) -> v8u32 { | 3080 | pub fn lasx_xvabsd_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 3081 | __lasx_xvabsd_wu(a, b) | 3081 | unsafe { __lasx_xvabsd_wu(a, b) } |
| 3082 | } | 3082 | } |
| 3083 | 3083 | ||
| 3084 | #[inline] | 3084 | #[inline] |
| 3085 | #[target_feature(enable = "lasx")] | 3085 | #[target_feature(enable = "lasx")] |
| 3086 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3086 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3087 | pub unsafe fn lasx_xvabsd_du(a: v4u64, b: v4u64) -> v4u64 { | 3087 | pub fn lasx_xvabsd_du(a: v4u64, b: v4u64) -> v4u64 { |
| 3088 | __lasx_xvabsd_du(a, b) | 3088 | unsafe { __lasx_xvabsd_du(a, b) } |
| 3089 | } | 3089 | } |
| 3090 | 3090 | ||
| 3091 | #[inline] | 3091 | #[inline] |
| 3092 | #[target_feature(enable = "lasx")] | 3092 | #[target_feature(enable = "lasx")] |
| 3093 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3093 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3094 | pub unsafe fn lasx_xvmul_b(a: v32i8, b: v32i8) -> v32i8 { | 3094 | pub fn lasx_xvmul_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3095 | __lasx_xvmul_b(a, b) | 3095 | unsafe { __lasx_xvmul_b(a, b) } |
| 3096 | } | 3096 | } |
| 3097 | 3097 | ||
| 3098 | #[inline] | 3098 | #[inline] |
| 3099 | #[target_feature(enable = "lasx")] | 3099 | #[target_feature(enable = "lasx")] |
| 3100 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3100 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3101 | pub unsafe fn lasx_xvmul_h(a: v16i16, b: v16i16) -> v16i16 { | 3101 | pub fn lasx_xvmul_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3102 | __lasx_xvmul_h(a, b) | 3102 | unsafe { __lasx_xvmul_h(a, b) } |
| 3103 | } | 3103 | } |
| 3104 | 3104 | ||
| 3105 | #[inline] | 3105 | #[inline] |
| 3106 | #[target_feature(enable = "lasx")] | 3106 | #[target_feature(enable = "lasx")] |
| 3107 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3107 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3108 | pub unsafe fn lasx_xvmul_w(a: v8i32, b: v8i32) -> v8i32 { | 3108 | pub fn lasx_xvmul_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3109 | __lasx_xvmul_w(a, b) | 3109 | unsafe { __lasx_xvmul_w(a, b) } |
| 3110 | } | 3110 | } |
| 3111 | 3111 | ||
| 3112 | #[inline] | 3112 | #[inline] |
| 3113 | #[target_feature(enable = "lasx")] | 3113 | #[target_feature(enable = "lasx")] |
| 3114 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3114 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3115 | pub unsafe fn lasx_xvmul_d(a: v4i64, b: v4i64) -> v4i64 { | 3115 | pub fn lasx_xvmul_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3116 | __lasx_xvmul_d(a, b) | 3116 | unsafe { __lasx_xvmul_d(a, b) } |
| 3117 | } | 3117 | } |
| 3118 | 3118 | ||
| 3119 | #[inline] | 3119 | #[inline] |
| 3120 | #[target_feature(enable = "lasx")] | 3120 | #[target_feature(enable = "lasx")] |
| 3121 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3121 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3122 | pub unsafe fn lasx_xvmadd_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { | 3122 | pub fn lasx_xvmadd_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { |
| 3123 | __lasx_xvmadd_b(a, b, c) | 3123 | unsafe { __lasx_xvmadd_b(a, b, c) } |
| 3124 | } | 3124 | } |
| 3125 | 3125 | ||
| 3126 | #[inline] | 3126 | #[inline] |
| 3127 | #[target_feature(enable = "lasx")] | 3127 | #[target_feature(enable = "lasx")] |
| 3128 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3128 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3129 | pub unsafe fn lasx_xvmadd_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { | 3129 | pub fn lasx_xvmadd_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { |
| 3130 | __lasx_xvmadd_h(a, b, c) | 3130 | unsafe { __lasx_xvmadd_h(a, b, c) } |
| 3131 | } | 3131 | } |
| 3132 | 3132 | ||
| 3133 | #[inline] | 3133 | #[inline] |
| 3134 | #[target_feature(enable = "lasx")] | 3134 | #[target_feature(enable = "lasx")] |
| 3135 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3135 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3136 | pub unsafe fn lasx_xvmadd_w(a: v8i32, b: v8i32, c: v8i32) -> v8i32 { | 3136 | pub fn lasx_xvmadd_w(a: v8i32, b: v8i32, c: v8i32) -> v8i32 { |
| 3137 | __lasx_xvmadd_w(a, b, c) | 3137 | unsafe { __lasx_xvmadd_w(a, b, c) } |
| 3138 | } | 3138 | } |
| 3139 | 3139 | ||
| 3140 | #[inline] | 3140 | #[inline] |
| 3141 | #[target_feature(enable = "lasx")] | 3141 | #[target_feature(enable = "lasx")] |
| 3142 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3142 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3143 | pub unsafe fn lasx_xvmadd_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { | 3143 | pub fn lasx_xvmadd_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { |
| 3144 | __lasx_xvmadd_d(a, b, c) | 3144 | unsafe { __lasx_xvmadd_d(a, b, c) } |
| 3145 | } | 3145 | } |
| 3146 | 3146 | ||
| 3147 | #[inline] | 3147 | #[inline] |
| 3148 | #[target_feature(enable = "lasx")] | 3148 | #[target_feature(enable = "lasx")] |
| 3149 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3149 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3150 | pub unsafe fn lasx_xvmsub_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { | 3150 | pub fn lasx_xvmsub_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { |
| 3151 | __lasx_xvmsub_b(a, b, c) | 3151 | unsafe { __lasx_xvmsub_b(a, b, c) } |
| 3152 | } | 3152 | } |
| 3153 | 3153 | ||
| 3154 | #[inline] | 3154 | #[inline] |
| 3155 | #[target_feature(enable = "lasx")] | 3155 | #[target_feature(enable = "lasx")] |
| 3156 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3156 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3157 | pub unsafe fn lasx_xvmsub_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { | 3157 | pub fn lasx_xvmsub_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { |
| 3158 | __lasx_xvmsub_h(a, b, c) | 3158 | unsafe { __lasx_xvmsub_h(a, b, c) } |
| 3159 | } | 3159 | } |
| 3160 | 3160 | ||
| 3161 | #[inline] | 3161 | #[inline] |
| 3162 | #[target_feature(enable = "lasx")] | 3162 | #[target_feature(enable = "lasx")] |
| 3163 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3163 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3164 | pub unsafe fn lasx_xvmsub_w(a: v8i32, b: v8i32, c: v8i32) -> v8i32 { | 3164 | pub fn lasx_xvmsub_w(a: v8i32, b: v8i32, c: v8i32) -> v8i32 { |
| 3165 | __lasx_xvmsub_w(a, b, c) | 3165 | unsafe { __lasx_xvmsub_w(a, b, c) } |
| 3166 | } | 3166 | } |
| 3167 | 3167 | ||
| 3168 | #[inline] | 3168 | #[inline] |
| 3169 | #[target_feature(enable = "lasx")] | 3169 | #[target_feature(enable = "lasx")] |
| 3170 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3170 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3171 | pub unsafe fn lasx_xvmsub_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { | 3171 | pub fn lasx_xvmsub_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { |
| 3172 | __lasx_xvmsub_d(a, b, c) | 3172 | unsafe { __lasx_xvmsub_d(a, b, c) } |
| 3173 | } | 3173 | } |
| 3174 | 3174 | ||
| 3175 | #[inline] | 3175 | #[inline] |
| 3176 | #[target_feature(enable = "lasx")] | 3176 | #[target_feature(enable = "lasx")] |
| 3177 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3177 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3178 | pub unsafe fn lasx_xvdiv_b(a: v32i8, b: v32i8) -> v32i8 { | 3178 | pub fn lasx_xvdiv_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3179 | __lasx_xvdiv_b(a, b) | 3179 | unsafe { __lasx_xvdiv_b(a, b) } |
| 3180 | } | 3180 | } |
| 3181 | 3181 | ||
| 3182 | #[inline] | 3182 | #[inline] |
| 3183 | #[target_feature(enable = "lasx")] | 3183 | #[target_feature(enable = "lasx")] |
| 3184 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3184 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3185 | pub unsafe fn lasx_xvdiv_h(a: v16i16, b: v16i16) -> v16i16 { | 3185 | pub fn lasx_xvdiv_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3186 | __lasx_xvdiv_h(a, b) | 3186 | unsafe { __lasx_xvdiv_h(a, b) } |
| 3187 | } | 3187 | } |
| 3188 | 3188 | ||
| 3189 | #[inline] | 3189 | #[inline] |
| 3190 | #[target_feature(enable = "lasx")] | 3190 | #[target_feature(enable = "lasx")] |
| 3191 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3191 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3192 | pub unsafe fn lasx_xvdiv_w(a: v8i32, b: v8i32) -> v8i32 { | 3192 | pub fn lasx_xvdiv_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3193 | __lasx_xvdiv_w(a, b) | 3193 | unsafe { __lasx_xvdiv_w(a, b) } |
| 3194 | } | 3194 | } |
| 3195 | 3195 | ||
| 3196 | #[inline] | 3196 | #[inline] |
| 3197 | #[target_feature(enable = "lasx")] | 3197 | #[target_feature(enable = "lasx")] |
| 3198 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3198 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3199 | pub unsafe fn lasx_xvdiv_d(a: v4i64, b: v4i64) -> v4i64 { | 3199 | pub fn lasx_xvdiv_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3200 | __lasx_xvdiv_d(a, b) | 3200 | unsafe { __lasx_xvdiv_d(a, b) } |
| 3201 | } | 3201 | } |
| 3202 | 3202 | ||
| 3203 | #[inline] | 3203 | #[inline] |
| 3204 | #[target_feature(enable = "lasx")] | 3204 | #[target_feature(enable = "lasx")] |
| 3205 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3205 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3206 | pub unsafe fn lasx_xvdiv_bu(a: v32u8, b: v32u8) -> v32u8 { | 3206 | pub fn lasx_xvdiv_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 3207 | __lasx_xvdiv_bu(a, b) | 3207 | unsafe { __lasx_xvdiv_bu(a, b) } |
| 3208 | } | 3208 | } |
| 3209 | 3209 | ||
| 3210 | #[inline] | 3210 | #[inline] |
| 3211 | #[target_feature(enable = "lasx")] | 3211 | #[target_feature(enable = "lasx")] |
| 3212 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3212 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3213 | pub unsafe fn lasx_xvdiv_hu(a: v16u16, b: v16u16) -> v16u16 { | 3213 | pub fn lasx_xvdiv_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 3214 | __lasx_xvdiv_hu(a, b) | 3214 | unsafe { __lasx_xvdiv_hu(a, b) } |
| 3215 | } | 3215 | } |
| 3216 | 3216 | ||
| 3217 | #[inline] | 3217 | #[inline] |
| 3218 | #[target_feature(enable = "lasx")] | 3218 | #[target_feature(enable = "lasx")] |
| 3219 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3219 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3220 | pub unsafe fn lasx_xvdiv_wu(a: v8u32, b: v8u32) -> v8u32 { | 3220 | pub fn lasx_xvdiv_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 3221 | __lasx_xvdiv_wu(a, b) | 3221 | unsafe { __lasx_xvdiv_wu(a, b) } |
| 3222 | } | 3222 | } |
| 3223 | 3223 | ||
| 3224 | #[inline] | 3224 | #[inline] |
| 3225 | #[target_feature(enable = "lasx")] | 3225 | #[target_feature(enable = "lasx")] |
| 3226 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3226 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3227 | pub unsafe fn lasx_xvdiv_du(a: v4u64, b: v4u64) -> v4u64 { | 3227 | pub fn lasx_xvdiv_du(a: v4u64, b: v4u64) -> v4u64 { |
| 3228 | __lasx_xvdiv_du(a, b) | 3228 | unsafe { __lasx_xvdiv_du(a, b) } |
| 3229 | } | 3229 | } |
| 3230 | 3230 | ||
| 3231 | #[inline] | 3231 | #[inline] |
| 3232 | #[target_feature(enable = "lasx")] | 3232 | #[target_feature(enable = "lasx")] |
| 3233 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3233 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3234 | pub unsafe fn lasx_xvhaddw_h_b(a: v32i8, b: v32i8) -> v16i16 { | 3234 | pub fn lasx_xvhaddw_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 3235 | __lasx_xvhaddw_h_b(a, b) | 3235 | unsafe { __lasx_xvhaddw_h_b(a, b) } |
| 3236 | } | 3236 | } |
| 3237 | 3237 | ||
| 3238 | #[inline] | 3238 | #[inline] |
| 3239 | #[target_feature(enable = "lasx")] | 3239 | #[target_feature(enable = "lasx")] |
| 3240 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3240 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3241 | pub unsafe fn lasx_xvhaddw_w_h(a: v16i16, b: v16i16) -> v8i32 { | 3241 | pub fn lasx_xvhaddw_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 3242 | __lasx_xvhaddw_w_h(a, b) | 3242 | unsafe { __lasx_xvhaddw_w_h(a, b) } |
| 3243 | } | 3243 | } |
| 3244 | 3244 | ||
| 3245 | #[inline] | 3245 | #[inline] |
| 3246 | #[target_feature(enable = "lasx")] | 3246 | #[target_feature(enable = "lasx")] |
| 3247 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3247 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3248 | pub unsafe fn lasx_xvhaddw_d_w(a: v8i32, b: v8i32) -> v4i64 { | 3248 | pub fn lasx_xvhaddw_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 3249 | __lasx_xvhaddw_d_w(a, b) | 3249 | unsafe { __lasx_xvhaddw_d_w(a, b) } |
| 3250 | } | 3250 | } |
| 3251 | 3251 | ||
| 3252 | #[inline] | 3252 | #[inline] |
| 3253 | #[target_feature(enable = "lasx")] | 3253 | #[target_feature(enable = "lasx")] |
| 3254 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3254 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3255 | pub unsafe fn lasx_xvhaddw_hu_bu(a: v32u8, b: v32u8) -> v16u16 { | 3255 | pub fn lasx_xvhaddw_hu_bu(a: v32u8, b: v32u8) -> v16u16 { |
| 3256 | __lasx_xvhaddw_hu_bu(a, b) | 3256 | unsafe { __lasx_xvhaddw_hu_bu(a, b) } |
| 3257 | } | 3257 | } |
| 3258 | 3258 | ||
| 3259 | #[inline] | 3259 | #[inline] |
| 3260 | #[target_feature(enable = "lasx")] | 3260 | #[target_feature(enable = "lasx")] |
| 3261 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3261 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3262 | pub unsafe fn lasx_xvhaddw_wu_hu(a: v16u16, b: v16u16) -> v8u32 { | 3262 | pub fn lasx_xvhaddw_wu_hu(a: v16u16, b: v16u16) -> v8u32 { |
| 3263 | __lasx_xvhaddw_wu_hu(a, b) | 3263 | unsafe { __lasx_xvhaddw_wu_hu(a, b) } |
| 3264 | } | 3264 | } |
| 3265 | 3265 | ||
| 3266 | #[inline] | 3266 | #[inline] |
| 3267 | #[target_feature(enable = "lasx")] | 3267 | #[target_feature(enable = "lasx")] |
| 3268 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3268 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3269 | pub unsafe fn lasx_xvhaddw_du_wu(a: v8u32, b: v8u32) -> v4u64 { | 3269 | pub fn lasx_xvhaddw_du_wu(a: v8u32, b: v8u32) -> v4u64 { |
| 3270 | __lasx_xvhaddw_du_wu(a, b) | 3270 | unsafe { __lasx_xvhaddw_du_wu(a, b) } |
| 3271 | } | 3271 | } |
| 3272 | 3272 | ||
| 3273 | #[inline] | 3273 | #[inline] |
| 3274 | #[target_feature(enable = "lasx")] | 3274 | #[target_feature(enable = "lasx")] |
| 3275 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3275 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3276 | pub unsafe fn lasx_xvhsubw_h_b(a: v32i8, b: v32i8) -> v16i16 { | 3276 | pub fn lasx_xvhsubw_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 3277 | __lasx_xvhsubw_h_b(a, b) | 3277 | unsafe { __lasx_xvhsubw_h_b(a, b) } |
| 3278 | } | 3278 | } |
| 3279 | 3279 | ||
| 3280 | #[inline] | 3280 | #[inline] |
| 3281 | #[target_feature(enable = "lasx")] | 3281 | #[target_feature(enable = "lasx")] |
| 3282 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3282 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3283 | pub unsafe fn lasx_xvhsubw_w_h(a: v16i16, b: v16i16) -> v8i32 { | 3283 | pub fn lasx_xvhsubw_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 3284 | __lasx_xvhsubw_w_h(a, b) | 3284 | unsafe { __lasx_xvhsubw_w_h(a, b) } |
| 3285 | } | 3285 | } |
| 3286 | 3286 | ||
| 3287 | #[inline] | 3287 | #[inline] |
| 3288 | #[target_feature(enable = "lasx")] | 3288 | #[target_feature(enable = "lasx")] |
| 3289 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3289 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3290 | pub unsafe fn lasx_xvhsubw_d_w(a: v8i32, b: v8i32) -> v4i64 { | 3290 | pub fn lasx_xvhsubw_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 3291 | __lasx_xvhsubw_d_w(a, b) | 3291 | unsafe { __lasx_xvhsubw_d_w(a, b) } |
| 3292 | } | 3292 | } |
| 3293 | 3293 | ||
| 3294 | #[inline] | 3294 | #[inline] |
| 3295 | #[target_feature(enable = "lasx")] | 3295 | #[target_feature(enable = "lasx")] |
| 3296 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3296 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3297 | pub unsafe fn lasx_xvhsubw_hu_bu(a: v32u8, b: v32u8) -> v16i16 { | 3297 | pub fn lasx_xvhsubw_hu_bu(a: v32u8, b: v32u8) -> v16i16 { |
| 3298 | __lasx_xvhsubw_hu_bu(a, b) | 3298 | unsafe { __lasx_xvhsubw_hu_bu(a, b) } |
| 3299 | } | 3299 | } |
| 3300 | 3300 | ||
| 3301 | #[inline] | 3301 | #[inline] |
| 3302 | #[target_feature(enable = "lasx")] | 3302 | #[target_feature(enable = "lasx")] |
| 3303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3304 | pub unsafe fn lasx_xvhsubw_wu_hu(a: v16u16, b: v16u16) -> v8i32 { | 3304 | pub fn lasx_xvhsubw_wu_hu(a: v16u16, b: v16u16) -> v8i32 { |
| 3305 | __lasx_xvhsubw_wu_hu(a, b) | 3305 | unsafe { __lasx_xvhsubw_wu_hu(a, b) } |
| 3306 | } | 3306 | } |
| 3307 | 3307 | ||
| 3308 | #[inline] | 3308 | #[inline] |
| 3309 | #[target_feature(enable = "lasx")] | 3309 | #[target_feature(enable = "lasx")] |
| 3310 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3310 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3311 | pub unsafe fn lasx_xvhsubw_du_wu(a: v8u32, b: v8u32) -> v4i64 { | 3311 | pub fn lasx_xvhsubw_du_wu(a: v8u32, b: v8u32) -> v4i64 { |
| 3312 | __lasx_xvhsubw_du_wu(a, b) | 3312 | unsafe { __lasx_xvhsubw_du_wu(a, b) } |
| 3313 | } | 3313 | } |
| 3314 | 3314 | ||
| 3315 | #[inline] | 3315 | #[inline] |
| 3316 | #[target_feature(enable = "lasx")] | 3316 | #[target_feature(enable = "lasx")] |
| 3317 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3317 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3318 | pub unsafe fn lasx_xvmod_b(a: v32i8, b: v32i8) -> v32i8 { | 3318 | pub fn lasx_xvmod_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3319 | __lasx_xvmod_b(a, b) | 3319 | unsafe { __lasx_xvmod_b(a, b) } |
| 3320 | } | 3320 | } |
| 3321 | 3321 | ||
| 3322 | #[inline] | 3322 | #[inline] |
| 3323 | #[target_feature(enable = "lasx")] | 3323 | #[target_feature(enable = "lasx")] |
| 3324 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3324 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3325 | pub unsafe fn lasx_xvmod_h(a: v16i16, b: v16i16) -> v16i16 { | 3325 | pub fn lasx_xvmod_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3326 | __lasx_xvmod_h(a, b) | 3326 | unsafe { __lasx_xvmod_h(a, b) } |
| 3327 | } | 3327 | } |
| 3328 | 3328 | ||
| 3329 | #[inline] | 3329 | #[inline] |
| 3330 | #[target_feature(enable = "lasx")] | 3330 | #[target_feature(enable = "lasx")] |
| 3331 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3331 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3332 | pub unsafe fn lasx_xvmod_w(a: v8i32, b: v8i32) -> v8i32 { | 3332 | pub fn lasx_xvmod_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3333 | __lasx_xvmod_w(a, b) | 3333 | unsafe { __lasx_xvmod_w(a, b) } |
| 3334 | } | 3334 | } |
| 3335 | 3335 | ||
| 3336 | #[inline] | 3336 | #[inline] |
| 3337 | #[target_feature(enable = "lasx")] | 3337 | #[target_feature(enable = "lasx")] |
| 3338 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3338 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3339 | pub unsafe fn lasx_xvmod_d(a: v4i64, b: v4i64) -> v4i64 { | 3339 | pub fn lasx_xvmod_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3340 | __lasx_xvmod_d(a, b) | 3340 | unsafe { __lasx_xvmod_d(a, b) } |
| 3341 | } | 3341 | } |
| 3342 | 3342 | ||
| 3343 | #[inline] | 3343 | #[inline] |
| 3344 | #[target_feature(enable = "lasx")] | 3344 | #[target_feature(enable = "lasx")] |
| 3345 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3345 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3346 | pub unsafe fn lasx_xvmod_bu(a: v32u8, b: v32u8) -> v32u8 { | 3346 | pub fn lasx_xvmod_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 3347 | __lasx_xvmod_bu(a, b) | 3347 | unsafe { __lasx_xvmod_bu(a, b) } |
| 3348 | } | 3348 | } |
| 3349 | 3349 | ||
| 3350 | #[inline] | 3350 | #[inline] |
| 3351 | #[target_feature(enable = "lasx")] | 3351 | #[target_feature(enable = "lasx")] |
| 3352 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3352 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3353 | pub unsafe fn lasx_xvmod_hu(a: v16u16, b: v16u16) -> v16u16 { | 3353 | pub fn lasx_xvmod_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 3354 | __lasx_xvmod_hu(a, b) | 3354 | unsafe { __lasx_xvmod_hu(a, b) } |
| 3355 | } | 3355 | } |
| 3356 | 3356 | ||
| 3357 | #[inline] | 3357 | #[inline] |
| 3358 | #[target_feature(enable = "lasx")] | 3358 | #[target_feature(enable = "lasx")] |
| 3359 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3359 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3360 | pub unsafe fn lasx_xvmod_wu(a: v8u32, b: v8u32) -> v8u32 { | 3360 | pub fn lasx_xvmod_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 3361 | __lasx_xvmod_wu(a, b) | 3361 | unsafe { __lasx_xvmod_wu(a, b) } |
| 3362 | } | 3362 | } |
| 3363 | 3363 | ||
| 3364 | #[inline] | 3364 | #[inline] |
| 3365 | #[target_feature(enable = "lasx")] | 3365 | #[target_feature(enable = "lasx")] |
| 3366 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3366 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3367 | pub unsafe fn lasx_xvmod_du(a: v4u64, b: v4u64) -> v4u64 { | 3367 | pub fn lasx_xvmod_du(a: v4u64, b: v4u64) -> v4u64 { |
| 3368 | __lasx_xvmod_du(a, b) | 3368 | unsafe { __lasx_xvmod_du(a, b) } |
| 3369 | } | 3369 | } |
| 3370 | 3370 | ||
| 3371 | #[inline] | 3371 | #[inline] |
| 3372 | #[target_feature(enable = "lasx")] | 3372 | #[target_feature(enable = "lasx")] |
| 3373 | #[rustc_legacy_const_generics(1)] | 3373 | #[rustc_legacy_const_generics(1)] |
| 3374 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3374 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3375 | pub unsafe fn lasx_xvrepl128vei_b<const IMM4: u32>(a: v32i8) -> v32i8 { | 3375 | pub fn lasx_xvrepl128vei_b<const IMM4: u32>(a: v32i8) -> v32i8 { |
| 3376 | static_assert_uimm_bits!(IMM4, 4); | 3376 | static_assert_uimm_bits!(IMM4, 4); |
| 3377 | __lasx_xvrepl128vei_b(a, IMM4) | 3377 | unsafe { __lasx_xvrepl128vei_b(a, IMM4) } |
| 3378 | } | 3378 | } |
| 3379 | 3379 | ||
| 3380 | #[inline] | 3380 | #[inline] |
| 3381 | #[target_feature(enable = "lasx")] | 3381 | #[target_feature(enable = "lasx")] |
| 3382 | #[rustc_legacy_const_generics(1)] | 3382 | #[rustc_legacy_const_generics(1)] |
| 3383 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3383 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3384 | pub unsafe fn lasx_xvrepl128vei_h<const IMM3: u32>(a: v16i16) -> v16i16 { | 3384 | pub fn lasx_xvrepl128vei_h<const IMM3: u32>(a: v16i16) -> v16i16 { |
| 3385 | static_assert_uimm_bits!(IMM3, 3); | 3385 | static_assert_uimm_bits!(IMM3, 3); |
| 3386 | __lasx_xvrepl128vei_h(a, IMM3) | 3386 | unsafe { __lasx_xvrepl128vei_h(a, IMM3) } |
| 3387 | } | 3387 | } |
| 3388 | 3388 | ||
| 3389 | #[inline] | 3389 | #[inline] |
| 3390 | #[target_feature(enable = "lasx")] | 3390 | #[target_feature(enable = "lasx")] |
| 3391 | #[rustc_legacy_const_generics(1)] | 3391 | #[rustc_legacy_const_generics(1)] |
| 3392 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3392 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3393 | pub unsafe fn lasx_xvrepl128vei_w<const IMM2: u32>(a: v8i32) -> v8i32 { | 3393 | pub fn lasx_xvrepl128vei_w<const IMM2: u32>(a: v8i32) -> v8i32 { |
| 3394 | static_assert_uimm_bits!(IMM2, 2); | 3394 | static_assert_uimm_bits!(IMM2, 2); |
| 3395 | __lasx_xvrepl128vei_w(a, IMM2) | 3395 | unsafe { __lasx_xvrepl128vei_w(a, IMM2) } |
| 3396 | } | 3396 | } |
| 3397 | 3397 | ||
| 3398 | #[inline] | 3398 | #[inline] |
| 3399 | #[target_feature(enable = "lasx")] | 3399 | #[target_feature(enable = "lasx")] |
| 3400 | #[rustc_legacy_const_generics(1)] | 3400 | #[rustc_legacy_const_generics(1)] |
| 3401 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3401 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3402 | pub unsafe fn lasx_xvrepl128vei_d<const IMM1: u32>(a: v4i64) -> v4i64 { | 3402 | pub fn lasx_xvrepl128vei_d<const IMM1: u32>(a: v4i64) -> v4i64 { |
| 3403 | static_assert_uimm_bits!(IMM1, 1); | 3403 | static_assert_uimm_bits!(IMM1, 1); |
| 3404 | __lasx_xvrepl128vei_d(a, IMM1) | 3404 | unsafe { __lasx_xvrepl128vei_d(a, IMM1) } |
| 3405 | } | 3405 | } |
| 3406 | 3406 | ||
| 3407 | #[inline] | 3407 | #[inline] |
| 3408 | #[target_feature(enable = "lasx")] | 3408 | #[target_feature(enable = "lasx")] |
| 3409 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3409 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3410 | pub unsafe fn lasx_xvpickev_b(a: v32i8, b: v32i8) -> v32i8 { | 3410 | pub fn lasx_xvpickev_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3411 | __lasx_xvpickev_b(a, b) | 3411 | unsafe { __lasx_xvpickev_b(a, b) } |
| 3412 | } | 3412 | } |
| 3413 | 3413 | ||
| 3414 | #[inline] | 3414 | #[inline] |
| 3415 | #[target_feature(enable = "lasx")] | 3415 | #[target_feature(enable = "lasx")] |
| 3416 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3416 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3417 | pub unsafe fn lasx_xvpickev_h(a: v16i16, b: v16i16) -> v16i16 { | 3417 | pub fn lasx_xvpickev_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3418 | __lasx_xvpickev_h(a, b) | 3418 | unsafe { __lasx_xvpickev_h(a, b) } |
| 3419 | } | 3419 | } |
| 3420 | 3420 | ||
| 3421 | #[inline] | 3421 | #[inline] |
| 3422 | #[target_feature(enable = "lasx")] | 3422 | #[target_feature(enable = "lasx")] |
| 3423 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3423 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3424 | pub unsafe fn lasx_xvpickev_w(a: v8i32, b: v8i32) -> v8i32 { | 3424 | pub fn lasx_xvpickev_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3425 | __lasx_xvpickev_w(a, b) | 3425 | unsafe { __lasx_xvpickev_w(a, b) } |
| 3426 | } | 3426 | } |
| 3427 | 3427 | ||
| 3428 | #[inline] | 3428 | #[inline] |
| 3429 | #[target_feature(enable = "lasx")] | 3429 | #[target_feature(enable = "lasx")] |
| 3430 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3430 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3431 | pub unsafe fn lasx_xvpickev_d(a: v4i64, b: v4i64) -> v4i64 { | 3431 | pub fn lasx_xvpickev_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3432 | __lasx_xvpickev_d(a, b) | 3432 | unsafe { __lasx_xvpickev_d(a, b) } |
| 3433 | } | 3433 | } |
| 3434 | 3434 | ||
| 3435 | #[inline] | 3435 | #[inline] |
| 3436 | #[target_feature(enable = "lasx")] | 3436 | #[target_feature(enable = "lasx")] |
| 3437 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3437 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3438 | pub unsafe fn lasx_xvpickod_b(a: v32i8, b: v32i8) -> v32i8 { | 3438 | pub fn lasx_xvpickod_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3439 | __lasx_xvpickod_b(a, b) | 3439 | unsafe { __lasx_xvpickod_b(a, b) } |
| 3440 | } | 3440 | } |
| 3441 | 3441 | ||
| 3442 | #[inline] | 3442 | #[inline] |
| 3443 | #[target_feature(enable = "lasx")] | 3443 | #[target_feature(enable = "lasx")] |
| 3444 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3444 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3445 | pub unsafe fn lasx_xvpickod_h(a: v16i16, b: v16i16) -> v16i16 { | 3445 | pub fn lasx_xvpickod_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3446 | __lasx_xvpickod_h(a, b) | 3446 | unsafe { __lasx_xvpickod_h(a, b) } |
| 3447 | } | 3447 | } |
| 3448 | 3448 | ||
| 3449 | #[inline] | 3449 | #[inline] |
| 3450 | #[target_feature(enable = "lasx")] | 3450 | #[target_feature(enable = "lasx")] |
| 3451 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3451 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3452 | pub unsafe fn lasx_xvpickod_w(a: v8i32, b: v8i32) -> v8i32 { | 3452 | pub fn lasx_xvpickod_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3453 | __lasx_xvpickod_w(a, b) | 3453 | unsafe { __lasx_xvpickod_w(a, b) } |
| 3454 | } | 3454 | } |
| 3455 | 3455 | ||
| 3456 | #[inline] | 3456 | #[inline] |
| 3457 | #[target_feature(enable = "lasx")] | 3457 | #[target_feature(enable = "lasx")] |
| 3458 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3458 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3459 | pub unsafe fn lasx_xvpickod_d(a: v4i64, b: v4i64) -> v4i64 { | 3459 | pub fn lasx_xvpickod_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3460 | __lasx_xvpickod_d(a, b) | 3460 | unsafe { __lasx_xvpickod_d(a, b) } |
| 3461 | } | 3461 | } |
| 3462 | 3462 | ||
| 3463 | #[inline] | 3463 | #[inline] |
| 3464 | #[target_feature(enable = "lasx")] | 3464 | #[target_feature(enable = "lasx")] |
| 3465 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3465 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3466 | pub unsafe fn lasx_xvilvh_b(a: v32i8, b: v32i8) -> v32i8 { | 3466 | pub fn lasx_xvilvh_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3467 | __lasx_xvilvh_b(a, b) | 3467 | unsafe { __lasx_xvilvh_b(a, b) } |
| 3468 | } | 3468 | } |
| 3469 | 3469 | ||
| 3470 | #[inline] | 3470 | #[inline] |
| 3471 | #[target_feature(enable = "lasx")] | 3471 | #[target_feature(enable = "lasx")] |
| 3472 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3472 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3473 | pub unsafe fn lasx_xvilvh_h(a: v16i16, b: v16i16) -> v16i16 { | 3473 | pub fn lasx_xvilvh_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3474 | __lasx_xvilvh_h(a, b) | 3474 | unsafe { __lasx_xvilvh_h(a, b) } |
| 3475 | } | 3475 | } |
| 3476 | 3476 | ||
| 3477 | #[inline] | 3477 | #[inline] |
| 3478 | #[target_feature(enable = "lasx")] | 3478 | #[target_feature(enable = "lasx")] |
| 3479 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3479 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3480 | pub unsafe fn lasx_xvilvh_w(a: v8i32, b: v8i32) -> v8i32 { | 3480 | pub fn lasx_xvilvh_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3481 | __lasx_xvilvh_w(a, b) | 3481 | unsafe { __lasx_xvilvh_w(a, b) } |
| 3482 | } | 3482 | } |
| 3483 | 3483 | ||
| 3484 | #[inline] | 3484 | #[inline] |
| 3485 | #[target_feature(enable = "lasx")] | 3485 | #[target_feature(enable = "lasx")] |
| 3486 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3486 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3487 | pub unsafe fn lasx_xvilvh_d(a: v4i64, b: v4i64) -> v4i64 { | 3487 | pub fn lasx_xvilvh_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3488 | __lasx_xvilvh_d(a, b) | 3488 | unsafe { __lasx_xvilvh_d(a, b) } |
| 3489 | } | 3489 | } |
| 3490 | 3490 | ||
| 3491 | #[inline] | 3491 | #[inline] |
| 3492 | #[target_feature(enable = "lasx")] | 3492 | #[target_feature(enable = "lasx")] |
| 3493 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3493 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3494 | pub unsafe fn lasx_xvilvl_b(a: v32i8, b: v32i8) -> v32i8 { | 3494 | pub fn lasx_xvilvl_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3495 | __lasx_xvilvl_b(a, b) | 3495 | unsafe { __lasx_xvilvl_b(a, b) } |
| 3496 | } | 3496 | } |
| 3497 | 3497 | ||
| 3498 | #[inline] | 3498 | #[inline] |
| 3499 | #[target_feature(enable = "lasx")] | 3499 | #[target_feature(enable = "lasx")] |
| 3500 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3500 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3501 | pub unsafe fn lasx_xvilvl_h(a: v16i16, b: v16i16) -> v16i16 { | 3501 | pub fn lasx_xvilvl_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3502 | __lasx_xvilvl_h(a, b) | 3502 | unsafe { __lasx_xvilvl_h(a, b) } |
| 3503 | } | 3503 | } |
| 3504 | 3504 | ||
| 3505 | #[inline] | 3505 | #[inline] |
| 3506 | #[target_feature(enable = "lasx")] | 3506 | #[target_feature(enable = "lasx")] |
| 3507 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3507 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3508 | pub unsafe fn lasx_xvilvl_w(a: v8i32, b: v8i32) -> v8i32 { | 3508 | pub fn lasx_xvilvl_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3509 | __lasx_xvilvl_w(a, b) | 3509 | unsafe { __lasx_xvilvl_w(a, b) } |
| 3510 | } | 3510 | } |
| 3511 | 3511 | ||
| 3512 | #[inline] | 3512 | #[inline] |
| 3513 | #[target_feature(enable = "lasx")] | 3513 | #[target_feature(enable = "lasx")] |
| 3514 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3514 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3515 | pub unsafe fn lasx_xvilvl_d(a: v4i64, b: v4i64) -> v4i64 { | 3515 | pub fn lasx_xvilvl_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3516 | __lasx_xvilvl_d(a, b) | 3516 | unsafe { __lasx_xvilvl_d(a, b) } |
| 3517 | } | 3517 | } |
| 3518 | 3518 | ||
| 3519 | #[inline] | 3519 | #[inline] |
| 3520 | #[target_feature(enable = "lasx")] | 3520 | #[target_feature(enable = "lasx")] |
| 3521 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3521 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3522 | pub unsafe fn lasx_xvpackev_b(a: v32i8, b: v32i8) -> v32i8 { | 3522 | pub fn lasx_xvpackev_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3523 | __lasx_xvpackev_b(a, b) | 3523 | unsafe { __lasx_xvpackev_b(a, b) } |
| 3524 | } | 3524 | } |
| 3525 | 3525 | ||
| 3526 | #[inline] | 3526 | #[inline] |
| 3527 | #[target_feature(enable = "lasx")] | 3527 | #[target_feature(enable = "lasx")] |
| 3528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3529 | pub unsafe fn lasx_xvpackev_h(a: v16i16, b: v16i16) -> v16i16 { | 3529 | pub fn lasx_xvpackev_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3530 | __lasx_xvpackev_h(a, b) | 3530 | unsafe { __lasx_xvpackev_h(a, b) } |
| 3531 | } | 3531 | } |
| 3532 | 3532 | ||
| 3533 | #[inline] | 3533 | #[inline] |
| 3534 | #[target_feature(enable = "lasx")] | 3534 | #[target_feature(enable = "lasx")] |
| 3535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3536 | pub unsafe fn lasx_xvpackev_w(a: v8i32, b: v8i32) -> v8i32 { | 3536 | pub fn lasx_xvpackev_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3537 | __lasx_xvpackev_w(a, b) | 3537 | unsafe { __lasx_xvpackev_w(a, b) } |
| 3538 | } | 3538 | } |
| 3539 | 3539 | ||
| 3540 | #[inline] | 3540 | #[inline] |
| 3541 | #[target_feature(enable = "lasx")] | 3541 | #[target_feature(enable = "lasx")] |
| 3542 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3542 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3543 | pub unsafe fn lasx_xvpackev_d(a: v4i64, b: v4i64) -> v4i64 { | 3543 | pub fn lasx_xvpackev_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3544 | __lasx_xvpackev_d(a, b) | 3544 | unsafe { __lasx_xvpackev_d(a, b) } |
| 3545 | } | 3545 | } |
| 3546 | 3546 | ||
| 3547 | #[inline] | 3547 | #[inline] |
| 3548 | #[target_feature(enable = "lasx")] | 3548 | #[target_feature(enable = "lasx")] |
| 3549 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3549 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3550 | pub unsafe fn lasx_xvpackod_b(a: v32i8, b: v32i8) -> v32i8 { | 3550 | pub fn lasx_xvpackod_b(a: v32i8, b: v32i8) -> v32i8 { |
| 3551 | __lasx_xvpackod_b(a, b) | 3551 | unsafe { __lasx_xvpackod_b(a, b) } |
| 3552 | } | 3552 | } |
| 3553 | 3553 | ||
| 3554 | #[inline] | 3554 | #[inline] |
| 3555 | #[target_feature(enable = "lasx")] | 3555 | #[target_feature(enable = "lasx")] |
| 3556 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3556 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3557 | pub unsafe fn lasx_xvpackod_h(a: v16i16, b: v16i16) -> v16i16 { | 3557 | pub fn lasx_xvpackod_h(a: v16i16, b: v16i16) -> v16i16 { |
| 3558 | __lasx_xvpackod_h(a, b) | 3558 | unsafe { __lasx_xvpackod_h(a, b) } |
| 3559 | } | 3559 | } |
| 3560 | 3560 | ||
| 3561 | #[inline] | 3561 | #[inline] |
| 3562 | #[target_feature(enable = "lasx")] | 3562 | #[target_feature(enable = "lasx")] |
| 3563 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3563 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3564 | pub unsafe fn lasx_xvpackod_w(a: v8i32, b: v8i32) -> v8i32 { | 3564 | pub fn lasx_xvpackod_w(a: v8i32, b: v8i32) -> v8i32 { |
| 3565 | __lasx_xvpackod_w(a, b) | 3565 | unsafe { __lasx_xvpackod_w(a, b) } |
| 3566 | } | 3566 | } |
| 3567 | 3567 | ||
| 3568 | #[inline] | 3568 | #[inline] |
| 3569 | #[target_feature(enable = "lasx")] | 3569 | #[target_feature(enable = "lasx")] |
| 3570 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3570 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3571 | pub unsafe fn lasx_xvpackod_d(a: v4i64, b: v4i64) -> v4i64 { | 3571 | pub fn lasx_xvpackod_d(a: v4i64, b: v4i64) -> v4i64 { |
| 3572 | __lasx_xvpackod_d(a, b) | 3572 | unsafe { __lasx_xvpackod_d(a, b) } |
| 3573 | } | 3573 | } |
| 3574 | 3574 | ||
| 3575 | #[inline] | 3575 | #[inline] |
| 3576 | #[target_feature(enable = "lasx")] | 3576 | #[target_feature(enable = "lasx")] |
| 3577 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3577 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3578 | pub unsafe fn lasx_xvshuf_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { | 3578 | pub fn lasx_xvshuf_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { |
| 3579 | __lasx_xvshuf_b(a, b, c) | 3579 | unsafe { __lasx_xvshuf_b(a, b, c) } |
| 3580 | } | 3580 | } |
| 3581 | 3581 | ||
| 3582 | #[inline] | 3582 | #[inline] |
| 3583 | #[target_feature(enable = "lasx")] | 3583 | #[target_feature(enable = "lasx")] |
| 3584 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3584 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3585 | pub unsafe fn lasx_xvshuf_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { | 3585 | pub fn lasx_xvshuf_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { |
| 3586 | __lasx_xvshuf_h(a, b, c) | 3586 | unsafe { __lasx_xvshuf_h(a, b, c) } |
| 3587 | } | 3587 | } |
| 3588 | 3588 | ||
| 3589 | #[inline] | 3589 | #[inline] |
| 3590 | #[target_feature(enable = "lasx")] | 3590 | #[target_feature(enable = "lasx")] |
| 3591 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3591 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3592 | pub unsafe fn lasx_xvshuf_w(a: v8i32, b: v8i32, c: v8i32) -> v8i32 { | 3592 | pub fn lasx_xvshuf_w(a: v8i32, b: v8i32, c: v8i32) -> v8i32 { |
| 3593 | __lasx_xvshuf_w(a, b, c) | 3593 | unsafe { __lasx_xvshuf_w(a, b, c) } |
| 3594 | } | 3594 | } |
| 3595 | 3595 | ||
| 3596 | #[inline] | 3596 | #[inline] |
| 3597 | #[target_feature(enable = "lasx")] | 3597 | #[target_feature(enable = "lasx")] |
| 3598 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3598 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3599 | pub unsafe fn lasx_xvshuf_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { | 3599 | pub fn lasx_xvshuf_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { |
| 3600 | __lasx_xvshuf_d(a, b, c) | 3600 | unsafe { __lasx_xvshuf_d(a, b, c) } |
| 3601 | } | 3601 | } |
| 3602 | 3602 | ||
| 3603 | #[inline] | 3603 | #[inline] |
| 3604 | #[target_feature(enable = "lasx")] | 3604 | #[target_feature(enable = "lasx")] |
| 3605 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3605 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3606 | pub unsafe fn lasx_xvand_v(a: v32u8, b: v32u8) -> v32u8 { | 3606 | pub fn lasx_xvand_v(a: v32u8, b: v32u8) -> v32u8 { |
| 3607 | __lasx_xvand_v(a, b) | 3607 | unsafe { __lasx_xvand_v(a, b) } |
| 3608 | } | 3608 | } |
| 3609 | 3609 | ||
| 3610 | #[inline] | 3610 | #[inline] |
| 3611 | #[target_feature(enable = "lasx")] | 3611 | #[target_feature(enable = "lasx")] |
| 3612 | #[rustc_legacy_const_generics(1)] | 3612 | #[rustc_legacy_const_generics(1)] |
| 3613 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3613 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3614 | pub unsafe fn lasx_xvandi_b<const IMM8: u32>(a: v32u8) -> v32u8 { | 3614 | pub fn lasx_xvandi_b<const IMM8: u32>(a: v32u8) -> v32u8 { |
| 3615 | static_assert_uimm_bits!(IMM8, 8); | 3615 | static_assert_uimm_bits!(IMM8, 8); |
| 3616 | __lasx_xvandi_b(a, IMM8) | 3616 | unsafe { __lasx_xvandi_b(a, IMM8) } |
| 3617 | } | 3617 | } |
| 3618 | 3618 | ||
| 3619 | #[inline] | 3619 | #[inline] |
| 3620 | #[target_feature(enable = "lasx")] | 3620 | #[target_feature(enable = "lasx")] |
| 3621 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3621 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3622 | pub unsafe fn lasx_xvor_v(a: v32u8, b: v32u8) -> v32u8 { | 3622 | pub fn lasx_xvor_v(a: v32u8, b: v32u8) -> v32u8 { |
| 3623 | __lasx_xvor_v(a, b) | 3623 | unsafe { __lasx_xvor_v(a, b) } |
| 3624 | } | 3624 | } |
| 3625 | 3625 | ||
| 3626 | #[inline] | 3626 | #[inline] |
| 3627 | #[target_feature(enable = "lasx")] | 3627 | #[target_feature(enable = "lasx")] |
| 3628 | #[rustc_legacy_const_generics(1)] | 3628 | #[rustc_legacy_const_generics(1)] |
| 3629 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3629 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3630 | pub unsafe fn lasx_xvori_b<const IMM8: u32>(a: v32u8) -> v32u8 { | 3630 | pub fn lasx_xvori_b<const IMM8: u32>(a: v32u8) -> v32u8 { |
| 3631 | static_assert_uimm_bits!(IMM8, 8); | 3631 | static_assert_uimm_bits!(IMM8, 8); |
| 3632 | __lasx_xvori_b(a, IMM8) | 3632 | unsafe { __lasx_xvori_b(a, IMM8) } |
| 3633 | } | 3633 | } |
| 3634 | 3634 | ||
| 3635 | #[inline] | 3635 | #[inline] |
| 3636 | #[target_feature(enable = "lasx")] | 3636 | #[target_feature(enable = "lasx")] |
| 3637 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3637 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3638 | pub unsafe fn lasx_xvnor_v(a: v32u8, b: v32u8) -> v32u8 { | 3638 | pub fn lasx_xvnor_v(a: v32u8, b: v32u8) -> v32u8 { |
| 3639 | __lasx_xvnor_v(a, b) | 3639 | unsafe { __lasx_xvnor_v(a, b) } |
| 3640 | } | 3640 | } |
| 3641 | 3641 | ||
| 3642 | #[inline] | 3642 | #[inline] |
| 3643 | #[target_feature(enable = "lasx")] | 3643 | #[target_feature(enable = "lasx")] |
| 3644 | #[rustc_legacy_const_generics(1)] | 3644 | #[rustc_legacy_const_generics(1)] |
| 3645 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3645 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3646 | pub unsafe fn lasx_xvnori_b<const IMM8: u32>(a: v32u8) -> v32u8 { | 3646 | pub fn lasx_xvnori_b<const IMM8: u32>(a: v32u8) -> v32u8 { |
| 3647 | static_assert_uimm_bits!(IMM8, 8); | 3647 | static_assert_uimm_bits!(IMM8, 8); |
| 3648 | __lasx_xvnori_b(a, IMM8) | 3648 | unsafe { __lasx_xvnori_b(a, IMM8) } |
| 3649 | } | 3649 | } |
| 3650 | 3650 | ||
| 3651 | #[inline] | 3651 | #[inline] |
| 3652 | #[target_feature(enable = "lasx")] | 3652 | #[target_feature(enable = "lasx")] |
| 3653 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3653 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3654 | pub unsafe fn lasx_xvxor_v(a: v32u8, b: v32u8) -> v32u8 { | 3654 | pub fn lasx_xvxor_v(a: v32u8, b: v32u8) -> v32u8 { |
| 3655 | __lasx_xvxor_v(a, b) | 3655 | unsafe { __lasx_xvxor_v(a, b) } |
| 3656 | } | 3656 | } |
| 3657 | 3657 | ||
| 3658 | #[inline] | 3658 | #[inline] |
| 3659 | #[target_feature(enable = "lasx")] | 3659 | #[target_feature(enable = "lasx")] |
| 3660 | #[rustc_legacy_const_generics(1)] | 3660 | #[rustc_legacy_const_generics(1)] |
| 3661 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3661 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3662 | pub unsafe fn lasx_xvxori_b<const IMM8: u32>(a: v32u8) -> v32u8 { | 3662 | pub fn lasx_xvxori_b<const IMM8: u32>(a: v32u8) -> v32u8 { |
| 3663 | static_assert_uimm_bits!(IMM8, 8); | 3663 | static_assert_uimm_bits!(IMM8, 8); |
| 3664 | __lasx_xvxori_b(a, IMM8) | 3664 | unsafe { __lasx_xvxori_b(a, IMM8) } |
| 3665 | } | 3665 | } |
| 3666 | 3666 | ||
| 3667 | #[inline] | 3667 | #[inline] |
| 3668 | #[target_feature(enable = "lasx")] | 3668 | #[target_feature(enable = "lasx")] |
| 3669 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3669 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3670 | pub unsafe fn lasx_xvbitsel_v(a: v32u8, b: v32u8, c: v32u8) -> v32u8 { | 3670 | pub fn lasx_xvbitsel_v(a: v32u8, b: v32u8, c: v32u8) -> v32u8 { |
| 3671 | __lasx_xvbitsel_v(a, b, c) | 3671 | unsafe { __lasx_xvbitsel_v(a, b, c) } |
| 3672 | } | 3672 | } |
| 3673 | 3673 | ||
| 3674 | #[inline] | 3674 | #[inline] |
| 3675 | #[target_feature(enable = "lasx")] | 3675 | #[target_feature(enable = "lasx")] |
| 3676 | #[rustc_legacy_const_generics(2)] | 3676 | #[rustc_legacy_const_generics(2)] |
| 3677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3678 | pub unsafe fn lasx_xvbitseli_b<const IMM8: u32>(a: v32u8, b: v32u8) -> v32u8 { | 3678 | pub fn lasx_xvbitseli_b<const IMM8: u32>(a: v32u8, b: v32u8) -> v32u8 { |
| 3679 | static_assert_uimm_bits!(IMM8, 8); | 3679 | static_assert_uimm_bits!(IMM8, 8); |
| 3680 | __lasx_xvbitseli_b(a, b, IMM8) | 3680 | unsafe { __lasx_xvbitseli_b(a, b, IMM8) } |
| 3681 | } | 3681 | } |
| 3682 | 3682 | ||
| 3683 | #[inline] | 3683 | #[inline] |
| 3684 | #[target_feature(enable = "lasx")] | 3684 | #[target_feature(enable = "lasx")] |
| 3685 | #[rustc_legacy_const_generics(1)] | 3685 | #[rustc_legacy_const_generics(1)] |
| 3686 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3686 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3687 | pub unsafe fn lasx_xvshuf4i_b<const IMM8: u32>(a: v32i8) -> v32i8 { | 3687 | pub fn lasx_xvshuf4i_b<const IMM8: u32>(a: v32i8) -> v32i8 { |
| 3688 | static_assert_uimm_bits!(IMM8, 8); | 3688 | static_assert_uimm_bits!(IMM8, 8); |
| 3689 | __lasx_xvshuf4i_b(a, IMM8) | 3689 | unsafe { __lasx_xvshuf4i_b(a, IMM8) } |
| 3690 | } | 3690 | } |
| 3691 | 3691 | ||
| 3692 | #[inline] | 3692 | #[inline] |
| 3693 | #[target_feature(enable = "lasx")] | 3693 | #[target_feature(enable = "lasx")] |
| 3694 | #[rustc_legacy_const_generics(1)] | 3694 | #[rustc_legacy_const_generics(1)] |
| 3695 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3695 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3696 | pub unsafe fn lasx_xvshuf4i_h<const IMM8: u32>(a: v16i16) -> v16i16 { | 3696 | pub fn lasx_xvshuf4i_h<const IMM8: u32>(a: v16i16) -> v16i16 { |
| 3697 | static_assert_uimm_bits!(IMM8, 8); | 3697 | static_assert_uimm_bits!(IMM8, 8); |
| 3698 | __lasx_xvshuf4i_h(a, IMM8) | 3698 | unsafe { __lasx_xvshuf4i_h(a, IMM8) } |
| 3699 | } | 3699 | } |
| 3700 | 3700 | ||
| 3701 | #[inline] | 3701 | #[inline] |
| 3702 | #[target_feature(enable = "lasx")] | 3702 | #[target_feature(enable = "lasx")] |
| 3703 | #[rustc_legacy_const_generics(1)] | 3703 | #[rustc_legacy_const_generics(1)] |
| 3704 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3704 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3705 | pub unsafe fn lasx_xvshuf4i_w<const IMM8: u32>(a: v8i32) -> v8i32 { | 3705 | pub fn lasx_xvshuf4i_w<const IMM8: u32>(a: v8i32) -> v8i32 { |
| 3706 | static_assert_uimm_bits!(IMM8, 8); | 3706 | static_assert_uimm_bits!(IMM8, 8); |
| 3707 | __lasx_xvshuf4i_w(a, IMM8) | 3707 | unsafe { __lasx_xvshuf4i_w(a, IMM8) } |
| 3708 | } | 3708 | } |
| 3709 | 3709 | ||
| 3710 | #[inline] | 3710 | #[inline] |
| 3711 | #[target_feature(enable = "lasx")] | 3711 | #[target_feature(enable = "lasx")] |
| 3712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3713 | pub unsafe fn lasx_xvreplgr2vr_b(a: i32) -> v32i8 { | 3713 | pub fn lasx_xvreplgr2vr_b(a: i32) -> v32i8 { |
| 3714 | __lasx_xvreplgr2vr_b(a) | 3714 | unsafe { __lasx_xvreplgr2vr_b(a) } |
| 3715 | } | 3715 | } |
| 3716 | 3716 | ||
| 3717 | #[inline] | 3717 | #[inline] |
| 3718 | #[target_feature(enable = "lasx")] | 3718 | #[target_feature(enable = "lasx")] |
| 3719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3720 | pub unsafe fn lasx_xvreplgr2vr_h(a: i32) -> v16i16 { | 3720 | pub fn lasx_xvreplgr2vr_h(a: i32) -> v16i16 { |
| 3721 | __lasx_xvreplgr2vr_h(a) | 3721 | unsafe { __lasx_xvreplgr2vr_h(a) } |
| 3722 | } | 3722 | } |
| 3723 | 3723 | ||
| 3724 | #[inline] | 3724 | #[inline] |
| 3725 | #[target_feature(enable = "lasx")] | 3725 | #[target_feature(enable = "lasx")] |
| 3726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3727 | pub unsafe fn lasx_xvreplgr2vr_w(a: i32) -> v8i32 { | 3727 | pub fn lasx_xvreplgr2vr_w(a: i32) -> v8i32 { |
| 3728 | __lasx_xvreplgr2vr_w(a) | 3728 | unsafe { __lasx_xvreplgr2vr_w(a) } |
| 3729 | } | 3729 | } |
| 3730 | 3730 | ||
| 3731 | #[inline] | 3731 | #[inline] |
| 3732 | #[target_feature(enable = "lasx")] | 3732 | #[target_feature(enable = "lasx")] |
| 3733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3734 | pub unsafe fn lasx_xvreplgr2vr_d(a: i64) -> v4i64 { | 3734 | pub fn lasx_xvreplgr2vr_d(a: i64) -> v4i64 { |
| 3735 | __lasx_xvreplgr2vr_d(a) | 3735 | unsafe { __lasx_xvreplgr2vr_d(a) } |
| 3736 | } | 3736 | } |
| 3737 | 3737 | ||
| 3738 | #[inline] | 3738 | #[inline] |
| 3739 | #[target_feature(enable = "lasx")] | 3739 | #[target_feature(enable = "lasx")] |
| 3740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3741 | pub unsafe fn lasx_xvpcnt_b(a: v32i8) -> v32i8 { | 3741 | pub fn lasx_xvpcnt_b(a: v32i8) -> v32i8 { |
| 3742 | __lasx_xvpcnt_b(a) | 3742 | unsafe { __lasx_xvpcnt_b(a) } |
| 3743 | } | 3743 | } |
| 3744 | 3744 | ||
| 3745 | #[inline] | 3745 | #[inline] |
| 3746 | #[target_feature(enable = "lasx")] | 3746 | #[target_feature(enable = "lasx")] |
| 3747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3748 | pub unsafe fn lasx_xvpcnt_h(a: v16i16) -> v16i16 { | 3748 | pub fn lasx_xvpcnt_h(a: v16i16) -> v16i16 { |
| 3749 | __lasx_xvpcnt_h(a) | 3749 | unsafe { __lasx_xvpcnt_h(a) } |
| 3750 | } | 3750 | } |
| 3751 | 3751 | ||
| 3752 | #[inline] | 3752 | #[inline] |
| 3753 | #[target_feature(enable = "lasx")] | 3753 | #[target_feature(enable = "lasx")] |
| 3754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3755 | pub unsafe fn lasx_xvpcnt_w(a: v8i32) -> v8i32 { | 3755 | pub fn lasx_xvpcnt_w(a: v8i32) -> v8i32 { |
| 3756 | __lasx_xvpcnt_w(a) | 3756 | unsafe { __lasx_xvpcnt_w(a) } |
| 3757 | } | 3757 | } |
| 3758 | 3758 | ||
| 3759 | #[inline] | 3759 | #[inline] |
| 3760 | #[target_feature(enable = "lasx")] | 3760 | #[target_feature(enable = "lasx")] |
| 3761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3762 | pub unsafe fn lasx_xvpcnt_d(a: v4i64) -> v4i64 { | 3762 | pub fn lasx_xvpcnt_d(a: v4i64) -> v4i64 { |
| 3763 | __lasx_xvpcnt_d(a) | 3763 | unsafe { __lasx_xvpcnt_d(a) } |
| 3764 | } | 3764 | } |
| 3765 | 3765 | ||
| 3766 | #[inline] | 3766 | #[inline] |
| 3767 | #[target_feature(enable = "lasx")] | 3767 | #[target_feature(enable = "lasx")] |
| 3768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3769 | pub unsafe fn lasx_xvclo_b(a: v32i8) -> v32i8 { | 3769 | pub fn lasx_xvclo_b(a: v32i8) -> v32i8 { |
| 3770 | __lasx_xvclo_b(a) | 3770 | unsafe { __lasx_xvclo_b(a) } |
| 3771 | } | 3771 | } |
| 3772 | 3772 | ||
| 3773 | #[inline] | 3773 | #[inline] |
| 3774 | #[target_feature(enable = "lasx")] | 3774 | #[target_feature(enable = "lasx")] |
| 3775 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3775 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3776 | pub unsafe fn lasx_xvclo_h(a: v16i16) -> v16i16 { | 3776 | pub fn lasx_xvclo_h(a: v16i16) -> v16i16 { |
| 3777 | __lasx_xvclo_h(a) | 3777 | unsafe { __lasx_xvclo_h(a) } |
| 3778 | } | 3778 | } |
| 3779 | 3779 | ||
| 3780 | #[inline] | 3780 | #[inline] |
| 3781 | #[target_feature(enable = "lasx")] | 3781 | #[target_feature(enable = "lasx")] |
| 3782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3783 | pub unsafe fn lasx_xvclo_w(a: v8i32) -> v8i32 { | 3783 | pub fn lasx_xvclo_w(a: v8i32) -> v8i32 { |
| 3784 | __lasx_xvclo_w(a) | 3784 | unsafe { __lasx_xvclo_w(a) } |
| 3785 | } | 3785 | } |
| 3786 | 3786 | ||
| 3787 | #[inline] | 3787 | #[inline] |
| 3788 | #[target_feature(enable = "lasx")] | 3788 | #[target_feature(enable = "lasx")] |
| 3789 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3789 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3790 | pub unsafe fn lasx_xvclo_d(a: v4i64) -> v4i64 { | 3790 | pub fn lasx_xvclo_d(a: v4i64) -> v4i64 { |
| 3791 | __lasx_xvclo_d(a) | 3791 | unsafe { __lasx_xvclo_d(a) } |
| 3792 | } | 3792 | } |
| 3793 | 3793 | ||
| 3794 | #[inline] | 3794 | #[inline] |
| 3795 | #[target_feature(enable = "lasx")] | 3795 | #[target_feature(enable = "lasx")] |
| 3796 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3796 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3797 | pub unsafe fn lasx_xvclz_b(a: v32i8) -> v32i8 { | 3797 | pub fn lasx_xvclz_b(a: v32i8) -> v32i8 { |
| 3798 | __lasx_xvclz_b(a) | 3798 | unsafe { __lasx_xvclz_b(a) } |
| 3799 | } | 3799 | } |
| 3800 | 3800 | ||
| 3801 | #[inline] | 3801 | #[inline] |
| 3802 | #[target_feature(enable = "lasx")] | 3802 | #[target_feature(enable = "lasx")] |
| 3803 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3803 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3804 | pub unsafe fn lasx_xvclz_h(a: v16i16) -> v16i16 { | 3804 | pub fn lasx_xvclz_h(a: v16i16) -> v16i16 { |
| 3805 | __lasx_xvclz_h(a) | 3805 | unsafe { __lasx_xvclz_h(a) } |
| 3806 | } | 3806 | } |
| 3807 | 3807 | ||
| 3808 | #[inline] | 3808 | #[inline] |
| 3809 | #[target_feature(enable = "lasx")] | 3809 | #[target_feature(enable = "lasx")] |
| 3810 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3810 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3811 | pub unsafe fn lasx_xvclz_w(a: v8i32) -> v8i32 { | 3811 | pub fn lasx_xvclz_w(a: v8i32) -> v8i32 { |
| 3812 | __lasx_xvclz_w(a) | 3812 | unsafe { __lasx_xvclz_w(a) } |
| 3813 | } | 3813 | } |
| 3814 | 3814 | ||
| 3815 | #[inline] | 3815 | #[inline] |
| 3816 | #[target_feature(enable = "lasx")] | 3816 | #[target_feature(enable = "lasx")] |
| 3817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3818 | pub unsafe fn lasx_xvclz_d(a: v4i64) -> v4i64 { | 3818 | pub fn lasx_xvclz_d(a: v4i64) -> v4i64 { |
| 3819 | __lasx_xvclz_d(a) | 3819 | unsafe { __lasx_xvclz_d(a) } |
| 3820 | } | 3820 | } |
| 3821 | 3821 | ||
| 3822 | #[inline] | 3822 | #[inline] |
| 3823 | #[target_feature(enable = "lasx")] | 3823 | #[target_feature(enable = "lasx")] |
| 3824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3825 | pub unsafe fn lasx_xvfadd_s(a: v8f32, b: v8f32) -> v8f32 { | 3825 | pub fn lasx_xvfadd_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3826 | __lasx_xvfadd_s(a, b) | 3826 | unsafe { __lasx_xvfadd_s(a, b) } |
| 3827 | } | 3827 | } |
| 3828 | 3828 | ||
| 3829 | #[inline] | 3829 | #[inline] |
| 3830 | #[target_feature(enable = "lasx")] | 3830 | #[target_feature(enable = "lasx")] |
| 3831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3832 | pub unsafe fn lasx_xvfadd_d(a: v4f64, b: v4f64) -> v4f64 { | 3832 | pub fn lasx_xvfadd_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3833 | __lasx_xvfadd_d(a, b) | 3833 | unsafe { __lasx_xvfadd_d(a, b) } |
| 3834 | } | 3834 | } |
| 3835 | 3835 | ||
| 3836 | #[inline] | 3836 | #[inline] |
| 3837 | #[target_feature(enable = "lasx")] | 3837 | #[target_feature(enable = "lasx")] |
| 3838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3839 | pub unsafe fn lasx_xvfsub_s(a: v8f32, b: v8f32) -> v8f32 { | 3839 | pub fn lasx_xvfsub_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3840 | __lasx_xvfsub_s(a, b) | 3840 | unsafe { __lasx_xvfsub_s(a, b) } |
| 3841 | } | 3841 | } |
| 3842 | 3842 | ||
| 3843 | #[inline] | 3843 | #[inline] |
| 3844 | #[target_feature(enable = "lasx")] | 3844 | #[target_feature(enable = "lasx")] |
| 3845 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3845 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3846 | pub unsafe fn lasx_xvfsub_d(a: v4f64, b: v4f64) -> v4f64 { | 3846 | pub fn lasx_xvfsub_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3847 | __lasx_xvfsub_d(a, b) | 3847 | unsafe { __lasx_xvfsub_d(a, b) } |
| 3848 | } | 3848 | } |
| 3849 | 3849 | ||
| 3850 | #[inline] | 3850 | #[inline] |
| 3851 | #[target_feature(enable = "lasx")] | 3851 | #[target_feature(enable = "lasx")] |
| 3852 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3852 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3853 | pub unsafe fn lasx_xvfmul_s(a: v8f32, b: v8f32) -> v8f32 { | 3853 | pub fn lasx_xvfmul_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3854 | __lasx_xvfmul_s(a, b) | 3854 | unsafe { __lasx_xvfmul_s(a, b) } |
| 3855 | } | 3855 | } |
| 3856 | 3856 | ||
| 3857 | #[inline] | 3857 | #[inline] |
| 3858 | #[target_feature(enable = "lasx")] | 3858 | #[target_feature(enable = "lasx")] |
| 3859 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3859 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3860 | pub unsafe fn lasx_xvfmul_d(a: v4f64, b: v4f64) -> v4f64 { | 3860 | pub fn lasx_xvfmul_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3861 | __lasx_xvfmul_d(a, b) | 3861 | unsafe { __lasx_xvfmul_d(a, b) } |
| 3862 | } | 3862 | } |
| 3863 | 3863 | ||
| 3864 | #[inline] | 3864 | #[inline] |
| 3865 | #[target_feature(enable = "lasx")] | 3865 | #[target_feature(enable = "lasx")] |
| 3866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3867 | pub unsafe fn lasx_xvfdiv_s(a: v8f32, b: v8f32) -> v8f32 { | 3867 | pub fn lasx_xvfdiv_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3868 | __lasx_xvfdiv_s(a, b) | 3868 | unsafe { __lasx_xvfdiv_s(a, b) } |
| 3869 | } | 3869 | } |
| 3870 | 3870 | ||
| 3871 | #[inline] | 3871 | #[inline] |
| 3872 | #[target_feature(enable = "lasx")] | 3872 | #[target_feature(enable = "lasx")] |
| 3873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3874 | pub unsafe fn lasx_xvfdiv_d(a: v4f64, b: v4f64) -> v4f64 { | 3874 | pub fn lasx_xvfdiv_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3875 | __lasx_xvfdiv_d(a, b) | 3875 | unsafe { __lasx_xvfdiv_d(a, b) } |
| 3876 | } | 3876 | } |
| 3877 | 3877 | ||
| 3878 | #[inline] | 3878 | #[inline] |
| 3879 | #[target_feature(enable = "lasx")] | 3879 | #[target_feature(enable = "lasx")] |
| 3880 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3880 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3881 | pub unsafe fn lasx_xvfcvt_h_s(a: v8f32, b: v8f32) -> v16i16 { | 3881 | pub fn lasx_xvfcvt_h_s(a: v8f32, b: v8f32) -> v16i16 { |
| 3882 | __lasx_xvfcvt_h_s(a, b) | 3882 | unsafe { __lasx_xvfcvt_h_s(a, b) } |
| 3883 | } | 3883 | } |
| 3884 | 3884 | ||
| 3885 | #[inline] | 3885 | #[inline] |
| 3886 | #[target_feature(enable = "lasx")] | 3886 | #[target_feature(enable = "lasx")] |
| 3887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3888 | pub unsafe fn lasx_xvfcvt_s_d(a: v4f64, b: v4f64) -> v8f32 { | 3888 | pub fn lasx_xvfcvt_s_d(a: v4f64, b: v4f64) -> v8f32 { |
| 3889 | __lasx_xvfcvt_s_d(a, b) | 3889 | unsafe { __lasx_xvfcvt_s_d(a, b) } |
| 3890 | } | 3890 | } |
| 3891 | 3891 | ||
| 3892 | #[inline] | 3892 | #[inline] |
| 3893 | #[target_feature(enable = "lasx")] | 3893 | #[target_feature(enable = "lasx")] |
| 3894 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3894 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3895 | pub unsafe fn lasx_xvfmin_s(a: v8f32, b: v8f32) -> v8f32 { | 3895 | pub fn lasx_xvfmin_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3896 | __lasx_xvfmin_s(a, b) | 3896 | unsafe { __lasx_xvfmin_s(a, b) } |
| 3897 | } | 3897 | } |
| 3898 | 3898 | ||
| 3899 | #[inline] | 3899 | #[inline] |
| 3900 | #[target_feature(enable = "lasx")] | 3900 | #[target_feature(enable = "lasx")] |
| 3901 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3901 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3902 | pub unsafe fn lasx_xvfmin_d(a: v4f64, b: v4f64) -> v4f64 { | 3902 | pub fn lasx_xvfmin_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3903 | __lasx_xvfmin_d(a, b) | 3903 | unsafe { __lasx_xvfmin_d(a, b) } |
| 3904 | } | 3904 | } |
| 3905 | 3905 | ||
| 3906 | #[inline] | 3906 | #[inline] |
| 3907 | #[target_feature(enable = "lasx")] | 3907 | #[target_feature(enable = "lasx")] |
| 3908 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3908 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3909 | pub unsafe fn lasx_xvfmina_s(a: v8f32, b: v8f32) -> v8f32 { | 3909 | pub fn lasx_xvfmina_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3910 | __lasx_xvfmina_s(a, b) | 3910 | unsafe { __lasx_xvfmina_s(a, b) } |
| 3911 | } | 3911 | } |
| 3912 | 3912 | ||
| 3913 | #[inline] | 3913 | #[inline] |
| 3914 | #[target_feature(enable = "lasx")] | 3914 | #[target_feature(enable = "lasx")] |
| 3915 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3915 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3916 | pub unsafe fn lasx_xvfmina_d(a: v4f64, b: v4f64) -> v4f64 { | 3916 | pub fn lasx_xvfmina_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3917 | __lasx_xvfmina_d(a, b) | 3917 | unsafe { __lasx_xvfmina_d(a, b) } |
| 3918 | } | 3918 | } |
| 3919 | 3919 | ||
| 3920 | #[inline] | 3920 | #[inline] |
| 3921 | #[target_feature(enable = "lasx")] | 3921 | #[target_feature(enable = "lasx")] |
| 3922 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3922 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3923 | pub unsafe fn lasx_xvfmax_s(a: v8f32, b: v8f32) -> v8f32 { | 3923 | pub fn lasx_xvfmax_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3924 | __lasx_xvfmax_s(a, b) | 3924 | unsafe { __lasx_xvfmax_s(a, b) } |
| 3925 | } | 3925 | } |
| 3926 | 3926 | ||
| 3927 | #[inline] | 3927 | #[inline] |
| 3928 | #[target_feature(enable = "lasx")] | 3928 | #[target_feature(enable = "lasx")] |
| 3929 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3929 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3930 | pub unsafe fn lasx_xvfmax_d(a: v4f64, b: v4f64) -> v4f64 { | 3930 | pub fn lasx_xvfmax_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3931 | __lasx_xvfmax_d(a, b) | 3931 | unsafe { __lasx_xvfmax_d(a, b) } |
| 3932 | } | 3932 | } |
| 3933 | 3933 | ||
| 3934 | #[inline] | 3934 | #[inline] |
| 3935 | #[target_feature(enable = "lasx")] | 3935 | #[target_feature(enable = "lasx")] |
| 3936 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3936 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3937 | pub unsafe fn lasx_xvfmaxa_s(a: v8f32, b: v8f32) -> v8f32 { | 3937 | pub fn lasx_xvfmaxa_s(a: v8f32, b: v8f32) -> v8f32 { |
| 3938 | __lasx_xvfmaxa_s(a, b) | 3938 | unsafe { __lasx_xvfmaxa_s(a, b) } |
| 3939 | } | 3939 | } |
| 3940 | 3940 | ||
| 3941 | #[inline] | 3941 | #[inline] |
| 3942 | #[target_feature(enable = "lasx")] | 3942 | #[target_feature(enable = "lasx")] |
| 3943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3944 | pub unsafe fn lasx_xvfmaxa_d(a: v4f64, b: v4f64) -> v4f64 { | 3944 | pub fn lasx_xvfmaxa_d(a: v4f64, b: v4f64) -> v4f64 { |
| 3945 | __lasx_xvfmaxa_d(a, b) | 3945 | unsafe { __lasx_xvfmaxa_d(a, b) } |
| 3946 | } | 3946 | } |
| 3947 | 3947 | ||
| 3948 | #[inline] | 3948 | #[inline] |
| 3949 | #[target_feature(enable = "lasx")] | 3949 | #[target_feature(enable = "lasx")] |
| 3950 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3950 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3951 | pub unsafe fn lasx_xvfclass_s(a: v8f32) -> v8i32 { | 3951 | pub fn lasx_xvfclass_s(a: v8f32) -> v8i32 { |
| 3952 | __lasx_xvfclass_s(a) | 3952 | unsafe { __lasx_xvfclass_s(a) } |
| 3953 | } | 3953 | } |
| 3954 | 3954 | ||
| 3955 | #[inline] | 3955 | #[inline] |
| 3956 | #[target_feature(enable = "lasx")] | 3956 | #[target_feature(enable = "lasx")] |
| 3957 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3957 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3958 | pub unsafe fn lasx_xvfclass_d(a: v4f64) -> v4i64 { | 3958 | pub fn lasx_xvfclass_d(a: v4f64) -> v4i64 { |
| 3959 | __lasx_xvfclass_d(a) | 3959 | unsafe { __lasx_xvfclass_d(a) } |
| 3960 | } | 3960 | } |
| 3961 | 3961 | ||
| 3962 | #[inline] | 3962 | #[inline] |
| 3963 | #[target_feature(enable = "lasx")] | 3963 | #[target_feature(enable = "lasx")] |
| 3964 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3964 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3965 | pub unsafe fn lasx_xvfsqrt_s(a: v8f32) -> v8f32 { | 3965 | pub fn lasx_xvfsqrt_s(a: v8f32) -> v8f32 { |
| 3966 | __lasx_xvfsqrt_s(a) | 3966 | unsafe { __lasx_xvfsqrt_s(a) } |
| 3967 | } | 3967 | } |
| 3968 | 3968 | ||
| 3969 | #[inline] | 3969 | #[inline] |
| 3970 | #[target_feature(enable = "lasx")] | 3970 | #[target_feature(enable = "lasx")] |
| 3971 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3971 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3972 | pub unsafe fn lasx_xvfsqrt_d(a: v4f64) -> v4f64 { | 3972 | pub fn lasx_xvfsqrt_d(a: v4f64) -> v4f64 { |
| 3973 | __lasx_xvfsqrt_d(a) | 3973 | unsafe { __lasx_xvfsqrt_d(a) } |
| 3974 | } | 3974 | } |
| 3975 | 3975 | ||
| 3976 | #[inline] | 3976 | #[inline] |
| 3977 | #[target_feature(enable = "lasx")] | 3977 | #[target_feature(enable = "lasx")] |
| 3978 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3978 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3979 | pub unsafe fn lasx_xvfrecip_s(a: v8f32) -> v8f32 { | 3979 | pub fn lasx_xvfrecip_s(a: v8f32) -> v8f32 { |
| 3980 | __lasx_xvfrecip_s(a) | 3980 | unsafe { __lasx_xvfrecip_s(a) } |
| 3981 | } | 3981 | } |
| 3982 | 3982 | ||
| 3983 | #[inline] | 3983 | #[inline] |
| 3984 | #[target_feature(enable = "lasx")] | 3984 | #[target_feature(enable = "lasx")] |
| 3985 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3985 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3986 | pub unsafe fn lasx_xvfrecip_d(a: v4f64) -> v4f64 { | 3986 | pub fn lasx_xvfrecip_d(a: v4f64) -> v4f64 { |
| 3987 | __lasx_xvfrecip_d(a) | 3987 | unsafe { __lasx_xvfrecip_d(a) } |
| 3988 | } | 3988 | } |
| 3989 | 3989 | ||
| 3990 | #[inline] | 3990 | #[inline] |
| 3991 | #[target_feature(enable = "lasx,frecipe")] | 3991 | #[target_feature(enable = "lasx,frecipe")] |
| 3992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3993 | pub unsafe fn lasx_xvfrecipe_s(a: v8f32) -> v8f32 { | 3993 | pub fn lasx_xvfrecipe_s(a: v8f32) -> v8f32 { |
| 3994 | __lasx_xvfrecipe_s(a) | 3994 | unsafe { __lasx_xvfrecipe_s(a) } |
| 3995 | } | 3995 | } |
| 3996 | 3996 | ||
| 3997 | #[inline] | 3997 | #[inline] |
| 3998 | #[target_feature(enable = "lasx,frecipe")] | 3998 | #[target_feature(enable = "lasx,frecipe")] |
| 3999 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3999 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4000 | pub unsafe fn lasx_xvfrecipe_d(a: v4f64) -> v4f64 { | 4000 | pub fn lasx_xvfrecipe_d(a: v4f64) -> v4f64 { |
| 4001 | __lasx_xvfrecipe_d(a) | 4001 | unsafe { __lasx_xvfrecipe_d(a) } |
| 4002 | } | 4002 | } |
| 4003 | 4003 | ||
| 4004 | #[inline] | 4004 | #[inline] |
| 4005 | #[target_feature(enable = "lasx,frecipe")] | 4005 | #[target_feature(enable = "lasx,frecipe")] |
| 4006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4007 | pub unsafe fn lasx_xvfrsqrte_s(a: v8f32) -> v8f32 { | 4007 | pub fn lasx_xvfrsqrte_s(a: v8f32) -> v8f32 { |
| 4008 | __lasx_xvfrsqrte_s(a) | 4008 | unsafe { __lasx_xvfrsqrte_s(a) } |
| 4009 | } | 4009 | } |
| 4010 | 4010 | ||
| 4011 | #[inline] | 4011 | #[inline] |
| 4012 | #[target_feature(enable = "lasx,frecipe")] | 4012 | #[target_feature(enable = "lasx,frecipe")] |
| 4013 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4013 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4014 | pub unsafe fn lasx_xvfrsqrte_d(a: v4f64) -> v4f64 { | 4014 | pub fn lasx_xvfrsqrte_d(a: v4f64) -> v4f64 { |
| 4015 | __lasx_xvfrsqrte_d(a) | 4015 | unsafe { __lasx_xvfrsqrte_d(a) } |
| 4016 | } | 4016 | } |
| 4017 | 4017 | ||
| 4018 | #[inline] | 4018 | #[inline] |
| 4019 | #[target_feature(enable = "lasx")] | 4019 | #[target_feature(enable = "lasx")] |
| 4020 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4020 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4021 | pub unsafe fn lasx_xvfrint_s(a: v8f32) -> v8f32 { | 4021 | pub fn lasx_xvfrint_s(a: v8f32) -> v8f32 { |
| 4022 | __lasx_xvfrint_s(a) | 4022 | unsafe { __lasx_xvfrint_s(a) } |
| 4023 | } | 4023 | } |
| 4024 | 4024 | ||
| 4025 | #[inline] | 4025 | #[inline] |
| 4026 | #[target_feature(enable = "lasx")] | 4026 | #[target_feature(enable = "lasx")] |
| 4027 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4027 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4028 | pub unsafe fn lasx_xvfrint_d(a: v4f64) -> v4f64 { | 4028 | pub fn lasx_xvfrint_d(a: v4f64) -> v4f64 { |
| 4029 | __lasx_xvfrint_d(a) | 4029 | unsafe { __lasx_xvfrint_d(a) } |
| 4030 | } | 4030 | } |
| 4031 | 4031 | ||
| 4032 | #[inline] | 4032 | #[inline] |
| 4033 | #[target_feature(enable = "lasx")] | 4033 | #[target_feature(enable = "lasx")] |
| 4034 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4034 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4035 | pub unsafe fn lasx_xvfrsqrt_s(a: v8f32) -> v8f32 { | 4035 | pub fn lasx_xvfrsqrt_s(a: v8f32) -> v8f32 { |
| 4036 | __lasx_xvfrsqrt_s(a) | 4036 | unsafe { __lasx_xvfrsqrt_s(a) } |
| 4037 | } | 4037 | } |
| 4038 | 4038 | ||
| 4039 | #[inline] | 4039 | #[inline] |
| 4040 | #[target_feature(enable = "lasx")] | 4040 | #[target_feature(enable = "lasx")] |
| 4041 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4041 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4042 | pub unsafe fn lasx_xvfrsqrt_d(a: v4f64) -> v4f64 { | 4042 | pub fn lasx_xvfrsqrt_d(a: v4f64) -> v4f64 { |
| 4043 | __lasx_xvfrsqrt_d(a) | 4043 | unsafe { __lasx_xvfrsqrt_d(a) } |
| 4044 | } | 4044 | } |
| 4045 | 4045 | ||
| 4046 | #[inline] | 4046 | #[inline] |
| 4047 | #[target_feature(enable = "lasx")] | 4047 | #[target_feature(enable = "lasx")] |
| 4048 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4048 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4049 | pub unsafe fn lasx_xvflogb_s(a: v8f32) -> v8f32 { | 4049 | pub fn lasx_xvflogb_s(a: v8f32) -> v8f32 { |
| 4050 | __lasx_xvflogb_s(a) | 4050 | unsafe { __lasx_xvflogb_s(a) } |
| 4051 | } | 4051 | } |
| 4052 | 4052 | ||
| 4053 | #[inline] | 4053 | #[inline] |
| 4054 | #[target_feature(enable = "lasx")] | 4054 | #[target_feature(enable = "lasx")] |
| 4055 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4055 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4056 | pub unsafe fn lasx_xvflogb_d(a: v4f64) -> v4f64 { | 4056 | pub fn lasx_xvflogb_d(a: v4f64) -> v4f64 { |
| 4057 | __lasx_xvflogb_d(a) | 4057 | unsafe { __lasx_xvflogb_d(a) } |
| 4058 | } | 4058 | } |
| 4059 | 4059 | ||
| 4060 | #[inline] | 4060 | #[inline] |
| 4061 | #[target_feature(enable = "lasx")] | 4061 | #[target_feature(enable = "lasx")] |
| 4062 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4062 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4063 | pub unsafe fn lasx_xvfcvth_s_h(a: v16i16) -> v8f32 { | 4063 | pub fn lasx_xvfcvth_s_h(a: v16i16) -> v8f32 { |
| 4064 | __lasx_xvfcvth_s_h(a) | 4064 | unsafe { __lasx_xvfcvth_s_h(a) } |
| 4065 | } | 4065 | } |
| 4066 | 4066 | ||
| 4067 | #[inline] | 4067 | #[inline] |
| 4068 | #[target_feature(enable = "lasx")] | 4068 | #[target_feature(enable = "lasx")] |
| 4069 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4069 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4070 | pub unsafe fn lasx_xvfcvth_d_s(a: v8f32) -> v4f64 { | 4070 | pub fn lasx_xvfcvth_d_s(a: v8f32) -> v4f64 { |
| 4071 | __lasx_xvfcvth_d_s(a) | 4071 | unsafe { __lasx_xvfcvth_d_s(a) } |
| 4072 | } | 4072 | } |
| 4073 | 4073 | ||
| 4074 | #[inline] | 4074 | #[inline] |
| 4075 | #[target_feature(enable = "lasx")] | 4075 | #[target_feature(enable = "lasx")] |
| 4076 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4076 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4077 | pub unsafe fn lasx_xvfcvtl_s_h(a: v16i16) -> v8f32 { | 4077 | pub fn lasx_xvfcvtl_s_h(a: v16i16) -> v8f32 { |
| 4078 | __lasx_xvfcvtl_s_h(a) | 4078 | unsafe { __lasx_xvfcvtl_s_h(a) } |
| 4079 | } | 4079 | } |
| 4080 | 4080 | ||
| 4081 | #[inline] | 4081 | #[inline] |
| 4082 | #[target_feature(enable = "lasx")] | 4082 | #[target_feature(enable = "lasx")] |
| 4083 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4083 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4084 | pub unsafe fn lasx_xvfcvtl_d_s(a: v8f32) -> v4f64 { | 4084 | pub fn lasx_xvfcvtl_d_s(a: v8f32) -> v4f64 { |
| 4085 | __lasx_xvfcvtl_d_s(a) | 4085 | unsafe { __lasx_xvfcvtl_d_s(a) } |
| 4086 | } | 4086 | } |
| 4087 | 4087 | ||
| 4088 | #[inline] | 4088 | #[inline] |
| 4089 | #[target_feature(enable = "lasx")] | 4089 | #[target_feature(enable = "lasx")] |
| 4090 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4090 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4091 | pub unsafe fn lasx_xvftint_w_s(a: v8f32) -> v8i32 { | 4091 | pub fn lasx_xvftint_w_s(a: v8f32) -> v8i32 { |
| 4092 | __lasx_xvftint_w_s(a) | 4092 | unsafe { __lasx_xvftint_w_s(a) } |
| 4093 | } | 4093 | } |
| 4094 | 4094 | ||
| 4095 | #[inline] | 4095 | #[inline] |
| 4096 | #[target_feature(enable = "lasx")] | 4096 | #[target_feature(enable = "lasx")] |
| 4097 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4097 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4098 | pub unsafe fn lasx_xvftint_l_d(a: v4f64) -> v4i64 { | 4098 | pub fn lasx_xvftint_l_d(a: v4f64) -> v4i64 { |
| 4099 | __lasx_xvftint_l_d(a) | 4099 | unsafe { __lasx_xvftint_l_d(a) } |
| 4100 | } | 4100 | } |
| 4101 | 4101 | ||
| 4102 | #[inline] | 4102 | #[inline] |
| 4103 | #[target_feature(enable = "lasx")] | 4103 | #[target_feature(enable = "lasx")] |
| 4104 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4104 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4105 | pub unsafe fn lasx_xvftint_wu_s(a: v8f32) -> v8u32 { | 4105 | pub fn lasx_xvftint_wu_s(a: v8f32) -> v8u32 { |
| 4106 | __lasx_xvftint_wu_s(a) | 4106 | unsafe { __lasx_xvftint_wu_s(a) } |
| 4107 | } | 4107 | } |
| 4108 | 4108 | ||
| 4109 | #[inline] | 4109 | #[inline] |
| 4110 | #[target_feature(enable = "lasx")] | 4110 | #[target_feature(enable = "lasx")] |
| 4111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4112 | pub unsafe fn lasx_xvftint_lu_d(a: v4f64) -> v4u64 { | 4112 | pub fn lasx_xvftint_lu_d(a: v4f64) -> v4u64 { |
| 4113 | __lasx_xvftint_lu_d(a) | 4113 | unsafe { __lasx_xvftint_lu_d(a) } |
| 4114 | } | 4114 | } |
| 4115 | 4115 | ||
| 4116 | #[inline] | 4116 | #[inline] |
| 4117 | #[target_feature(enable = "lasx")] | 4117 | #[target_feature(enable = "lasx")] |
| 4118 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4118 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4119 | pub unsafe fn lasx_xvftintrz_w_s(a: v8f32) -> v8i32 { | 4119 | pub fn lasx_xvftintrz_w_s(a: v8f32) -> v8i32 { |
| 4120 | __lasx_xvftintrz_w_s(a) | 4120 | unsafe { __lasx_xvftintrz_w_s(a) } |
| 4121 | } | 4121 | } |
| 4122 | 4122 | ||
| 4123 | #[inline] | 4123 | #[inline] |
| 4124 | #[target_feature(enable = "lasx")] | 4124 | #[target_feature(enable = "lasx")] |
| 4125 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4125 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4126 | pub unsafe fn lasx_xvftintrz_l_d(a: v4f64) -> v4i64 { | 4126 | pub fn lasx_xvftintrz_l_d(a: v4f64) -> v4i64 { |
| 4127 | __lasx_xvftintrz_l_d(a) | 4127 | unsafe { __lasx_xvftintrz_l_d(a) } |
| 4128 | } | 4128 | } |
| 4129 | 4129 | ||
| 4130 | #[inline] | 4130 | #[inline] |
| 4131 | #[target_feature(enable = "lasx")] | 4131 | #[target_feature(enable = "lasx")] |
| 4132 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4132 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4133 | pub unsafe fn lasx_xvftintrz_wu_s(a: v8f32) -> v8u32 { | 4133 | pub fn lasx_xvftintrz_wu_s(a: v8f32) -> v8u32 { |
| 4134 | __lasx_xvftintrz_wu_s(a) | 4134 | unsafe { __lasx_xvftintrz_wu_s(a) } |
| 4135 | } | 4135 | } |
| 4136 | 4136 | ||
| 4137 | #[inline] | 4137 | #[inline] |
| 4138 | #[target_feature(enable = "lasx")] | 4138 | #[target_feature(enable = "lasx")] |
| 4139 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4139 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4140 | pub unsafe fn lasx_xvftintrz_lu_d(a: v4f64) -> v4u64 { | 4140 | pub fn lasx_xvftintrz_lu_d(a: v4f64) -> v4u64 { |
| 4141 | __lasx_xvftintrz_lu_d(a) | 4141 | unsafe { __lasx_xvftintrz_lu_d(a) } |
| 4142 | } | 4142 | } |
| 4143 | 4143 | ||
| 4144 | #[inline] | 4144 | #[inline] |
| 4145 | #[target_feature(enable = "lasx")] | 4145 | #[target_feature(enable = "lasx")] |
| 4146 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4146 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4147 | pub unsafe fn lasx_xvffint_s_w(a: v8i32) -> v8f32 { | 4147 | pub fn lasx_xvffint_s_w(a: v8i32) -> v8f32 { |
| 4148 | __lasx_xvffint_s_w(a) | 4148 | unsafe { __lasx_xvffint_s_w(a) } |
| 4149 | } | 4149 | } |
| 4150 | 4150 | ||
| 4151 | #[inline] | 4151 | #[inline] |
| 4152 | #[target_feature(enable = "lasx")] | 4152 | #[target_feature(enable = "lasx")] |
| 4153 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4153 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4154 | pub unsafe fn lasx_xvffint_d_l(a: v4i64) -> v4f64 { | 4154 | pub fn lasx_xvffint_d_l(a: v4i64) -> v4f64 { |
| 4155 | __lasx_xvffint_d_l(a) | 4155 | unsafe { __lasx_xvffint_d_l(a) } |
| 4156 | } | 4156 | } |
| 4157 | 4157 | ||
| 4158 | #[inline] | 4158 | #[inline] |
| 4159 | #[target_feature(enable = "lasx")] | 4159 | #[target_feature(enable = "lasx")] |
| 4160 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4160 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4161 | pub unsafe fn lasx_xvffint_s_wu(a: v8u32) -> v8f32 { | 4161 | pub fn lasx_xvffint_s_wu(a: v8u32) -> v8f32 { |
| 4162 | __lasx_xvffint_s_wu(a) | 4162 | unsafe { __lasx_xvffint_s_wu(a) } |
| 4163 | } | 4163 | } |
| 4164 | 4164 | ||
| 4165 | #[inline] | 4165 | #[inline] |
| 4166 | #[target_feature(enable = "lasx")] | 4166 | #[target_feature(enable = "lasx")] |
| 4167 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4167 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4168 | pub unsafe fn lasx_xvffint_d_lu(a: v4u64) -> v4f64 { | 4168 | pub fn lasx_xvffint_d_lu(a: v4u64) -> v4f64 { |
| 4169 | __lasx_xvffint_d_lu(a) | 4169 | unsafe { __lasx_xvffint_d_lu(a) } |
| 4170 | } | 4170 | } |
| 4171 | 4171 | ||
| 4172 | #[inline] | 4172 | #[inline] |
| 4173 | #[target_feature(enable = "lasx")] | 4173 | #[target_feature(enable = "lasx")] |
| 4174 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4174 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4175 | pub unsafe fn lasx_xvreplve_b(a: v32i8, b: i32) -> v32i8 { | 4175 | pub fn lasx_xvreplve_b(a: v32i8, b: i32) -> v32i8 { |
| 4176 | __lasx_xvreplve_b(a, b) | 4176 | unsafe { __lasx_xvreplve_b(a, b) } |
| 4177 | } | 4177 | } |
| 4178 | 4178 | ||
| 4179 | #[inline] | 4179 | #[inline] |
| 4180 | #[target_feature(enable = "lasx")] | 4180 | #[target_feature(enable = "lasx")] |
| 4181 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4181 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4182 | pub unsafe fn lasx_xvreplve_h(a: v16i16, b: i32) -> v16i16 { | 4182 | pub fn lasx_xvreplve_h(a: v16i16, b: i32) -> v16i16 { |
| 4183 | __lasx_xvreplve_h(a, b) | 4183 | unsafe { __lasx_xvreplve_h(a, b) } |
| 4184 | } | 4184 | } |
| 4185 | 4185 | ||
| 4186 | #[inline] | 4186 | #[inline] |
| 4187 | #[target_feature(enable = "lasx")] | 4187 | #[target_feature(enable = "lasx")] |
| 4188 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4188 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4189 | pub unsafe fn lasx_xvreplve_w(a: v8i32, b: i32) -> v8i32 { | 4189 | pub fn lasx_xvreplve_w(a: v8i32, b: i32) -> v8i32 { |
| 4190 | __lasx_xvreplve_w(a, b) | 4190 | unsafe { __lasx_xvreplve_w(a, b) } |
| 4191 | } | 4191 | } |
| 4192 | 4192 | ||
| 4193 | #[inline] | 4193 | #[inline] |
| 4194 | #[target_feature(enable = "lasx")] | 4194 | #[target_feature(enable = "lasx")] |
| 4195 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4195 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4196 | pub unsafe fn lasx_xvreplve_d(a: v4i64, b: i32) -> v4i64 { | 4196 | pub fn lasx_xvreplve_d(a: v4i64, b: i32) -> v4i64 { |
| 4197 | __lasx_xvreplve_d(a, b) | 4197 | unsafe { __lasx_xvreplve_d(a, b) } |
| 4198 | } | 4198 | } |
| 4199 | 4199 | ||
| 4200 | #[inline] | 4200 | #[inline] |
| 4201 | #[target_feature(enable = "lasx")] | 4201 | #[target_feature(enable = "lasx")] |
| 4202 | #[rustc_legacy_const_generics(2)] | 4202 | #[rustc_legacy_const_generics(2)] |
| 4203 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4203 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4204 | pub unsafe fn lasx_xvpermi_w<const IMM8: u32>(a: v8i32, b: v8i32) -> v8i32 { | 4204 | pub fn lasx_xvpermi_w<const IMM8: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 4205 | static_assert_uimm_bits!(IMM8, 8); | 4205 | static_assert_uimm_bits!(IMM8, 8); |
| 4206 | __lasx_xvpermi_w(a, b, IMM8) | 4206 | unsafe { __lasx_xvpermi_w(a, b, IMM8) } |
| 4207 | } | 4207 | } |
| 4208 | 4208 | ||
| 4209 | #[inline] | 4209 | #[inline] |
| 4210 | #[target_feature(enable = "lasx")] | 4210 | #[target_feature(enable = "lasx")] |
| 4211 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4211 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4212 | pub unsafe fn lasx_xvandn_v(a: v32u8, b: v32u8) -> v32u8 { | 4212 | pub fn lasx_xvandn_v(a: v32u8, b: v32u8) -> v32u8 { |
| 4213 | __lasx_xvandn_v(a, b) | 4213 | unsafe { __lasx_xvandn_v(a, b) } |
| 4214 | } | 4214 | } |
| 4215 | 4215 | ||
| 4216 | #[inline] | 4216 | #[inline] |
| 4217 | #[target_feature(enable = "lasx")] | 4217 | #[target_feature(enable = "lasx")] |
| 4218 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4218 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4219 | pub unsafe fn lasx_xvneg_b(a: v32i8) -> v32i8 { | 4219 | pub fn lasx_xvneg_b(a: v32i8) -> v32i8 { |
| 4220 | __lasx_xvneg_b(a) | 4220 | unsafe { __lasx_xvneg_b(a) } |
| 4221 | } | 4221 | } |
| 4222 | 4222 | ||
| 4223 | #[inline] | 4223 | #[inline] |
| 4224 | #[target_feature(enable = "lasx")] | 4224 | #[target_feature(enable = "lasx")] |
| 4225 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4225 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4226 | pub unsafe fn lasx_xvneg_h(a: v16i16) -> v16i16 { | 4226 | pub fn lasx_xvneg_h(a: v16i16) -> v16i16 { |
| 4227 | __lasx_xvneg_h(a) | 4227 | unsafe { __lasx_xvneg_h(a) } |
| 4228 | } | 4228 | } |
| 4229 | 4229 | ||
| 4230 | #[inline] | 4230 | #[inline] |
| 4231 | #[target_feature(enable = "lasx")] | 4231 | #[target_feature(enable = "lasx")] |
| 4232 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4232 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4233 | pub unsafe fn lasx_xvneg_w(a: v8i32) -> v8i32 { | 4233 | pub fn lasx_xvneg_w(a: v8i32) -> v8i32 { |
| 4234 | __lasx_xvneg_w(a) | 4234 | unsafe { __lasx_xvneg_w(a) } |
| 4235 | } | 4235 | } |
| 4236 | 4236 | ||
| 4237 | #[inline] | 4237 | #[inline] |
| 4238 | #[target_feature(enable = "lasx")] | 4238 | #[target_feature(enable = "lasx")] |
| 4239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4240 | pub unsafe fn lasx_xvneg_d(a: v4i64) -> v4i64 { | 4240 | pub fn lasx_xvneg_d(a: v4i64) -> v4i64 { |
| 4241 | __lasx_xvneg_d(a) | 4241 | unsafe { __lasx_xvneg_d(a) } |
| 4242 | } | 4242 | } |
| 4243 | 4243 | ||
| 4244 | #[inline] | 4244 | #[inline] |
| 4245 | #[target_feature(enable = "lasx")] | 4245 | #[target_feature(enable = "lasx")] |
| 4246 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4246 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4247 | pub unsafe fn lasx_xvmuh_b(a: v32i8, b: v32i8) -> v32i8 { | 4247 | pub fn lasx_xvmuh_b(a: v32i8, b: v32i8) -> v32i8 { |
| 4248 | __lasx_xvmuh_b(a, b) | 4248 | unsafe { __lasx_xvmuh_b(a, b) } |
| 4249 | } | 4249 | } |
| 4250 | 4250 | ||
| 4251 | #[inline] | 4251 | #[inline] |
| 4252 | #[target_feature(enable = "lasx")] | 4252 | #[target_feature(enable = "lasx")] |
| 4253 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4253 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4254 | pub unsafe fn lasx_xvmuh_h(a: v16i16, b: v16i16) -> v16i16 { | 4254 | pub fn lasx_xvmuh_h(a: v16i16, b: v16i16) -> v16i16 { |
| 4255 | __lasx_xvmuh_h(a, b) | 4255 | unsafe { __lasx_xvmuh_h(a, b) } |
| 4256 | } | 4256 | } |
| 4257 | 4257 | ||
| 4258 | #[inline] | 4258 | #[inline] |
| 4259 | #[target_feature(enable = "lasx")] | 4259 | #[target_feature(enable = "lasx")] |
| 4260 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4260 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4261 | pub unsafe fn lasx_xvmuh_w(a: v8i32, b: v8i32) -> v8i32 { | 4261 | pub fn lasx_xvmuh_w(a: v8i32, b: v8i32) -> v8i32 { |
| 4262 | __lasx_xvmuh_w(a, b) | 4262 | unsafe { __lasx_xvmuh_w(a, b) } |
| 4263 | } | 4263 | } |
| 4264 | 4264 | ||
| 4265 | #[inline] | 4265 | #[inline] |
| 4266 | #[target_feature(enable = "lasx")] | 4266 | #[target_feature(enable = "lasx")] |
| 4267 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4267 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4268 | pub unsafe fn lasx_xvmuh_d(a: v4i64, b: v4i64) -> v4i64 { | 4268 | pub fn lasx_xvmuh_d(a: v4i64, b: v4i64) -> v4i64 { |
| 4269 | __lasx_xvmuh_d(a, b) | 4269 | unsafe { __lasx_xvmuh_d(a, b) } |
| 4270 | } | 4270 | } |
| 4271 | 4271 | ||
| 4272 | #[inline] | 4272 | #[inline] |
| 4273 | #[target_feature(enable = "lasx")] | 4273 | #[target_feature(enable = "lasx")] |
| 4274 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4274 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4275 | pub unsafe fn lasx_xvmuh_bu(a: v32u8, b: v32u8) -> v32u8 { | 4275 | pub fn lasx_xvmuh_bu(a: v32u8, b: v32u8) -> v32u8 { |
| 4276 | __lasx_xvmuh_bu(a, b) | 4276 | unsafe { __lasx_xvmuh_bu(a, b) } |
| 4277 | } | 4277 | } |
| 4278 | 4278 | ||
| 4279 | #[inline] | 4279 | #[inline] |
| 4280 | #[target_feature(enable = "lasx")] | 4280 | #[target_feature(enable = "lasx")] |
| 4281 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4281 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4282 | pub unsafe fn lasx_xvmuh_hu(a: v16u16, b: v16u16) -> v16u16 { | 4282 | pub fn lasx_xvmuh_hu(a: v16u16, b: v16u16) -> v16u16 { |
| 4283 | __lasx_xvmuh_hu(a, b) | 4283 | unsafe { __lasx_xvmuh_hu(a, b) } |
| 4284 | } | 4284 | } |
| 4285 | 4285 | ||
| 4286 | #[inline] | 4286 | #[inline] |
| 4287 | #[target_feature(enable = "lasx")] | 4287 | #[target_feature(enable = "lasx")] |
| 4288 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4288 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4289 | pub unsafe fn lasx_xvmuh_wu(a: v8u32, b: v8u32) -> v8u32 { | 4289 | pub fn lasx_xvmuh_wu(a: v8u32, b: v8u32) -> v8u32 { |
| 4290 | __lasx_xvmuh_wu(a, b) | 4290 | unsafe { __lasx_xvmuh_wu(a, b) } |
| 4291 | } | 4291 | } |
| 4292 | 4292 | ||
| 4293 | #[inline] | 4293 | #[inline] |
| 4294 | #[target_feature(enable = "lasx")] | 4294 | #[target_feature(enable = "lasx")] |
| 4295 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4295 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4296 | pub unsafe fn lasx_xvmuh_du(a: v4u64, b: v4u64) -> v4u64 { | 4296 | pub fn lasx_xvmuh_du(a: v4u64, b: v4u64) -> v4u64 { |
| 4297 | __lasx_xvmuh_du(a, b) | 4297 | unsafe { __lasx_xvmuh_du(a, b) } |
| 4298 | } | 4298 | } |
| 4299 | 4299 | ||
| 4300 | #[inline] | 4300 | #[inline] |
| 4301 | #[target_feature(enable = "lasx")] | 4301 | #[target_feature(enable = "lasx")] |
| 4302 | #[rustc_legacy_const_generics(1)] | 4302 | #[rustc_legacy_const_generics(1)] |
| 4303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4304 | pub unsafe fn lasx_xvsllwil_h_b<const IMM3: u32>(a: v32i8) -> v16i16 { | 4304 | pub fn lasx_xvsllwil_h_b<const IMM3: u32>(a: v32i8) -> v16i16 { |
| 4305 | static_assert_uimm_bits!(IMM3, 3); | 4305 | static_assert_uimm_bits!(IMM3, 3); |
| 4306 | __lasx_xvsllwil_h_b(a, IMM3) | 4306 | unsafe { __lasx_xvsllwil_h_b(a, IMM3) } |
| 4307 | } | 4307 | } |
| 4308 | 4308 | ||
| 4309 | #[inline] | 4309 | #[inline] |
| 4310 | #[target_feature(enable = "lasx")] | 4310 | #[target_feature(enable = "lasx")] |
| 4311 | #[rustc_legacy_const_generics(1)] | 4311 | #[rustc_legacy_const_generics(1)] |
| 4312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4313 | pub unsafe fn lasx_xvsllwil_w_h<const IMM4: u32>(a: v16i16) -> v8i32 { | 4313 | pub fn lasx_xvsllwil_w_h<const IMM4: u32>(a: v16i16) -> v8i32 { |
| 4314 | static_assert_uimm_bits!(IMM4, 4); | 4314 | static_assert_uimm_bits!(IMM4, 4); |
| 4315 | __lasx_xvsllwil_w_h(a, IMM4) | 4315 | unsafe { __lasx_xvsllwil_w_h(a, IMM4) } |
| 4316 | } | 4316 | } |
| 4317 | 4317 | ||
| 4318 | #[inline] | 4318 | #[inline] |
| 4319 | #[target_feature(enable = "lasx")] | 4319 | #[target_feature(enable = "lasx")] |
| 4320 | #[rustc_legacy_const_generics(1)] | 4320 | #[rustc_legacy_const_generics(1)] |
| 4321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4322 | pub unsafe fn lasx_xvsllwil_d_w<const IMM5: u32>(a: v8i32) -> v4i64 { | 4322 | pub fn lasx_xvsllwil_d_w<const IMM5: u32>(a: v8i32) -> v4i64 { |
| 4323 | static_assert_uimm_bits!(IMM5, 5); | 4323 | static_assert_uimm_bits!(IMM5, 5); |
| 4324 | __lasx_xvsllwil_d_w(a, IMM5) | 4324 | unsafe { __lasx_xvsllwil_d_w(a, IMM5) } |
| 4325 | } | 4325 | } |
| 4326 | 4326 | ||
| 4327 | #[inline] | 4327 | #[inline] |
| 4328 | #[target_feature(enable = "lasx")] | 4328 | #[target_feature(enable = "lasx")] |
| 4329 | #[rustc_legacy_const_generics(1)] | 4329 | #[rustc_legacy_const_generics(1)] |
| 4330 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4330 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4331 | pub unsafe fn lasx_xvsllwil_hu_bu<const IMM3: u32>(a: v32u8) -> v16u16 { | 4331 | pub fn lasx_xvsllwil_hu_bu<const IMM3: u32>(a: v32u8) -> v16u16 { |
| 4332 | static_assert_uimm_bits!(IMM3, 3); | 4332 | static_assert_uimm_bits!(IMM3, 3); |
| 4333 | __lasx_xvsllwil_hu_bu(a, IMM3) | 4333 | unsafe { __lasx_xvsllwil_hu_bu(a, IMM3) } |
| 4334 | } | 4334 | } |
| 4335 | 4335 | ||
| 4336 | #[inline] | 4336 | #[inline] |
| 4337 | #[target_feature(enable = "lasx")] | 4337 | #[target_feature(enable = "lasx")] |
| 4338 | #[rustc_legacy_const_generics(1)] | 4338 | #[rustc_legacy_const_generics(1)] |
| 4339 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4339 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4340 | pub unsafe fn lasx_xvsllwil_wu_hu<const IMM4: u32>(a: v16u16) -> v8u32 { | 4340 | pub fn lasx_xvsllwil_wu_hu<const IMM4: u32>(a: v16u16) -> v8u32 { |
| 4341 | static_assert_uimm_bits!(IMM4, 4); | 4341 | static_assert_uimm_bits!(IMM4, 4); |
| 4342 | __lasx_xvsllwil_wu_hu(a, IMM4) | 4342 | unsafe { __lasx_xvsllwil_wu_hu(a, IMM4) } |
| 4343 | } | 4343 | } |
| 4344 | 4344 | ||
| 4345 | #[inline] | 4345 | #[inline] |
| 4346 | #[target_feature(enable = "lasx")] | 4346 | #[target_feature(enable = "lasx")] |
| 4347 | #[rustc_legacy_const_generics(1)] | 4347 | #[rustc_legacy_const_generics(1)] |
| 4348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4349 | pub unsafe fn lasx_xvsllwil_du_wu<const IMM5: u32>(a: v8u32) -> v4u64 { | 4349 | pub fn lasx_xvsllwil_du_wu<const IMM5: u32>(a: v8u32) -> v4u64 { |
| 4350 | static_assert_uimm_bits!(IMM5, 5); | 4350 | static_assert_uimm_bits!(IMM5, 5); |
| 4351 | __lasx_xvsllwil_du_wu(a, IMM5) | 4351 | unsafe { __lasx_xvsllwil_du_wu(a, IMM5) } |
| 4352 | } | 4352 | } |
| 4353 | 4353 | ||
| 4354 | #[inline] | 4354 | #[inline] |
| 4355 | #[target_feature(enable = "lasx")] | 4355 | #[target_feature(enable = "lasx")] |
| 4356 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4356 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4357 | pub unsafe fn lasx_xvsran_b_h(a: v16i16, b: v16i16) -> v32i8 { | 4357 | pub fn lasx_xvsran_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 4358 | __lasx_xvsran_b_h(a, b) | 4358 | unsafe { __lasx_xvsran_b_h(a, b) } |
| 4359 | } | 4359 | } |
| 4360 | 4360 | ||
| 4361 | #[inline] | 4361 | #[inline] |
| 4362 | #[target_feature(enable = "lasx")] | 4362 | #[target_feature(enable = "lasx")] |
| 4363 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4363 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4364 | pub unsafe fn lasx_xvsran_h_w(a: v8i32, b: v8i32) -> v16i16 { | 4364 | pub fn lasx_xvsran_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 4365 | __lasx_xvsran_h_w(a, b) | 4365 | unsafe { __lasx_xvsran_h_w(a, b) } |
| 4366 | } | 4366 | } |
| 4367 | 4367 | ||
| 4368 | #[inline] | 4368 | #[inline] |
| 4369 | #[target_feature(enable = "lasx")] | 4369 | #[target_feature(enable = "lasx")] |
| 4370 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4370 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4371 | pub unsafe fn lasx_xvsran_w_d(a: v4i64, b: v4i64) -> v8i32 { | 4371 | pub fn lasx_xvsran_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 4372 | __lasx_xvsran_w_d(a, b) | 4372 | unsafe { __lasx_xvsran_w_d(a, b) } |
| 4373 | } | 4373 | } |
| 4374 | 4374 | ||
| 4375 | #[inline] | 4375 | #[inline] |
| 4376 | #[target_feature(enable = "lasx")] | 4376 | #[target_feature(enable = "lasx")] |
| 4377 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4377 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4378 | pub unsafe fn lasx_xvssran_b_h(a: v16i16, b: v16i16) -> v32i8 { | 4378 | pub fn lasx_xvssran_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 4379 | __lasx_xvssran_b_h(a, b) | 4379 | unsafe { __lasx_xvssran_b_h(a, b) } |
| 4380 | } | 4380 | } |
| 4381 | 4381 | ||
| 4382 | #[inline] | 4382 | #[inline] |
| 4383 | #[target_feature(enable = "lasx")] | 4383 | #[target_feature(enable = "lasx")] |
| 4384 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4384 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4385 | pub unsafe fn lasx_xvssran_h_w(a: v8i32, b: v8i32) -> v16i16 { | 4385 | pub fn lasx_xvssran_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 4386 | __lasx_xvssran_h_w(a, b) | 4386 | unsafe { __lasx_xvssran_h_w(a, b) } |
| 4387 | } | 4387 | } |
| 4388 | 4388 | ||
| 4389 | #[inline] | 4389 | #[inline] |
| 4390 | #[target_feature(enable = "lasx")] | 4390 | #[target_feature(enable = "lasx")] |
| 4391 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4391 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4392 | pub unsafe fn lasx_xvssran_w_d(a: v4i64, b: v4i64) -> v8i32 { | 4392 | pub fn lasx_xvssran_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 4393 | __lasx_xvssran_w_d(a, b) | 4393 | unsafe { __lasx_xvssran_w_d(a, b) } |
| 4394 | } | 4394 | } |
| 4395 | 4395 | ||
| 4396 | #[inline] | 4396 | #[inline] |
| 4397 | #[target_feature(enable = "lasx")] | 4397 | #[target_feature(enable = "lasx")] |
| 4398 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4398 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4399 | pub unsafe fn lasx_xvssran_bu_h(a: v16u16, b: v16u16) -> v32u8 { | 4399 | pub fn lasx_xvssran_bu_h(a: v16u16, b: v16u16) -> v32u8 { |
| 4400 | __lasx_xvssran_bu_h(a, b) | 4400 | unsafe { __lasx_xvssran_bu_h(a, b) } |
| 4401 | } | 4401 | } |
| 4402 | 4402 | ||
| 4403 | #[inline] | 4403 | #[inline] |
| 4404 | #[target_feature(enable = "lasx")] | 4404 | #[target_feature(enable = "lasx")] |
| 4405 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4405 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4406 | pub unsafe fn lasx_xvssran_hu_w(a: v8u32, b: v8u32) -> v16u16 { | 4406 | pub fn lasx_xvssran_hu_w(a: v8u32, b: v8u32) -> v16u16 { |
| 4407 | __lasx_xvssran_hu_w(a, b) | 4407 | unsafe { __lasx_xvssran_hu_w(a, b) } |
| 4408 | } | 4408 | } |
| 4409 | 4409 | ||
| 4410 | #[inline] | 4410 | #[inline] |
| 4411 | #[target_feature(enable = "lasx")] | 4411 | #[target_feature(enable = "lasx")] |
| 4412 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4412 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4413 | pub unsafe fn lasx_xvssran_wu_d(a: v4u64, b: v4u64) -> v8u32 { | 4413 | pub fn lasx_xvssran_wu_d(a: v4u64, b: v4u64) -> v8u32 { |
| 4414 | __lasx_xvssran_wu_d(a, b) | 4414 | unsafe { __lasx_xvssran_wu_d(a, b) } |
| 4415 | } | 4415 | } |
| 4416 | 4416 | ||
| 4417 | #[inline] | 4417 | #[inline] |
| 4418 | #[target_feature(enable = "lasx")] | 4418 | #[target_feature(enable = "lasx")] |
| 4419 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4419 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4420 | pub unsafe fn lasx_xvsrarn_b_h(a: v16i16, b: v16i16) -> v32i8 { | 4420 | pub fn lasx_xvsrarn_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 4421 | __lasx_xvsrarn_b_h(a, b) | 4421 | unsafe { __lasx_xvsrarn_b_h(a, b) } |
| 4422 | } | 4422 | } |
| 4423 | 4423 | ||
| 4424 | #[inline] | 4424 | #[inline] |
| 4425 | #[target_feature(enable = "lasx")] | 4425 | #[target_feature(enable = "lasx")] |
| 4426 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4426 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4427 | pub unsafe fn lasx_xvsrarn_h_w(a: v8i32, b: v8i32) -> v16i16 { | 4427 | pub fn lasx_xvsrarn_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 4428 | __lasx_xvsrarn_h_w(a, b) | 4428 | unsafe { __lasx_xvsrarn_h_w(a, b) } |
| 4429 | } | 4429 | } |
| 4430 | 4430 | ||
| 4431 | #[inline] | 4431 | #[inline] |
| 4432 | #[target_feature(enable = "lasx")] | 4432 | #[target_feature(enable = "lasx")] |
| 4433 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4433 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4434 | pub unsafe fn lasx_xvsrarn_w_d(a: v4i64, b: v4i64) -> v8i32 { | 4434 | pub fn lasx_xvsrarn_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 4435 | __lasx_xvsrarn_w_d(a, b) | 4435 | unsafe { __lasx_xvsrarn_w_d(a, b) } |
| 4436 | } | 4436 | } |
| 4437 | 4437 | ||
| 4438 | #[inline] | 4438 | #[inline] |
| 4439 | #[target_feature(enable = "lasx")] | 4439 | #[target_feature(enable = "lasx")] |
| 4440 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4440 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4441 | pub unsafe fn lasx_xvssrarn_b_h(a: v16i16, b: v16i16) -> v32i8 { | 4441 | pub fn lasx_xvssrarn_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 4442 | __lasx_xvssrarn_b_h(a, b) | 4442 | unsafe { __lasx_xvssrarn_b_h(a, b) } |
| 4443 | } | 4443 | } |
| 4444 | 4444 | ||
| 4445 | #[inline] | 4445 | #[inline] |
| 4446 | #[target_feature(enable = "lasx")] | 4446 | #[target_feature(enable = "lasx")] |
| 4447 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4447 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4448 | pub unsafe fn lasx_xvssrarn_h_w(a: v8i32, b: v8i32) -> v16i16 { | 4448 | pub fn lasx_xvssrarn_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 4449 | __lasx_xvssrarn_h_w(a, b) | 4449 | unsafe { __lasx_xvssrarn_h_w(a, b) } |
| 4450 | } | 4450 | } |
| 4451 | 4451 | ||
| 4452 | #[inline] | 4452 | #[inline] |
| 4453 | #[target_feature(enable = "lasx")] | 4453 | #[target_feature(enable = "lasx")] |
| 4454 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4454 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4455 | pub unsafe fn lasx_xvssrarn_w_d(a: v4i64, b: v4i64) -> v8i32 { | 4455 | pub fn lasx_xvssrarn_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 4456 | __lasx_xvssrarn_w_d(a, b) | 4456 | unsafe { __lasx_xvssrarn_w_d(a, b) } |
| 4457 | } | 4457 | } |
| 4458 | 4458 | ||
| 4459 | #[inline] | 4459 | #[inline] |
| 4460 | #[target_feature(enable = "lasx")] | 4460 | #[target_feature(enable = "lasx")] |
| 4461 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4461 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4462 | pub unsafe fn lasx_xvssrarn_bu_h(a: v16u16, b: v16u16) -> v32u8 { | 4462 | pub fn lasx_xvssrarn_bu_h(a: v16u16, b: v16u16) -> v32u8 { |
| 4463 | __lasx_xvssrarn_bu_h(a, b) | 4463 | unsafe { __lasx_xvssrarn_bu_h(a, b) } |
| 4464 | } | 4464 | } |
| 4465 | 4465 | ||
| 4466 | #[inline] | 4466 | #[inline] |
| 4467 | #[target_feature(enable = "lasx")] | 4467 | #[target_feature(enable = "lasx")] |
| 4468 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4468 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4469 | pub unsafe fn lasx_xvssrarn_hu_w(a: v8u32, b: v8u32) -> v16u16 { | 4469 | pub fn lasx_xvssrarn_hu_w(a: v8u32, b: v8u32) -> v16u16 { |
| 4470 | __lasx_xvssrarn_hu_w(a, b) | 4470 | unsafe { __lasx_xvssrarn_hu_w(a, b) } |
| 4471 | } | 4471 | } |
| 4472 | 4472 | ||
| 4473 | #[inline] | 4473 | #[inline] |
| 4474 | #[target_feature(enable = "lasx")] | 4474 | #[target_feature(enable = "lasx")] |
| 4475 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4475 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4476 | pub unsafe fn lasx_xvssrarn_wu_d(a: v4u64, b: v4u64) -> v8u32 { | 4476 | pub fn lasx_xvssrarn_wu_d(a: v4u64, b: v4u64) -> v8u32 { |
| 4477 | __lasx_xvssrarn_wu_d(a, b) | 4477 | unsafe { __lasx_xvssrarn_wu_d(a, b) } |
| 4478 | } | 4478 | } |
| 4479 | 4479 | ||
| 4480 | #[inline] | 4480 | #[inline] |
| 4481 | #[target_feature(enable = "lasx")] | 4481 | #[target_feature(enable = "lasx")] |
| 4482 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4482 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4483 | pub unsafe fn lasx_xvsrln_b_h(a: v16i16, b: v16i16) -> v32i8 { | 4483 | pub fn lasx_xvsrln_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 4484 | __lasx_xvsrln_b_h(a, b) | 4484 | unsafe { __lasx_xvsrln_b_h(a, b) } |
| 4485 | } | 4485 | } |
| 4486 | 4486 | ||
| 4487 | #[inline] | 4487 | #[inline] |
| 4488 | #[target_feature(enable = "lasx")] | 4488 | #[target_feature(enable = "lasx")] |
| 4489 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4489 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4490 | pub unsafe fn lasx_xvsrln_h_w(a: v8i32, b: v8i32) -> v16i16 { | 4490 | pub fn lasx_xvsrln_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 4491 | __lasx_xvsrln_h_w(a, b) | 4491 | unsafe { __lasx_xvsrln_h_w(a, b) } |
| 4492 | } | 4492 | } |
| 4493 | 4493 | ||
| 4494 | #[inline] | 4494 | #[inline] |
| 4495 | #[target_feature(enable = "lasx")] | 4495 | #[target_feature(enable = "lasx")] |
| 4496 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4496 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4497 | pub unsafe fn lasx_xvsrln_w_d(a: v4i64, b: v4i64) -> v8i32 { | 4497 | pub fn lasx_xvsrln_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 4498 | __lasx_xvsrln_w_d(a, b) | 4498 | unsafe { __lasx_xvsrln_w_d(a, b) } |
| 4499 | } | 4499 | } |
| 4500 | 4500 | ||
| 4501 | #[inline] | 4501 | #[inline] |
| 4502 | #[target_feature(enable = "lasx")] | 4502 | #[target_feature(enable = "lasx")] |
| 4503 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4503 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4504 | pub unsafe fn lasx_xvssrln_bu_h(a: v16u16, b: v16u16) -> v32u8 { | 4504 | pub fn lasx_xvssrln_bu_h(a: v16u16, b: v16u16) -> v32u8 { |
| 4505 | __lasx_xvssrln_bu_h(a, b) | 4505 | unsafe { __lasx_xvssrln_bu_h(a, b) } |
| 4506 | } | 4506 | } |
| 4507 | 4507 | ||
| 4508 | #[inline] | 4508 | #[inline] |
| 4509 | #[target_feature(enable = "lasx")] | 4509 | #[target_feature(enable = "lasx")] |
| 4510 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4510 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4511 | pub unsafe fn lasx_xvssrln_hu_w(a: v8u32, b: v8u32) -> v16u16 { | 4511 | pub fn lasx_xvssrln_hu_w(a: v8u32, b: v8u32) -> v16u16 { |
| 4512 | __lasx_xvssrln_hu_w(a, b) | 4512 | unsafe { __lasx_xvssrln_hu_w(a, b) } |
| 4513 | } | 4513 | } |
| 4514 | 4514 | ||
| 4515 | #[inline] | 4515 | #[inline] |
| 4516 | #[target_feature(enable = "lasx")] | 4516 | #[target_feature(enable = "lasx")] |
| 4517 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4517 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4518 | pub unsafe fn lasx_xvssrln_wu_d(a: v4u64, b: v4u64) -> v8u32 { | 4518 | pub fn lasx_xvssrln_wu_d(a: v4u64, b: v4u64) -> v8u32 { |
| 4519 | __lasx_xvssrln_wu_d(a, b) | 4519 | unsafe { __lasx_xvssrln_wu_d(a, b) } |
| 4520 | } | 4520 | } |
| 4521 | 4521 | ||
| 4522 | #[inline] | 4522 | #[inline] |
| 4523 | #[target_feature(enable = "lasx")] | 4523 | #[target_feature(enable = "lasx")] |
| 4524 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4524 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4525 | pub unsafe fn lasx_xvsrlrn_b_h(a: v16i16, b: v16i16) -> v32i8 { | 4525 | pub fn lasx_xvsrlrn_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 4526 | __lasx_xvsrlrn_b_h(a, b) | 4526 | unsafe { __lasx_xvsrlrn_b_h(a, b) } |
| 4527 | } | 4527 | } |
| 4528 | 4528 | ||
| 4529 | #[inline] | 4529 | #[inline] |
| 4530 | #[target_feature(enable = "lasx")] | 4530 | #[target_feature(enable = "lasx")] |
| 4531 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4531 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4532 | pub unsafe fn lasx_xvsrlrn_h_w(a: v8i32, b: v8i32) -> v16i16 { | 4532 | pub fn lasx_xvsrlrn_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 4533 | __lasx_xvsrlrn_h_w(a, b) | 4533 | unsafe { __lasx_xvsrlrn_h_w(a, b) } |
| 4534 | } | 4534 | } |
| 4535 | 4535 | ||
| 4536 | #[inline] | 4536 | #[inline] |
| 4537 | #[target_feature(enable = "lasx")] | 4537 | #[target_feature(enable = "lasx")] |
| 4538 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4538 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4539 | pub unsafe fn lasx_xvsrlrn_w_d(a: v4i64, b: v4i64) -> v8i32 { | 4539 | pub fn lasx_xvsrlrn_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 4540 | __lasx_xvsrlrn_w_d(a, b) | 4540 | unsafe { __lasx_xvsrlrn_w_d(a, b) } |
| 4541 | } | 4541 | } |
| 4542 | 4542 | ||
| 4543 | #[inline] | 4543 | #[inline] |
| 4544 | #[target_feature(enable = "lasx")] | 4544 | #[target_feature(enable = "lasx")] |
| 4545 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4545 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4546 | pub unsafe fn lasx_xvssrlrn_bu_h(a: v16u16, b: v16u16) -> v32u8 { | 4546 | pub fn lasx_xvssrlrn_bu_h(a: v16u16, b: v16u16) -> v32u8 { |
| 4547 | __lasx_xvssrlrn_bu_h(a, b) | 4547 | unsafe { __lasx_xvssrlrn_bu_h(a, b) } |
| 4548 | } | 4548 | } |
| 4549 | 4549 | ||
| 4550 | #[inline] | 4550 | #[inline] |
| 4551 | #[target_feature(enable = "lasx")] | 4551 | #[target_feature(enable = "lasx")] |
| 4552 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4552 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4553 | pub unsafe fn lasx_xvssrlrn_hu_w(a: v8u32, b: v8u32) -> v16u16 { | 4553 | pub fn lasx_xvssrlrn_hu_w(a: v8u32, b: v8u32) -> v16u16 { |
| 4554 | __lasx_xvssrlrn_hu_w(a, b) | 4554 | unsafe { __lasx_xvssrlrn_hu_w(a, b) } |
| 4555 | } | 4555 | } |
| 4556 | 4556 | ||
| 4557 | #[inline] | 4557 | #[inline] |
| 4558 | #[target_feature(enable = "lasx")] | 4558 | #[target_feature(enable = "lasx")] |
| 4559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4560 | pub unsafe fn lasx_xvssrlrn_wu_d(a: v4u64, b: v4u64) -> v8u32 { | 4560 | pub fn lasx_xvssrlrn_wu_d(a: v4u64, b: v4u64) -> v8u32 { |
| 4561 | __lasx_xvssrlrn_wu_d(a, b) | 4561 | unsafe { __lasx_xvssrlrn_wu_d(a, b) } |
| 4562 | } | 4562 | } |
| 4563 | 4563 | ||
| 4564 | #[inline] | 4564 | #[inline] |
| 4565 | #[target_feature(enable = "lasx")] | 4565 | #[target_feature(enable = "lasx")] |
| 4566 | #[rustc_legacy_const_generics(2)] | 4566 | #[rustc_legacy_const_generics(2)] |
| 4567 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4567 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4568 | pub unsafe fn lasx_xvfrstpi_b<const IMM5: u32>(a: v32i8, b: v32i8) -> v32i8 { | 4568 | pub fn lasx_xvfrstpi_b<const IMM5: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 4569 | static_assert_uimm_bits!(IMM5, 5); | 4569 | static_assert_uimm_bits!(IMM5, 5); |
| 4570 | __lasx_xvfrstpi_b(a, b, IMM5) | 4570 | unsafe { __lasx_xvfrstpi_b(a, b, IMM5) } |
| 4571 | } | 4571 | } |
| 4572 | 4572 | ||
| 4573 | #[inline] | 4573 | #[inline] |
| 4574 | #[target_feature(enable = "lasx")] | 4574 | #[target_feature(enable = "lasx")] |
| 4575 | #[rustc_legacy_const_generics(2)] | 4575 | #[rustc_legacy_const_generics(2)] |
| 4576 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4576 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4577 | pub unsafe fn lasx_xvfrstpi_h<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 4577 | pub fn lasx_xvfrstpi_h<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 4578 | static_assert_uimm_bits!(IMM5, 5); | 4578 | static_assert_uimm_bits!(IMM5, 5); |
| 4579 | __lasx_xvfrstpi_h(a, b, IMM5) | 4579 | unsafe { __lasx_xvfrstpi_h(a, b, IMM5) } |
| 4580 | } | 4580 | } |
| 4581 | 4581 | ||
| 4582 | #[inline] | 4582 | #[inline] |
| 4583 | #[target_feature(enable = "lasx")] | 4583 | #[target_feature(enable = "lasx")] |
| 4584 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4584 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4585 | pub unsafe fn lasx_xvfrstp_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { | 4585 | pub fn lasx_xvfrstp_b(a: v32i8, b: v32i8, c: v32i8) -> v32i8 { |
| 4586 | __lasx_xvfrstp_b(a, b, c) | 4586 | unsafe { __lasx_xvfrstp_b(a, b, c) } |
| 4587 | } | 4587 | } |
| 4588 | 4588 | ||
| 4589 | #[inline] | 4589 | #[inline] |
| 4590 | #[target_feature(enable = "lasx")] | 4590 | #[target_feature(enable = "lasx")] |
| 4591 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4591 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4592 | pub unsafe fn lasx_xvfrstp_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { | 4592 | pub fn lasx_xvfrstp_h(a: v16i16, b: v16i16, c: v16i16) -> v16i16 { |
| 4593 | __lasx_xvfrstp_h(a, b, c) | 4593 | unsafe { __lasx_xvfrstp_h(a, b, c) } |
| 4594 | } | 4594 | } |
| 4595 | 4595 | ||
| 4596 | #[inline] | 4596 | #[inline] |
| 4597 | #[target_feature(enable = "lasx")] | 4597 | #[target_feature(enable = "lasx")] |
| 4598 | #[rustc_legacy_const_generics(2)] | 4598 | #[rustc_legacy_const_generics(2)] |
| 4599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4600 | pub unsafe fn lasx_xvshuf4i_d<const IMM8: u32>(a: v4i64, b: v4i64) -> v4i64 { | 4600 | pub fn lasx_xvshuf4i_d<const IMM8: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 4601 | static_assert_uimm_bits!(IMM8, 8); | 4601 | static_assert_uimm_bits!(IMM8, 8); |
| 4602 | __lasx_xvshuf4i_d(a, b, IMM8) | 4602 | unsafe { __lasx_xvshuf4i_d(a, b, IMM8) } |
| 4603 | } | 4603 | } |
| 4604 | 4604 | ||
| 4605 | #[inline] | 4605 | #[inline] |
| 4606 | #[target_feature(enable = "lasx")] | 4606 | #[target_feature(enable = "lasx")] |
| 4607 | #[rustc_legacy_const_generics(1)] | 4607 | #[rustc_legacy_const_generics(1)] |
| 4608 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4608 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4609 | pub unsafe fn lasx_xvbsrl_v<const IMM5: u32>(a: v32i8) -> v32i8 { | 4609 | pub fn lasx_xvbsrl_v<const IMM5: u32>(a: v32i8) -> v32i8 { |
| 4610 | static_assert_uimm_bits!(IMM5, 5); | 4610 | static_assert_uimm_bits!(IMM5, 5); |
| 4611 | __lasx_xvbsrl_v(a, IMM5) | 4611 | unsafe { __lasx_xvbsrl_v(a, IMM5) } |
| 4612 | } | 4612 | } |
| 4613 | 4613 | ||
| 4614 | #[inline] | 4614 | #[inline] |
| 4615 | #[target_feature(enable = "lasx")] | 4615 | #[target_feature(enable = "lasx")] |
| 4616 | #[rustc_legacy_const_generics(1)] | 4616 | #[rustc_legacy_const_generics(1)] |
| 4617 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4617 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4618 | pub unsafe fn lasx_xvbsll_v<const IMM5: u32>(a: v32i8) -> v32i8 { | 4618 | pub fn lasx_xvbsll_v<const IMM5: u32>(a: v32i8) -> v32i8 { |
| 4619 | static_assert_uimm_bits!(IMM5, 5); | 4619 | static_assert_uimm_bits!(IMM5, 5); |
| 4620 | __lasx_xvbsll_v(a, IMM5) | 4620 | unsafe { __lasx_xvbsll_v(a, IMM5) } |
| 4621 | } | 4621 | } |
| 4622 | 4622 | ||
| 4623 | #[inline] | 4623 | #[inline] |
| 4624 | #[target_feature(enable = "lasx")] | 4624 | #[target_feature(enable = "lasx")] |
| 4625 | #[rustc_legacy_const_generics(2)] | 4625 | #[rustc_legacy_const_generics(2)] |
| 4626 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4626 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4627 | pub unsafe fn lasx_xvextrins_b<const IMM8: u32>(a: v32i8, b: v32i8) -> v32i8 { | 4627 | pub fn lasx_xvextrins_b<const IMM8: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 4628 | static_assert_uimm_bits!(IMM8, 8); | 4628 | static_assert_uimm_bits!(IMM8, 8); |
| 4629 | __lasx_xvextrins_b(a, b, IMM8) | 4629 | unsafe { __lasx_xvextrins_b(a, b, IMM8) } |
| 4630 | } | 4630 | } |
| 4631 | 4631 | ||
| 4632 | #[inline] | 4632 | #[inline] |
| 4633 | #[target_feature(enable = "lasx")] | 4633 | #[target_feature(enable = "lasx")] |
| 4634 | #[rustc_legacy_const_generics(2)] | 4634 | #[rustc_legacy_const_generics(2)] |
| 4635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4636 | pub unsafe fn lasx_xvextrins_h<const IMM8: u32>(a: v16i16, b: v16i16) -> v16i16 { | 4636 | pub fn lasx_xvextrins_h<const IMM8: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 4637 | static_assert_uimm_bits!(IMM8, 8); | 4637 | static_assert_uimm_bits!(IMM8, 8); |
| 4638 | __lasx_xvextrins_h(a, b, IMM8) | 4638 | unsafe { __lasx_xvextrins_h(a, b, IMM8) } |
| 4639 | } | 4639 | } |
| 4640 | 4640 | ||
| 4641 | #[inline] | 4641 | #[inline] |
| 4642 | #[target_feature(enable = "lasx")] | 4642 | #[target_feature(enable = "lasx")] |
| 4643 | #[rustc_legacy_const_generics(2)] | 4643 | #[rustc_legacy_const_generics(2)] |
| 4644 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4644 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4645 | pub unsafe fn lasx_xvextrins_w<const IMM8: u32>(a: v8i32, b: v8i32) -> v8i32 { | 4645 | pub fn lasx_xvextrins_w<const IMM8: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 4646 | static_assert_uimm_bits!(IMM8, 8); | 4646 | static_assert_uimm_bits!(IMM8, 8); |
| 4647 | __lasx_xvextrins_w(a, b, IMM8) | 4647 | unsafe { __lasx_xvextrins_w(a, b, IMM8) } |
| 4648 | } | 4648 | } |
| 4649 | 4649 | ||
| 4650 | #[inline] | 4650 | #[inline] |
| 4651 | #[target_feature(enable = "lasx")] | 4651 | #[target_feature(enable = "lasx")] |
| 4652 | #[rustc_legacy_const_generics(2)] | 4652 | #[rustc_legacy_const_generics(2)] |
| 4653 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4653 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4654 | pub unsafe fn lasx_xvextrins_d<const IMM8: u32>(a: v4i64, b: v4i64) -> v4i64 { | 4654 | pub fn lasx_xvextrins_d<const IMM8: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 4655 | static_assert_uimm_bits!(IMM8, 8); | 4655 | static_assert_uimm_bits!(IMM8, 8); |
| 4656 | __lasx_xvextrins_d(a, b, IMM8) | 4656 | unsafe { __lasx_xvextrins_d(a, b, IMM8) } |
| 4657 | } | 4657 | } |
| 4658 | 4658 | ||
| 4659 | #[inline] | 4659 | #[inline] |
| 4660 | #[target_feature(enable = "lasx")] | 4660 | #[target_feature(enable = "lasx")] |
| 4661 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4661 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4662 | pub unsafe fn lasx_xvmskltz_b(a: v32i8) -> v32i8 { | 4662 | pub fn lasx_xvmskltz_b(a: v32i8) -> v32i8 { |
| 4663 | __lasx_xvmskltz_b(a) | 4663 | unsafe { __lasx_xvmskltz_b(a) } |
| 4664 | } | 4664 | } |
| 4665 | 4665 | ||
| 4666 | #[inline] | 4666 | #[inline] |
| 4667 | #[target_feature(enable = "lasx")] | 4667 | #[target_feature(enable = "lasx")] |
| 4668 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4668 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4669 | pub unsafe fn lasx_xvmskltz_h(a: v16i16) -> v16i16 { | 4669 | pub fn lasx_xvmskltz_h(a: v16i16) -> v16i16 { |
| 4670 | __lasx_xvmskltz_h(a) | 4670 | unsafe { __lasx_xvmskltz_h(a) } |
| 4671 | } | 4671 | } |
| 4672 | 4672 | ||
| 4673 | #[inline] | 4673 | #[inline] |
| 4674 | #[target_feature(enable = "lasx")] | 4674 | #[target_feature(enable = "lasx")] |
| 4675 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4675 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4676 | pub unsafe fn lasx_xvmskltz_w(a: v8i32) -> v8i32 { | 4676 | pub fn lasx_xvmskltz_w(a: v8i32) -> v8i32 { |
| 4677 | __lasx_xvmskltz_w(a) | 4677 | unsafe { __lasx_xvmskltz_w(a) } |
| 4678 | } | 4678 | } |
| 4679 | 4679 | ||
| 4680 | #[inline] | 4680 | #[inline] |
| 4681 | #[target_feature(enable = "lasx")] | 4681 | #[target_feature(enable = "lasx")] |
| 4682 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4682 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4683 | pub unsafe fn lasx_xvmskltz_d(a: v4i64) -> v4i64 { | 4683 | pub fn lasx_xvmskltz_d(a: v4i64) -> v4i64 { |
| 4684 | __lasx_xvmskltz_d(a) | 4684 | unsafe { __lasx_xvmskltz_d(a) } |
| 4685 | } | 4685 | } |
| 4686 | 4686 | ||
| 4687 | #[inline] | 4687 | #[inline] |
| 4688 | #[target_feature(enable = "lasx")] | 4688 | #[target_feature(enable = "lasx")] |
| 4689 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4689 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4690 | pub unsafe fn lasx_xvsigncov_b(a: v32i8, b: v32i8) -> v32i8 { | 4690 | pub fn lasx_xvsigncov_b(a: v32i8, b: v32i8) -> v32i8 { |
| 4691 | __lasx_xvsigncov_b(a, b) | 4691 | unsafe { __lasx_xvsigncov_b(a, b) } |
| 4692 | } | 4692 | } |
| 4693 | 4693 | ||
| 4694 | #[inline] | 4694 | #[inline] |
| 4695 | #[target_feature(enable = "lasx")] | 4695 | #[target_feature(enable = "lasx")] |
| 4696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4697 | pub unsafe fn lasx_xvsigncov_h(a: v16i16, b: v16i16) -> v16i16 { | 4697 | pub fn lasx_xvsigncov_h(a: v16i16, b: v16i16) -> v16i16 { |
| 4698 | __lasx_xvsigncov_h(a, b) | 4698 | unsafe { __lasx_xvsigncov_h(a, b) } |
| 4699 | } | 4699 | } |
| 4700 | 4700 | ||
| 4701 | #[inline] | 4701 | #[inline] |
| 4702 | #[target_feature(enable = "lasx")] | 4702 | #[target_feature(enable = "lasx")] |
| 4703 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4703 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4704 | pub unsafe fn lasx_xvsigncov_w(a: v8i32, b: v8i32) -> v8i32 { | 4704 | pub fn lasx_xvsigncov_w(a: v8i32, b: v8i32) -> v8i32 { |
| 4705 | __lasx_xvsigncov_w(a, b) | 4705 | unsafe { __lasx_xvsigncov_w(a, b) } |
| 4706 | } | 4706 | } |
| 4707 | 4707 | ||
| 4708 | #[inline] | 4708 | #[inline] |
| 4709 | #[target_feature(enable = "lasx")] | 4709 | #[target_feature(enable = "lasx")] |
| 4710 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4710 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4711 | pub unsafe fn lasx_xvsigncov_d(a: v4i64, b: v4i64) -> v4i64 { | 4711 | pub fn lasx_xvsigncov_d(a: v4i64, b: v4i64) -> v4i64 { |
| 4712 | __lasx_xvsigncov_d(a, b) | 4712 | unsafe { __lasx_xvsigncov_d(a, b) } |
| 4713 | } | 4713 | } |
| 4714 | 4714 | ||
| 4715 | #[inline] | 4715 | #[inline] |
| 4716 | #[target_feature(enable = "lasx")] | 4716 | #[target_feature(enable = "lasx")] |
| 4717 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4717 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4718 | pub unsafe fn lasx_xvfmadd_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { | 4718 | pub fn lasx_xvfmadd_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { |
| 4719 | __lasx_xvfmadd_s(a, b, c) | 4719 | unsafe { __lasx_xvfmadd_s(a, b, c) } |
| 4720 | } | 4720 | } |
| 4721 | 4721 | ||
| 4722 | #[inline] | 4722 | #[inline] |
| 4723 | #[target_feature(enable = "lasx")] | 4723 | #[target_feature(enable = "lasx")] |
| 4724 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4724 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4725 | pub unsafe fn lasx_xvfmadd_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { | 4725 | pub fn lasx_xvfmadd_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { |
| 4726 | __lasx_xvfmadd_d(a, b, c) | 4726 | unsafe { __lasx_xvfmadd_d(a, b, c) } |
| 4727 | } | 4727 | } |
| 4728 | 4728 | ||
| 4729 | #[inline] | 4729 | #[inline] |
| 4730 | #[target_feature(enable = "lasx")] | 4730 | #[target_feature(enable = "lasx")] |
| 4731 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4731 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4732 | pub unsafe fn lasx_xvfmsub_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { | 4732 | pub fn lasx_xvfmsub_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { |
| 4733 | __lasx_xvfmsub_s(a, b, c) | 4733 | unsafe { __lasx_xvfmsub_s(a, b, c) } |
| 4734 | } | 4734 | } |
| 4735 | 4735 | ||
| 4736 | #[inline] | 4736 | #[inline] |
| 4737 | #[target_feature(enable = "lasx")] | 4737 | #[target_feature(enable = "lasx")] |
| 4738 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4738 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4739 | pub unsafe fn lasx_xvfmsub_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { | 4739 | pub fn lasx_xvfmsub_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { |
| 4740 | __lasx_xvfmsub_d(a, b, c) | 4740 | unsafe { __lasx_xvfmsub_d(a, b, c) } |
| 4741 | } | 4741 | } |
| 4742 | 4742 | ||
| 4743 | #[inline] | 4743 | #[inline] |
| 4744 | #[target_feature(enable = "lasx")] | 4744 | #[target_feature(enable = "lasx")] |
| 4745 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4745 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4746 | pub unsafe fn lasx_xvfnmadd_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { | 4746 | pub fn lasx_xvfnmadd_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { |
| 4747 | __lasx_xvfnmadd_s(a, b, c) | 4747 | unsafe { __lasx_xvfnmadd_s(a, b, c) } |
| 4748 | } | 4748 | } |
| 4749 | 4749 | ||
| 4750 | #[inline] | 4750 | #[inline] |
| 4751 | #[target_feature(enable = "lasx")] | 4751 | #[target_feature(enable = "lasx")] |
| 4752 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4752 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4753 | pub unsafe fn lasx_xvfnmadd_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { | 4753 | pub fn lasx_xvfnmadd_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { |
| 4754 | __lasx_xvfnmadd_d(a, b, c) | 4754 | unsafe { __lasx_xvfnmadd_d(a, b, c) } |
| 4755 | } | 4755 | } |
| 4756 | 4756 | ||
| 4757 | #[inline] | 4757 | #[inline] |
| 4758 | #[target_feature(enable = "lasx")] | 4758 | #[target_feature(enable = "lasx")] |
| 4759 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4759 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4760 | pub unsafe fn lasx_xvfnmsub_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { | 4760 | pub fn lasx_xvfnmsub_s(a: v8f32, b: v8f32, c: v8f32) -> v8f32 { |
| 4761 | __lasx_xvfnmsub_s(a, b, c) | 4761 | unsafe { __lasx_xvfnmsub_s(a, b, c) } |
| 4762 | } | 4762 | } |
| 4763 | 4763 | ||
| 4764 | #[inline] | 4764 | #[inline] |
| 4765 | #[target_feature(enable = "lasx")] | 4765 | #[target_feature(enable = "lasx")] |
| 4766 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4766 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4767 | pub unsafe fn lasx_xvfnmsub_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { | 4767 | pub fn lasx_xvfnmsub_d(a: v4f64, b: v4f64, c: v4f64) -> v4f64 { |
| 4768 | __lasx_xvfnmsub_d(a, b, c) | 4768 | unsafe { __lasx_xvfnmsub_d(a, b, c) } |
| 4769 | } | 4769 | } |
| 4770 | 4770 | ||
| 4771 | #[inline] | 4771 | #[inline] |
| 4772 | #[target_feature(enable = "lasx")] | 4772 | #[target_feature(enable = "lasx")] |
| 4773 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4773 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4774 | pub unsafe fn lasx_xvftintrne_w_s(a: v8f32) -> v8i32 { | 4774 | pub fn lasx_xvftintrne_w_s(a: v8f32) -> v8i32 { |
| 4775 | __lasx_xvftintrne_w_s(a) | 4775 | unsafe { __lasx_xvftintrne_w_s(a) } |
| 4776 | } | 4776 | } |
| 4777 | 4777 | ||
| 4778 | #[inline] | 4778 | #[inline] |
| 4779 | #[target_feature(enable = "lasx")] | 4779 | #[target_feature(enable = "lasx")] |
| 4780 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4780 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4781 | pub unsafe fn lasx_xvftintrne_l_d(a: v4f64) -> v4i64 { | 4781 | pub fn lasx_xvftintrne_l_d(a: v4f64) -> v4i64 { |
| 4782 | __lasx_xvftintrne_l_d(a) | 4782 | unsafe { __lasx_xvftintrne_l_d(a) } |
| 4783 | } | 4783 | } |
| 4784 | 4784 | ||
| 4785 | #[inline] | 4785 | #[inline] |
| 4786 | #[target_feature(enable = "lasx")] | 4786 | #[target_feature(enable = "lasx")] |
| 4787 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4787 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4788 | pub unsafe fn lasx_xvftintrp_w_s(a: v8f32) -> v8i32 { | 4788 | pub fn lasx_xvftintrp_w_s(a: v8f32) -> v8i32 { |
| 4789 | __lasx_xvftintrp_w_s(a) | 4789 | unsafe { __lasx_xvftintrp_w_s(a) } |
| 4790 | } | 4790 | } |
| 4791 | 4791 | ||
| 4792 | #[inline] | 4792 | #[inline] |
| 4793 | #[target_feature(enable = "lasx")] | 4793 | #[target_feature(enable = "lasx")] |
| 4794 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4794 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4795 | pub unsafe fn lasx_xvftintrp_l_d(a: v4f64) -> v4i64 { | 4795 | pub fn lasx_xvftintrp_l_d(a: v4f64) -> v4i64 { |
| 4796 | __lasx_xvftintrp_l_d(a) | 4796 | unsafe { __lasx_xvftintrp_l_d(a) } |
| 4797 | } | 4797 | } |
| 4798 | 4798 | ||
| 4799 | #[inline] | 4799 | #[inline] |
| 4800 | #[target_feature(enable = "lasx")] | 4800 | #[target_feature(enable = "lasx")] |
| 4801 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4801 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4802 | pub unsafe fn lasx_xvftintrm_w_s(a: v8f32) -> v8i32 { | 4802 | pub fn lasx_xvftintrm_w_s(a: v8f32) -> v8i32 { |
| 4803 | __lasx_xvftintrm_w_s(a) | 4803 | unsafe { __lasx_xvftintrm_w_s(a) } |
| 4804 | } | 4804 | } |
| 4805 | 4805 | ||
| 4806 | #[inline] | 4806 | #[inline] |
| 4807 | #[target_feature(enable = "lasx")] | 4807 | #[target_feature(enable = "lasx")] |
| 4808 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4808 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4809 | pub unsafe fn lasx_xvftintrm_l_d(a: v4f64) -> v4i64 { | 4809 | pub fn lasx_xvftintrm_l_d(a: v4f64) -> v4i64 { |
| 4810 | __lasx_xvftintrm_l_d(a) | 4810 | unsafe { __lasx_xvftintrm_l_d(a) } |
| 4811 | } | 4811 | } |
| 4812 | 4812 | ||
| 4813 | #[inline] | 4813 | #[inline] |
| 4814 | #[target_feature(enable = "lasx")] | 4814 | #[target_feature(enable = "lasx")] |
| 4815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4816 | pub unsafe fn lasx_xvftint_w_d(a: v4f64, b: v4f64) -> v8i32 { | 4816 | pub fn lasx_xvftint_w_d(a: v4f64, b: v4f64) -> v8i32 { |
| 4817 | __lasx_xvftint_w_d(a, b) | 4817 | unsafe { __lasx_xvftint_w_d(a, b) } |
| 4818 | } | 4818 | } |
| 4819 | 4819 | ||
| 4820 | #[inline] | 4820 | #[inline] |
| 4821 | #[target_feature(enable = "lasx")] | 4821 | #[target_feature(enable = "lasx")] |
| 4822 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4822 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4823 | pub unsafe fn lasx_xvffint_s_l(a: v4i64, b: v4i64) -> v8f32 { | 4823 | pub fn lasx_xvffint_s_l(a: v4i64, b: v4i64) -> v8f32 { |
| 4824 | __lasx_xvffint_s_l(a, b) | 4824 | unsafe { __lasx_xvffint_s_l(a, b) } |
| 4825 | } | 4825 | } |
| 4826 | 4826 | ||
| 4827 | #[inline] | 4827 | #[inline] |
| 4828 | #[target_feature(enable = "lasx")] | 4828 | #[target_feature(enable = "lasx")] |
| 4829 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4829 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4830 | pub unsafe fn lasx_xvftintrz_w_d(a: v4f64, b: v4f64) -> v8i32 { | 4830 | pub fn lasx_xvftintrz_w_d(a: v4f64, b: v4f64) -> v8i32 { |
| 4831 | __lasx_xvftintrz_w_d(a, b) | 4831 | unsafe { __lasx_xvftintrz_w_d(a, b) } |
| 4832 | } | 4832 | } |
| 4833 | 4833 | ||
| 4834 | #[inline] | 4834 | #[inline] |
| 4835 | #[target_feature(enable = "lasx")] | 4835 | #[target_feature(enable = "lasx")] |
| 4836 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4836 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4837 | pub unsafe fn lasx_xvftintrp_w_d(a: v4f64, b: v4f64) -> v8i32 { | 4837 | pub fn lasx_xvftintrp_w_d(a: v4f64, b: v4f64) -> v8i32 { |
| 4838 | __lasx_xvftintrp_w_d(a, b) | 4838 | unsafe { __lasx_xvftintrp_w_d(a, b) } |
| 4839 | } | 4839 | } |
| 4840 | 4840 | ||
| 4841 | #[inline] | 4841 | #[inline] |
| 4842 | #[target_feature(enable = "lasx")] | 4842 | #[target_feature(enable = "lasx")] |
| 4843 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4843 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4844 | pub unsafe fn lasx_xvftintrm_w_d(a: v4f64, b: v4f64) -> v8i32 { | 4844 | pub fn lasx_xvftintrm_w_d(a: v4f64, b: v4f64) -> v8i32 { |
| 4845 | __lasx_xvftintrm_w_d(a, b) | 4845 | unsafe { __lasx_xvftintrm_w_d(a, b) } |
| 4846 | } | 4846 | } |
| 4847 | 4847 | ||
| 4848 | #[inline] | 4848 | #[inline] |
| 4849 | #[target_feature(enable = "lasx")] | 4849 | #[target_feature(enable = "lasx")] |
| 4850 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4850 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4851 | pub unsafe fn lasx_xvftintrne_w_d(a: v4f64, b: v4f64) -> v8i32 { | 4851 | pub fn lasx_xvftintrne_w_d(a: v4f64, b: v4f64) -> v8i32 { |
| 4852 | __lasx_xvftintrne_w_d(a, b) | 4852 | unsafe { __lasx_xvftintrne_w_d(a, b) } |
| 4853 | } | 4853 | } |
| 4854 | 4854 | ||
| 4855 | #[inline] | 4855 | #[inline] |
| 4856 | #[target_feature(enable = "lasx")] | 4856 | #[target_feature(enable = "lasx")] |
| 4857 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4857 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4858 | pub unsafe fn lasx_xvftinth_l_s(a: v8f32) -> v4i64 { | 4858 | pub fn lasx_xvftinth_l_s(a: v8f32) -> v4i64 { |
| 4859 | __lasx_xvftinth_l_s(a) | 4859 | unsafe { __lasx_xvftinth_l_s(a) } |
| 4860 | } | 4860 | } |
| 4861 | 4861 | ||
| 4862 | #[inline] | 4862 | #[inline] |
| 4863 | #[target_feature(enable = "lasx")] | 4863 | #[target_feature(enable = "lasx")] |
| 4864 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4864 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4865 | pub unsafe fn lasx_xvftintl_l_s(a: v8f32) -> v4i64 { | 4865 | pub fn lasx_xvftintl_l_s(a: v8f32) -> v4i64 { |
| 4866 | __lasx_xvftintl_l_s(a) | 4866 | unsafe { __lasx_xvftintl_l_s(a) } |
| 4867 | } | 4867 | } |
| 4868 | 4868 | ||
| 4869 | #[inline] | 4869 | #[inline] |
| 4870 | #[target_feature(enable = "lasx")] | 4870 | #[target_feature(enable = "lasx")] |
| 4871 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4871 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4872 | pub unsafe fn lasx_xvffinth_d_w(a: v8i32) -> v4f64 { | 4872 | pub fn lasx_xvffinth_d_w(a: v8i32) -> v4f64 { |
| 4873 | __lasx_xvffinth_d_w(a) | 4873 | unsafe { __lasx_xvffinth_d_w(a) } |
| 4874 | } | 4874 | } |
| 4875 | 4875 | ||
| 4876 | #[inline] | 4876 | #[inline] |
| 4877 | #[target_feature(enable = "lasx")] | 4877 | #[target_feature(enable = "lasx")] |
| 4878 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4878 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4879 | pub unsafe fn lasx_xvffintl_d_w(a: v8i32) -> v4f64 { | 4879 | pub fn lasx_xvffintl_d_w(a: v8i32) -> v4f64 { |
| 4880 | __lasx_xvffintl_d_w(a) | 4880 | unsafe { __lasx_xvffintl_d_w(a) } |
| 4881 | } | 4881 | } |
| 4882 | 4882 | ||
| 4883 | #[inline] | 4883 | #[inline] |
| 4884 | #[target_feature(enable = "lasx")] | 4884 | #[target_feature(enable = "lasx")] |
| 4885 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4885 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4886 | pub unsafe fn lasx_xvftintrzh_l_s(a: v8f32) -> v4i64 { | 4886 | pub fn lasx_xvftintrzh_l_s(a: v8f32) -> v4i64 { |
| 4887 | __lasx_xvftintrzh_l_s(a) | 4887 | unsafe { __lasx_xvftintrzh_l_s(a) } |
| 4888 | } | 4888 | } |
| 4889 | 4889 | ||
| 4890 | #[inline] | 4890 | #[inline] |
| 4891 | #[target_feature(enable = "lasx")] | 4891 | #[target_feature(enable = "lasx")] |
| 4892 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4892 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4893 | pub unsafe fn lasx_xvftintrzl_l_s(a: v8f32) -> v4i64 { | 4893 | pub fn lasx_xvftintrzl_l_s(a: v8f32) -> v4i64 { |
| 4894 | __lasx_xvftintrzl_l_s(a) | 4894 | unsafe { __lasx_xvftintrzl_l_s(a) } |
| 4895 | } | 4895 | } |
| 4896 | 4896 | ||
| 4897 | #[inline] | 4897 | #[inline] |
| 4898 | #[target_feature(enable = "lasx")] | 4898 | #[target_feature(enable = "lasx")] |
| 4899 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4899 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4900 | pub unsafe fn lasx_xvftintrph_l_s(a: v8f32) -> v4i64 { | 4900 | pub fn lasx_xvftintrph_l_s(a: v8f32) -> v4i64 { |
| 4901 | __lasx_xvftintrph_l_s(a) | 4901 | unsafe { __lasx_xvftintrph_l_s(a) } |
| 4902 | } | 4902 | } |
| 4903 | 4903 | ||
| 4904 | #[inline] | 4904 | #[inline] |
| 4905 | #[target_feature(enable = "lasx")] | 4905 | #[target_feature(enable = "lasx")] |
| 4906 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4906 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4907 | pub unsafe fn lasx_xvftintrpl_l_s(a: v8f32) -> v4i64 { | 4907 | pub fn lasx_xvftintrpl_l_s(a: v8f32) -> v4i64 { |
| 4908 | __lasx_xvftintrpl_l_s(a) | 4908 | unsafe { __lasx_xvftintrpl_l_s(a) } |
| 4909 | } | 4909 | } |
| 4910 | 4910 | ||
| 4911 | #[inline] | 4911 | #[inline] |
| 4912 | #[target_feature(enable = "lasx")] | 4912 | #[target_feature(enable = "lasx")] |
| 4913 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4913 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4914 | pub unsafe fn lasx_xvftintrmh_l_s(a: v8f32) -> v4i64 { | 4914 | pub fn lasx_xvftintrmh_l_s(a: v8f32) -> v4i64 { |
| 4915 | __lasx_xvftintrmh_l_s(a) | 4915 | unsafe { __lasx_xvftintrmh_l_s(a) } |
| 4916 | } | 4916 | } |
| 4917 | 4917 | ||
| 4918 | #[inline] | 4918 | #[inline] |
| 4919 | #[target_feature(enable = "lasx")] | 4919 | #[target_feature(enable = "lasx")] |
| 4920 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4920 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4921 | pub unsafe fn lasx_xvftintrml_l_s(a: v8f32) -> v4i64 { | 4921 | pub fn lasx_xvftintrml_l_s(a: v8f32) -> v4i64 { |
| 4922 | __lasx_xvftintrml_l_s(a) | 4922 | unsafe { __lasx_xvftintrml_l_s(a) } |
| 4923 | } | 4923 | } |
| 4924 | 4924 | ||
| 4925 | #[inline] | 4925 | #[inline] |
| 4926 | #[target_feature(enable = "lasx")] | 4926 | #[target_feature(enable = "lasx")] |
| 4927 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4927 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4928 | pub unsafe fn lasx_xvftintrneh_l_s(a: v8f32) -> v4i64 { | 4928 | pub fn lasx_xvftintrneh_l_s(a: v8f32) -> v4i64 { |
| 4929 | __lasx_xvftintrneh_l_s(a) | 4929 | unsafe { __lasx_xvftintrneh_l_s(a) } |
| 4930 | } | 4930 | } |
| 4931 | 4931 | ||
| 4932 | #[inline] | 4932 | #[inline] |
| 4933 | #[target_feature(enable = "lasx")] | 4933 | #[target_feature(enable = "lasx")] |
| 4934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4935 | pub unsafe fn lasx_xvftintrnel_l_s(a: v8f32) -> v4i64 { | 4935 | pub fn lasx_xvftintrnel_l_s(a: v8f32) -> v4i64 { |
| 4936 | __lasx_xvftintrnel_l_s(a) | 4936 | unsafe { __lasx_xvftintrnel_l_s(a) } |
| 4937 | } | 4937 | } |
| 4938 | 4938 | ||
| 4939 | #[inline] | 4939 | #[inline] |
| 4940 | #[target_feature(enable = "lasx")] | 4940 | #[target_feature(enable = "lasx")] |
| 4941 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4941 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4942 | pub unsafe fn lasx_xvfrintrne_s(a: v8f32) -> v8f32 { | 4942 | pub fn lasx_xvfrintrne_s(a: v8f32) -> v8f32 { |
| 4943 | __lasx_xvfrintrne_s(a) | 4943 | unsafe { __lasx_xvfrintrne_s(a) } |
| 4944 | } | 4944 | } |
| 4945 | 4945 | ||
| 4946 | #[inline] | 4946 | #[inline] |
| 4947 | #[target_feature(enable = "lasx")] | 4947 | #[target_feature(enable = "lasx")] |
| 4948 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4948 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4949 | pub unsafe fn lasx_xvfrintrne_d(a: v4f64) -> v4f64 { | 4949 | pub fn lasx_xvfrintrne_d(a: v4f64) -> v4f64 { |
| 4950 | __lasx_xvfrintrne_d(a) | 4950 | unsafe { __lasx_xvfrintrne_d(a) } |
| 4951 | } | 4951 | } |
| 4952 | 4952 | ||
| 4953 | #[inline] | 4953 | #[inline] |
| 4954 | #[target_feature(enable = "lasx")] | 4954 | #[target_feature(enable = "lasx")] |
| 4955 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4955 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4956 | pub unsafe fn lasx_xvfrintrz_s(a: v8f32) -> v8f32 { | 4956 | pub fn lasx_xvfrintrz_s(a: v8f32) -> v8f32 { |
| 4957 | __lasx_xvfrintrz_s(a) | 4957 | unsafe { __lasx_xvfrintrz_s(a) } |
| 4958 | } | 4958 | } |
| 4959 | 4959 | ||
| 4960 | #[inline] | 4960 | #[inline] |
| 4961 | #[target_feature(enable = "lasx")] | 4961 | #[target_feature(enable = "lasx")] |
| 4962 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4962 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4963 | pub unsafe fn lasx_xvfrintrz_d(a: v4f64) -> v4f64 { | 4963 | pub fn lasx_xvfrintrz_d(a: v4f64) -> v4f64 { |
| 4964 | __lasx_xvfrintrz_d(a) | 4964 | unsafe { __lasx_xvfrintrz_d(a) } |
| 4965 | } | 4965 | } |
| 4966 | 4966 | ||
| 4967 | #[inline] | 4967 | #[inline] |
| 4968 | #[target_feature(enable = "lasx")] | 4968 | #[target_feature(enable = "lasx")] |
| 4969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4970 | pub unsafe fn lasx_xvfrintrp_s(a: v8f32) -> v8f32 { | 4970 | pub fn lasx_xvfrintrp_s(a: v8f32) -> v8f32 { |
| 4971 | __lasx_xvfrintrp_s(a) | 4971 | unsafe { __lasx_xvfrintrp_s(a) } |
| 4972 | } | 4972 | } |
| 4973 | 4973 | ||
| 4974 | #[inline] | 4974 | #[inline] |
| 4975 | #[target_feature(enable = "lasx")] | 4975 | #[target_feature(enable = "lasx")] |
| 4976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4977 | pub unsafe fn lasx_xvfrintrp_d(a: v4f64) -> v4f64 { | 4977 | pub fn lasx_xvfrintrp_d(a: v4f64) -> v4f64 { |
| 4978 | __lasx_xvfrintrp_d(a) | 4978 | unsafe { __lasx_xvfrintrp_d(a) } |
| 4979 | } | 4979 | } |
| 4980 | 4980 | ||
| 4981 | #[inline] | 4981 | #[inline] |
| 4982 | #[target_feature(enable = "lasx")] | 4982 | #[target_feature(enable = "lasx")] |
| 4983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4984 | pub unsafe fn lasx_xvfrintrm_s(a: v8f32) -> v8f32 { | 4984 | pub fn lasx_xvfrintrm_s(a: v8f32) -> v8f32 { |
| 4985 | __lasx_xvfrintrm_s(a) | 4985 | unsafe { __lasx_xvfrintrm_s(a) } |
| 4986 | } | 4986 | } |
| 4987 | 4987 | ||
| 4988 | #[inline] | 4988 | #[inline] |
| 4989 | #[target_feature(enable = "lasx")] | 4989 | #[target_feature(enable = "lasx")] |
| 4990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4991 | pub unsafe fn lasx_xvfrintrm_d(a: v4f64) -> v4f64 { | 4991 | pub fn lasx_xvfrintrm_d(a: v4f64) -> v4f64 { |
| 4992 | __lasx_xvfrintrm_d(a) | 4992 | unsafe { __lasx_xvfrintrm_d(a) } |
| 4993 | } | 4993 | } |
| 4994 | 4994 | ||
| 4995 | #[inline] | 4995 | #[inline] |
| ... | @@ -5054,94 +5054,94 @@ pub unsafe fn lasx_xvstelm_d<const IMM_S8: i32, const IMM1: u32>(a: v4i64, mem_a | ... | @@ -5054,94 +5054,94 @@ pub unsafe fn lasx_xvstelm_d<const IMM_S8: i32, const IMM1: u32>(a: v4i64, mem_a |
| 5054 | #[target_feature(enable = "lasx")] | 5054 | #[target_feature(enable = "lasx")] |
| 5055 | #[rustc_legacy_const_generics(2)] | 5055 | #[rustc_legacy_const_generics(2)] |
| 5056 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5056 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5057 | pub unsafe fn lasx_xvinsve0_w<const IMM3: u32>(a: v8i32, b: v8i32) -> v8i32 { | 5057 | pub fn lasx_xvinsve0_w<const IMM3: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 5058 | static_assert_uimm_bits!(IMM3, 3); | 5058 | static_assert_uimm_bits!(IMM3, 3); |
| 5059 | __lasx_xvinsve0_w(a, b, IMM3) | 5059 | unsafe { __lasx_xvinsve0_w(a, b, IMM3) } |
| 5060 | } | 5060 | } |
| 5061 | 5061 | ||
| 5062 | #[inline] | 5062 | #[inline] |
| 5063 | #[target_feature(enable = "lasx")] | 5063 | #[target_feature(enable = "lasx")] |
| 5064 | #[rustc_legacy_const_generics(2)] | 5064 | #[rustc_legacy_const_generics(2)] |
| 5065 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5065 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5066 | pub unsafe fn lasx_xvinsve0_d<const IMM2: u32>(a: v4i64, b: v4i64) -> v4i64 { | 5066 | pub fn lasx_xvinsve0_d<const IMM2: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 5067 | static_assert_uimm_bits!(IMM2, 2); | 5067 | static_assert_uimm_bits!(IMM2, 2); |
| 5068 | __lasx_xvinsve0_d(a, b, IMM2) | 5068 | unsafe { __lasx_xvinsve0_d(a, b, IMM2) } |
| 5069 | } | 5069 | } |
| 5070 | 5070 | ||
| 5071 | #[inline] | 5071 | #[inline] |
| 5072 | #[target_feature(enable = "lasx")] | 5072 | #[target_feature(enable = "lasx")] |
| 5073 | #[rustc_legacy_const_generics(1)] | 5073 | #[rustc_legacy_const_generics(1)] |
| 5074 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5074 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5075 | pub unsafe fn lasx_xvpickve_w<const IMM3: u32>(a: v8i32) -> v8i32 { | 5075 | pub fn lasx_xvpickve_w<const IMM3: u32>(a: v8i32) -> v8i32 { |
| 5076 | static_assert_uimm_bits!(IMM3, 3); | 5076 | static_assert_uimm_bits!(IMM3, 3); |
| 5077 | __lasx_xvpickve_w(a, IMM3) | 5077 | unsafe { __lasx_xvpickve_w(a, IMM3) } |
| 5078 | } | 5078 | } |
| 5079 | 5079 | ||
| 5080 | #[inline] | 5080 | #[inline] |
| 5081 | #[target_feature(enable = "lasx")] | 5081 | #[target_feature(enable = "lasx")] |
| 5082 | #[rustc_legacy_const_generics(1)] | 5082 | #[rustc_legacy_const_generics(1)] |
| 5083 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5083 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5084 | pub unsafe fn lasx_xvpickve_d<const IMM2: u32>(a: v4i64) -> v4i64 { | 5084 | pub fn lasx_xvpickve_d<const IMM2: u32>(a: v4i64) -> v4i64 { |
| 5085 | static_assert_uimm_bits!(IMM2, 2); | 5085 | static_assert_uimm_bits!(IMM2, 2); |
| 5086 | __lasx_xvpickve_d(a, IMM2) | 5086 | unsafe { __lasx_xvpickve_d(a, IMM2) } |
| 5087 | } | 5087 | } |
| 5088 | 5088 | ||
| 5089 | #[inline] | 5089 | #[inline] |
| 5090 | #[target_feature(enable = "lasx")] | 5090 | #[target_feature(enable = "lasx")] |
| 5091 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5091 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5092 | pub unsafe fn lasx_xvssrlrn_b_h(a: v16i16, b: v16i16) -> v32i8 { | 5092 | pub fn lasx_xvssrlrn_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 5093 | __lasx_xvssrlrn_b_h(a, b) | 5093 | unsafe { __lasx_xvssrlrn_b_h(a, b) } |
| 5094 | } | 5094 | } |
| 5095 | 5095 | ||
| 5096 | #[inline] | 5096 | #[inline] |
| 5097 | #[target_feature(enable = "lasx")] | 5097 | #[target_feature(enable = "lasx")] |
| 5098 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5098 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5099 | pub unsafe fn lasx_xvssrlrn_h_w(a: v8i32, b: v8i32) -> v16i16 { | 5099 | pub fn lasx_xvssrlrn_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 5100 | __lasx_xvssrlrn_h_w(a, b) | 5100 | unsafe { __lasx_xvssrlrn_h_w(a, b) } |
| 5101 | } | 5101 | } |
| 5102 | 5102 | ||
| 5103 | #[inline] | 5103 | #[inline] |
| 5104 | #[target_feature(enable = "lasx")] | 5104 | #[target_feature(enable = "lasx")] |
| 5105 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5105 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5106 | pub unsafe fn lasx_xvssrlrn_w_d(a: v4i64, b: v4i64) -> v8i32 { | 5106 | pub fn lasx_xvssrlrn_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 5107 | __lasx_xvssrlrn_w_d(a, b) | 5107 | unsafe { __lasx_xvssrlrn_w_d(a, b) } |
| 5108 | } | 5108 | } |
| 5109 | 5109 | ||
| 5110 | #[inline] | 5110 | #[inline] |
| 5111 | #[target_feature(enable = "lasx")] | 5111 | #[target_feature(enable = "lasx")] |
| 5112 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5112 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5113 | pub unsafe fn lasx_xvssrln_b_h(a: v16i16, b: v16i16) -> v32i8 { | 5113 | pub fn lasx_xvssrln_b_h(a: v16i16, b: v16i16) -> v32i8 { |
| 5114 | __lasx_xvssrln_b_h(a, b) | 5114 | unsafe { __lasx_xvssrln_b_h(a, b) } |
| 5115 | } | 5115 | } |
| 5116 | 5116 | ||
| 5117 | #[inline] | 5117 | #[inline] |
| 5118 | #[target_feature(enable = "lasx")] | 5118 | #[target_feature(enable = "lasx")] |
| 5119 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5119 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5120 | pub unsafe fn lasx_xvssrln_h_w(a: v8i32, b: v8i32) -> v16i16 { | 5120 | pub fn lasx_xvssrln_h_w(a: v8i32, b: v8i32) -> v16i16 { |
| 5121 | __lasx_xvssrln_h_w(a, b) | 5121 | unsafe { __lasx_xvssrln_h_w(a, b) } |
| 5122 | } | 5122 | } |
| 5123 | 5123 | ||
| 5124 | #[inline] | 5124 | #[inline] |
| 5125 | #[target_feature(enable = "lasx")] | 5125 | #[target_feature(enable = "lasx")] |
| 5126 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5126 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5127 | pub unsafe fn lasx_xvssrln_w_d(a: v4i64, b: v4i64) -> v8i32 { | 5127 | pub fn lasx_xvssrln_w_d(a: v4i64, b: v4i64) -> v8i32 { |
| 5128 | __lasx_xvssrln_w_d(a, b) | 5128 | unsafe { __lasx_xvssrln_w_d(a, b) } |
| 5129 | } | 5129 | } |
| 5130 | 5130 | ||
| 5131 | #[inline] | 5131 | #[inline] |
| 5132 | #[target_feature(enable = "lasx")] | 5132 | #[target_feature(enable = "lasx")] |
| 5133 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5133 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5134 | pub unsafe fn lasx_xvorn_v(a: v32i8, b: v32i8) -> v32i8 { | 5134 | pub fn lasx_xvorn_v(a: v32i8, b: v32i8) -> v32i8 { |
| 5135 | __lasx_xvorn_v(a, b) | 5135 | unsafe { __lasx_xvorn_v(a, b) } |
| 5136 | } | 5136 | } |
| 5137 | 5137 | ||
| 5138 | #[inline] | 5138 | #[inline] |
| 5139 | #[target_feature(enable = "lasx")] | 5139 | #[target_feature(enable = "lasx")] |
| 5140 | #[rustc_legacy_const_generics(0)] | 5140 | #[rustc_legacy_const_generics(0)] |
| 5141 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5141 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5142 | pub unsafe fn lasx_xvldi<const IMM_S13: i32>() -> v4i64 { | 5142 | pub fn lasx_xvldi<const IMM_S13: i32>() -> v4i64 { |
| 5143 | static_assert_simm_bits!(IMM_S13, 13); | 5143 | static_assert_simm_bits!(IMM_S13, 13); |
| 5144 | __lasx_xvldi(IMM_S13) | 5144 | unsafe { __lasx_xvldi(IMM_S13) } |
| 5145 | } | 5145 | } |
| 5146 | 5146 | ||
| 5147 | #[inline] | 5147 | #[inline] |
| ... | @@ -5161,170 +5161,170 @@ pub unsafe fn lasx_xvstx(a: v32i8, mem_addr: *mut i8, b: i64) { | ... | @@ -5161,170 +5161,170 @@ pub unsafe fn lasx_xvstx(a: v32i8, mem_addr: *mut i8, b: i64) { |
| 5161 | #[inline] | 5161 | #[inline] |
| 5162 | #[target_feature(enable = "lasx")] | 5162 | #[target_feature(enable = "lasx")] |
| 5163 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5163 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5164 | pub unsafe fn lasx_xvextl_qu_du(a: v4u64) -> v4u64 { | 5164 | pub fn lasx_xvextl_qu_du(a: v4u64) -> v4u64 { |
| 5165 | __lasx_xvextl_qu_du(a) | 5165 | unsafe { __lasx_xvextl_qu_du(a) } |
| 5166 | } | 5166 | } |
| 5167 | 5167 | ||
| 5168 | #[inline] | 5168 | #[inline] |
| 5169 | #[target_feature(enable = "lasx")] | 5169 | #[target_feature(enable = "lasx")] |
| 5170 | #[rustc_legacy_const_generics(2)] | 5170 | #[rustc_legacy_const_generics(2)] |
| 5171 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5171 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5172 | pub unsafe fn lasx_xvinsgr2vr_w<const IMM3: u32>(a: v8i32, b: i32) -> v8i32 { | 5172 | pub fn lasx_xvinsgr2vr_w<const IMM3: u32>(a: v8i32, b: i32) -> v8i32 { |
| 5173 | static_assert_uimm_bits!(IMM3, 3); | 5173 | static_assert_uimm_bits!(IMM3, 3); |
| 5174 | __lasx_xvinsgr2vr_w(a, b, IMM3) | 5174 | unsafe { __lasx_xvinsgr2vr_w(a, b, IMM3) } |
| 5175 | } | 5175 | } |
| 5176 | 5176 | ||
| 5177 | #[inline] | 5177 | #[inline] |
| 5178 | #[target_feature(enable = "lasx")] | 5178 | #[target_feature(enable = "lasx")] |
| 5179 | #[rustc_legacy_const_generics(2)] | 5179 | #[rustc_legacy_const_generics(2)] |
| 5180 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5180 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5181 | pub unsafe fn lasx_xvinsgr2vr_d<const IMM2: u32>(a: v4i64, b: i64) -> v4i64 { | 5181 | pub fn lasx_xvinsgr2vr_d<const IMM2: u32>(a: v4i64, b: i64) -> v4i64 { |
| 5182 | static_assert_uimm_bits!(IMM2, 2); | 5182 | static_assert_uimm_bits!(IMM2, 2); |
| 5183 | __lasx_xvinsgr2vr_d(a, b, IMM2) | 5183 | unsafe { __lasx_xvinsgr2vr_d(a, b, IMM2) } |
| 5184 | } | 5184 | } |
| 5185 | 5185 | ||
| 5186 | #[inline] | 5186 | #[inline] |
| 5187 | #[target_feature(enable = "lasx")] | 5187 | #[target_feature(enable = "lasx")] |
| 5188 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5188 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5189 | pub unsafe fn lasx_xvreplve0_b(a: v32i8) -> v32i8 { | 5189 | pub fn lasx_xvreplve0_b(a: v32i8) -> v32i8 { |
| 5190 | __lasx_xvreplve0_b(a) | 5190 | unsafe { __lasx_xvreplve0_b(a) } |
| 5191 | } | 5191 | } |
| 5192 | 5192 | ||
| 5193 | #[inline] | 5193 | #[inline] |
| 5194 | #[target_feature(enable = "lasx")] | 5194 | #[target_feature(enable = "lasx")] |
| 5195 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5195 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5196 | pub unsafe fn lasx_xvreplve0_h(a: v16i16) -> v16i16 { | 5196 | pub fn lasx_xvreplve0_h(a: v16i16) -> v16i16 { |
| 5197 | __lasx_xvreplve0_h(a) | 5197 | unsafe { __lasx_xvreplve0_h(a) } |
| 5198 | } | 5198 | } |
| 5199 | 5199 | ||
| 5200 | #[inline] | 5200 | #[inline] |
| 5201 | #[target_feature(enable = "lasx")] | 5201 | #[target_feature(enable = "lasx")] |
| 5202 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5202 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5203 | pub unsafe fn lasx_xvreplve0_w(a: v8i32) -> v8i32 { | 5203 | pub fn lasx_xvreplve0_w(a: v8i32) -> v8i32 { |
| 5204 | __lasx_xvreplve0_w(a) | 5204 | unsafe { __lasx_xvreplve0_w(a) } |
| 5205 | } | 5205 | } |
| 5206 | 5206 | ||
| 5207 | #[inline] | 5207 | #[inline] |
| 5208 | #[target_feature(enable = "lasx")] | 5208 | #[target_feature(enable = "lasx")] |
| 5209 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5209 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5210 | pub unsafe fn lasx_xvreplve0_d(a: v4i64) -> v4i64 { | 5210 | pub fn lasx_xvreplve0_d(a: v4i64) -> v4i64 { |
| 5211 | __lasx_xvreplve0_d(a) | 5211 | unsafe { __lasx_xvreplve0_d(a) } |
| 5212 | } | 5212 | } |
| 5213 | 5213 | ||
| 5214 | #[inline] | 5214 | #[inline] |
| 5215 | #[target_feature(enable = "lasx")] | 5215 | #[target_feature(enable = "lasx")] |
| 5216 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5216 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5217 | pub unsafe fn lasx_xvreplve0_q(a: v32i8) -> v32i8 { | 5217 | pub fn lasx_xvreplve0_q(a: v32i8) -> v32i8 { |
| 5218 | __lasx_xvreplve0_q(a) | 5218 | unsafe { __lasx_xvreplve0_q(a) } |
| 5219 | } | 5219 | } |
| 5220 | 5220 | ||
| 5221 | #[inline] | 5221 | #[inline] |
| 5222 | #[target_feature(enable = "lasx")] | 5222 | #[target_feature(enable = "lasx")] |
| 5223 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5223 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5224 | pub unsafe fn lasx_vext2xv_h_b(a: v32i8) -> v16i16 { | 5224 | pub fn lasx_vext2xv_h_b(a: v32i8) -> v16i16 { |
| 5225 | __lasx_vext2xv_h_b(a) | 5225 | unsafe { __lasx_vext2xv_h_b(a) } |
| 5226 | } | 5226 | } |
| 5227 | 5227 | ||
| 5228 | #[inline] | 5228 | #[inline] |
| 5229 | #[target_feature(enable = "lasx")] | 5229 | #[target_feature(enable = "lasx")] |
| 5230 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5230 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5231 | pub unsafe fn lasx_vext2xv_w_h(a: v16i16) -> v8i32 { | 5231 | pub fn lasx_vext2xv_w_h(a: v16i16) -> v8i32 { |
| 5232 | __lasx_vext2xv_w_h(a) | 5232 | unsafe { __lasx_vext2xv_w_h(a) } |
| 5233 | } | 5233 | } |
| 5234 | 5234 | ||
| 5235 | #[inline] | 5235 | #[inline] |
| 5236 | #[target_feature(enable = "lasx")] | 5236 | #[target_feature(enable = "lasx")] |
| 5237 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5237 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5238 | pub unsafe fn lasx_vext2xv_d_w(a: v8i32) -> v4i64 { | 5238 | pub fn lasx_vext2xv_d_w(a: v8i32) -> v4i64 { |
| 5239 | __lasx_vext2xv_d_w(a) | 5239 | unsafe { __lasx_vext2xv_d_w(a) } |
| 5240 | } | 5240 | } |
| 5241 | 5241 | ||
| 5242 | #[inline] | 5242 | #[inline] |
| 5243 | #[target_feature(enable = "lasx")] | 5243 | #[target_feature(enable = "lasx")] |
| 5244 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5244 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5245 | pub unsafe fn lasx_vext2xv_w_b(a: v32i8) -> v8i32 { | 5245 | pub fn lasx_vext2xv_w_b(a: v32i8) -> v8i32 { |
| 5246 | __lasx_vext2xv_w_b(a) | 5246 | unsafe { __lasx_vext2xv_w_b(a) } |
| 5247 | } | 5247 | } |
| 5248 | 5248 | ||
| 5249 | #[inline] | 5249 | #[inline] |
| 5250 | #[target_feature(enable = "lasx")] | 5250 | #[target_feature(enable = "lasx")] |
| 5251 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5251 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5252 | pub unsafe fn lasx_vext2xv_d_h(a: v16i16) -> v4i64 { | 5252 | pub fn lasx_vext2xv_d_h(a: v16i16) -> v4i64 { |
| 5253 | __lasx_vext2xv_d_h(a) | 5253 | unsafe { __lasx_vext2xv_d_h(a) } |
| 5254 | } | 5254 | } |
| 5255 | 5255 | ||
| 5256 | #[inline] | 5256 | #[inline] |
| 5257 | #[target_feature(enable = "lasx")] | 5257 | #[target_feature(enable = "lasx")] |
| 5258 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5258 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5259 | pub unsafe fn lasx_vext2xv_d_b(a: v32i8) -> v4i64 { | 5259 | pub fn lasx_vext2xv_d_b(a: v32i8) -> v4i64 { |
| 5260 | __lasx_vext2xv_d_b(a) | 5260 | unsafe { __lasx_vext2xv_d_b(a) } |
| 5261 | } | 5261 | } |
| 5262 | 5262 | ||
| 5263 | #[inline] | 5263 | #[inline] |
| 5264 | #[target_feature(enable = "lasx")] | 5264 | #[target_feature(enable = "lasx")] |
| 5265 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5265 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5266 | pub unsafe fn lasx_vext2xv_hu_bu(a: v32i8) -> v16i16 { | 5266 | pub fn lasx_vext2xv_hu_bu(a: v32i8) -> v16i16 { |
| 5267 | __lasx_vext2xv_hu_bu(a) | 5267 | unsafe { __lasx_vext2xv_hu_bu(a) } |
| 5268 | } | 5268 | } |
| 5269 | 5269 | ||
| 5270 | #[inline] | 5270 | #[inline] |
| 5271 | #[target_feature(enable = "lasx")] | 5271 | #[target_feature(enable = "lasx")] |
| 5272 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5272 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5273 | pub unsafe fn lasx_vext2xv_wu_hu(a: v16i16) -> v8i32 { | 5273 | pub fn lasx_vext2xv_wu_hu(a: v16i16) -> v8i32 { |
| 5274 | __lasx_vext2xv_wu_hu(a) | 5274 | unsafe { __lasx_vext2xv_wu_hu(a) } |
| 5275 | } | 5275 | } |
| 5276 | 5276 | ||
| 5277 | #[inline] | 5277 | #[inline] |
| 5278 | #[target_feature(enable = "lasx")] | 5278 | #[target_feature(enable = "lasx")] |
| 5279 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5279 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5280 | pub unsafe fn lasx_vext2xv_du_wu(a: v8i32) -> v4i64 { | 5280 | pub fn lasx_vext2xv_du_wu(a: v8i32) -> v4i64 { |
| 5281 | __lasx_vext2xv_du_wu(a) | 5281 | unsafe { __lasx_vext2xv_du_wu(a) } |
| 5282 | } | 5282 | } |
| 5283 | 5283 | ||
| 5284 | #[inline] | 5284 | #[inline] |
| 5285 | #[target_feature(enable = "lasx")] | 5285 | #[target_feature(enable = "lasx")] |
| 5286 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5286 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5287 | pub unsafe fn lasx_vext2xv_wu_bu(a: v32i8) -> v8i32 { | 5287 | pub fn lasx_vext2xv_wu_bu(a: v32i8) -> v8i32 { |
| 5288 | __lasx_vext2xv_wu_bu(a) | 5288 | unsafe { __lasx_vext2xv_wu_bu(a) } |
| 5289 | } | 5289 | } |
| 5290 | 5290 | ||
| 5291 | #[inline] | 5291 | #[inline] |
| 5292 | #[target_feature(enable = "lasx")] | 5292 | #[target_feature(enable = "lasx")] |
| 5293 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5293 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5294 | pub unsafe fn lasx_vext2xv_du_hu(a: v16i16) -> v4i64 { | 5294 | pub fn lasx_vext2xv_du_hu(a: v16i16) -> v4i64 { |
| 5295 | __lasx_vext2xv_du_hu(a) | 5295 | unsafe { __lasx_vext2xv_du_hu(a) } |
| 5296 | } | 5296 | } |
| 5297 | 5297 | ||
| 5298 | #[inline] | 5298 | #[inline] |
| 5299 | #[target_feature(enable = "lasx")] | 5299 | #[target_feature(enable = "lasx")] |
| 5300 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5300 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5301 | pub unsafe fn lasx_vext2xv_du_bu(a: v32i8) -> v4i64 { | 5301 | pub fn lasx_vext2xv_du_bu(a: v32i8) -> v4i64 { |
| 5302 | __lasx_vext2xv_du_bu(a) | 5302 | unsafe { __lasx_vext2xv_du_bu(a) } |
| 5303 | } | 5303 | } |
| 5304 | 5304 | ||
| 5305 | #[inline] | 5305 | #[inline] |
| 5306 | #[target_feature(enable = "lasx")] | 5306 | #[target_feature(enable = "lasx")] |
| 5307 | #[rustc_legacy_const_generics(2)] | 5307 | #[rustc_legacy_const_generics(2)] |
| 5308 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5308 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5309 | pub unsafe fn lasx_xvpermi_q<const IMM8: u32>(a: v32i8, b: v32i8) -> v32i8 { | 5309 | pub fn lasx_xvpermi_q<const IMM8: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 5310 | static_assert_uimm_bits!(IMM8, 8); | 5310 | static_assert_uimm_bits!(IMM8, 8); |
| 5311 | __lasx_xvpermi_q(a, b, IMM8) | 5311 | unsafe { __lasx_xvpermi_q(a, b, IMM8) } |
| 5312 | } | 5312 | } |
| 5313 | 5313 | ||
| 5314 | #[inline] | 5314 | #[inline] |
| 5315 | #[target_feature(enable = "lasx")] | 5315 | #[target_feature(enable = "lasx")] |
| 5316 | #[rustc_legacy_const_generics(1)] | 5316 | #[rustc_legacy_const_generics(1)] |
| 5317 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5317 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5318 | pub unsafe fn lasx_xvpermi_d<const IMM8: u32>(a: v4i64) -> v4i64 { | 5318 | pub fn lasx_xvpermi_d<const IMM8: u32>(a: v4i64) -> v4i64 { |
| 5319 | static_assert_uimm_bits!(IMM8, 8); | 5319 | static_assert_uimm_bits!(IMM8, 8); |
| 5320 | __lasx_xvpermi_d(a, IMM8) | 5320 | unsafe { __lasx_xvpermi_d(a, IMM8) } |
| 5321 | } | 5321 | } |
| 5322 | 5322 | ||
| 5323 | #[inline] | 5323 | #[inline] |
| 5324 | #[target_feature(enable = "lasx")] | 5324 | #[target_feature(enable = "lasx")] |
| 5325 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5325 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5326 | pub unsafe fn lasx_xvperm_w(a: v8i32, b: v8i32) -> v8i32 { | 5326 | pub fn lasx_xvperm_w(a: v8i32, b: v8i32) -> v8i32 { |
| 5327 | __lasx_xvperm_w(a, b) | 5327 | unsafe { __lasx_xvperm_w(a, b) } |
| 5328 | } | 5328 | } |
| 5329 | 5329 | ||
| 5330 | #[inline] | 5330 | #[inline] |
| ... | @@ -5367,1697 +5367,1697 @@ pub unsafe fn lasx_xvldrepl_d<const IMM_S9: i32>(mem_addr: *const i8) -> v4i64 { | ... | @@ -5367,1697 +5367,1697 @@ pub unsafe fn lasx_xvldrepl_d<const IMM_S9: i32>(mem_addr: *const i8) -> v4i64 { |
| 5367 | #[target_feature(enable = "lasx")] | 5367 | #[target_feature(enable = "lasx")] |
| 5368 | #[rustc_legacy_const_generics(1)] | 5368 | #[rustc_legacy_const_generics(1)] |
| 5369 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5369 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5370 | pub unsafe fn lasx_xvpickve2gr_w<const IMM3: u32>(a: v8i32) -> i32 { | 5370 | pub fn lasx_xvpickve2gr_w<const IMM3: u32>(a: v8i32) -> i32 { |
| 5371 | static_assert_uimm_bits!(IMM3, 3); | 5371 | static_assert_uimm_bits!(IMM3, 3); |
| 5372 | __lasx_xvpickve2gr_w(a, IMM3) | 5372 | unsafe { __lasx_xvpickve2gr_w(a, IMM3) } |
| 5373 | } | 5373 | } |
| 5374 | 5374 | ||
| 5375 | #[inline] | 5375 | #[inline] |
| 5376 | #[target_feature(enable = "lasx")] | 5376 | #[target_feature(enable = "lasx")] |
| 5377 | #[rustc_legacy_const_generics(1)] | 5377 | #[rustc_legacy_const_generics(1)] |
| 5378 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5378 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5379 | pub unsafe fn lasx_xvpickve2gr_wu<const IMM3: u32>(a: v8i32) -> u32 { | 5379 | pub fn lasx_xvpickve2gr_wu<const IMM3: u32>(a: v8i32) -> u32 { |
| 5380 | static_assert_uimm_bits!(IMM3, 3); | 5380 | static_assert_uimm_bits!(IMM3, 3); |
| 5381 | __lasx_xvpickve2gr_wu(a, IMM3) | 5381 | unsafe { __lasx_xvpickve2gr_wu(a, IMM3) } |
| 5382 | } | 5382 | } |
| 5383 | 5383 | ||
| 5384 | #[inline] | 5384 | #[inline] |
| 5385 | #[target_feature(enable = "lasx")] | 5385 | #[target_feature(enable = "lasx")] |
| 5386 | #[rustc_legacy_const_generics(1)] | 5386 | #[rustc_legacy_const_generics(1)] |
| 5387 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5387 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5388 | pub unsafe fn lasx_xvpickve2gr_d<const IMM2: u32>(a: v4i64) -> i64 { | 5388 | pub fn lasx_xvpickve2gr_d<const IMM2: u32>(a: v4i64) -> i64 { |
| 5389 | static_assert_uimm_bits!(IMM2, 2); | 5389 | static_assert_uimm_bits!(IMM2, 2); |
| 5390 | __lasx_xvpickve2gr_d(a, IMM2) | 5390 | unsafe { __lasx_xvpickve2gr_d(a, IMM2) } |
| 5391 | } | 5391 | } |
| 5392 | 5392 | ||
| 5393 | #[inline] | 5393 | #[inline] |
| 5394 | #[target_feature(enable = "lasx")] | 5394 | #[target_feature(enable = "lasx")] |
| 5395 | #[rustc_legacy_const_generics(1)] | 5395 | #[rustc_legacy_const_generics(1)] |
| 5396 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5396 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5397 | pub unsafe fn lasx_xvpickve2gr_du<const IMM2: u32>(a: v4i64) -> u64 { | 5397 | pub fn lasx_xvpickve2gr_du<const IMM2: u32>(a: v4i64) -> u64 { |
| 5398 | static_assert_uimm_bits!(IMM2, 2); | 5398 | static_assert_uimm_bits!(IMM2, 2); |
| 5399 | __lasx_xvpickve2gr_du(a, IMM2) | 5399 | unsafe { __lasx_xvpickve2gr_du(a, IMM2) } |
| 5400 | } | 5400 | } |
| 5401 | 5401 | ||
| 5402 | #[inline] | 5402 | #[inline] |
| 5403 | #[target_feature(enable = "lasx")] | 5403 | #[target_feature(enable = "lasx")] |
| 5404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5405 | pub unsafe fn lasx_xvaddwev_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5405 | pub fn lasx_xvaddwev_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5406 | __lasx_xvaddwev_q_d(a, b) | 5406 | unsafe { __lasx_xvaddwev_q_d(a, b) } |
| 5407 | } | 5407 | } |
| 5408 | 5408 | ||
| 5409 | #[inline] | 5409 | #[inline] |
| 5410 | #[target_feature(enable = "lasx")] | 5410 | #[target_feature(enable = "lasx")] |
| 5411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5412 | pub unsafe fn lasx_xvaddwev_d_w(a: v8i32, b: v8i32) -> v4i64 { | 5412 | pub fn lasx_xvaddwev_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 5413 | __lasx_xvaddwev_d_w(a, b) | 5413 | unsafe { __lasx_xvaddwev_d_w(a, b) } |
| 5414 | } | 5414 | } |
| 5415 | 5415 | ||
| 5416 | #[inline] | 5416 | #[inline] |
| 5417 | #[target_feature(enable = "lasx")] | 5417 | #[target_feature(enable = "lasx")] |
| 5418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5419 | pub unsafe fn lasx_xvaddwev_w_h(a: v16i16, b: v16i16) -> v8i32 { | 5419 | pub fn lasx_xvaddwev_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 5420 | __lasx_xvaddwev_w_h(a, b) | 5420 | unsafe { __lasx_xvaddwev_w_h(a, b) } |
| 5421 | } | 5421 | } |
| 5422 | 5422 | ||
| 5423 | #[inline] | 5423 | #[inline] |
| 5424 | #[target_feature(enable = "lasx")] | 5424 | #[target_feature(enable = "lasx")] |
| 5425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5426 | pub unsafe fn lasx_xvaddwev_h_b(a: v32i8, b: v32i8) -> v16i16 { | 5426 | pub fn lasx_xvaddwev_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 5427 | __lasx_xvaddwev_h_b(a, b) | 5427 | unsafe { __lasx_xvaddwev_h_b(a, b) } |
| 5428 | } | 5428 | } |
| 5429 | 5429 | ||
| 5430 | #[inline] | 5430 | #[inline] |
| 5431 | #[target_feature(enable = "lasx")] | 5431 | #[target_feature(enable = "lasx")] |
| 5432 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5432 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5433 | pub unsafe fn lasx_xvaddwev_q_du(a: v4u64, b: v4u64) -> v4i64 { | 5433 | pub fn lasx_xvaddwev_q_du(a: v4u64, b: v4u64) -> v4i64 { |
| 5434 | __lasx_xvaddwev_q_du(a, b) | 5434 | unsafe { __lasx_xvaddwev_q_du(a, b) } |
| 5435 | } | 5435 | } |
| 5436 | 5436 | ||
| 5437 | #[inline] | 5437 | #[inline] |
| 5438 | #[target_feature(enable = "lasx")] | 5438 | #[target_feature(enable = "lasx")] |
| 5439 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5439 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5440 | pub unsafe fn lasx_xvaddwev_d_wu(a: v8u32, b: v8u32) -> v4i64 { | 5440 | pub fn lasx_xvaddwev_d_wu(a: v8u32, b: v8u32) -> v4i64 { |
| 5441 | __lasx_xvaddwev_d_wu(a, b) | 5441 | unsafe { __lasx_xvaddwev_d_wu(a, b) } |
| 5442 | } | 5442 | } |
| 5443 | 5443 | ||
| 5444 | #[inline] | 5444 | #[inline] |
| 5445 | #[target_feature(enable = "lasx")] | 5445 | #[target_feature(enable = "lasx")] |
| 5446 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5446 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5447 | pub unsafe fn lasx_xvaddwev_w_hu(a: v16u16, b: v16u16) -> v8i32 { | 5447 | pub fn lasx_xvaddwev_w_hu(a: v16u16, b: v16u16) -> v8i32 { |
| 5448 | __lasx_xvaddwev_w_hu(a, b) | 5448 | unsafe { __lasx_xvaddwev_w_hu(a, b) } |
| 5449 | } | 5449 | } |
| 5450 | 5450 | ||
| 5451 | #[inline] | 5451 | #[inline] |
| 5452 | #[target_feature(enable = "lasx")] | 5452 | #[target_feature(enable = "lasx")] |
| 5453 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5453 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5454 | pub unsafe fn lasx_xvaddwev_h_bu(a: v32u8, b: v32u8) -> v16i16 { | 5454 | pub fn lasx_xvaddwev_h_bu(a: v32u8, b: v32u8) -> v16i16 { |
| 5455 | __lasx_xvaddwev_h_bu(a, b) | 5455 | unsafe { __lasx_xvaddwev_h_bu(a, b) } |
| 5456 | } | 5456 | } |
| 5457 | 5457 | ||
| 5458 | #[inline] | 5458 | #[inline] |
| 5459 | #[target_feature(enable = "lasx")] | 5459 | #[target_feature(enable = "lasx")] |
| 5460 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5460 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5461 | pub unsafe fn lasx_xvsubwev_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5461 | pub fn lasx_xvsubwev_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5462 | __lasx_xvsubwev_q_d(a, b) | 5462 | unsafe { __lasx_xvsubwev_q_d(a, b) } |
| 5463 | } | 5463 | } |
| 5464 | 5464 | ||
| 5465 | #[inline] | 5465 | #[inline] |
| 5466 | #[target_feature(enable = "lasx")] | 5466 | #[target_feature(enable = "lasx")] |
| 5467 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5467 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5468 | pub unsafe fn lasx_xvsubwev_d_w(a: v8i32, b: v8i32) -> v4i64 { | 5468 | pub fn lasx_xvsubwev_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 5469 | __lasx_xvsubwev_d_w(a, b) | 5469 | unsafe { __lasx_xvsubwev_d_w(a, b) } |
| 5470 | } | 5470 | } |
| 5471 | 5471 | ||
| 5472 | #[inline] | 5472 | #[inline] |
| 5473 | #[target_feature(enable = "lasx")] | 5473 | #[target_feature(enable = "lasx")] |
| 5474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5475 | pub unsafe fn lasx_xvsubwev_w_h(a: v16i16, b: v16i16) -> v8i32 { | 5475 | pub fn lasx_xvsubwev_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 5476 | __lasx_xvsubwev_w_h(a, b) | 5476 | unsafe { __lasx_xvsubwev_w_h(a, b) } |
| 5477 | } | 5477 | } |
| 5478 | 5478 | ||
| 5479 | #[inline] | 5479 | #[inline] |
| 5480 | #[target_feature(enable = "lasx")] | 5480 | #[target_feature(enable = "lasx")] |
| 5481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5482 | pub unsafe fn lasx_xvsubwev_h_b(a: v32i8, b: v32i8) -> v16i16 { | 5482 | pub fn lasx_xvsubwev_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 5483 | __lasx_xvsubwev_h_b(a, b) | 5483 | unsafe { __lasx_xvsubwev_h_b(a, b) } |
| 5484 | } | 5484 | } |
| 5485 | 5485 | ||
| 5486 | #[inline] | 5486 | #[inline] |
| 5487 | #[target_feature(enable = "lasx")] | 5487 | #[target_feature(enable = "lasx")] |
| 5488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5489 | pub unsafe fn lasx_xvsubwev_q_du(a: v4u64, b: v4u64) -> v4i64 { | 5489 | pub fn lasx_xvsubwev_q_du(a: v4u64, b: v4u64) -> v4i64 { |
| 5490 | __lasx_xvsubwev_q_du(a, b) | 5490 | unsafe { __lasx_xvsubwev_q_du(a, b) } |
| 5491 | } | 5491 | } |
| 5492 | 5492 | ||
| 5493 | #[inline] | 5493 | #[inline] |
| 5494 | #[target_feature(enable = "lasx")] | 5494 | #[target_feature(enable = "lasx")] |
| 5495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5496 | pub unsafe fn lasx_xvsubwev_d_wu(a: v8u32, b: v8u32) -> v4i64 { | 5496 | pub fn lasx_xvsubwev_d_wu(a: v8u32, b: v8u32) -> v4i64 { |
| 5497 | __lasx_xvsubwev_d_wu(a, b) | 5497 | unsafe { __lasx_xvsubwev_d_wu(a, b) } |
| 5498 | } | 5498 | } |
| 5499 | 5499 | ||
| 5500 | #[inline] | 5500 | #[inline] |
| 5501 | #[target_feature(enable = "lasx")] | 5501 | #[target_feature(enable = "lasx")] |
| 5502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5503 | pub unsafe fn lasx_xvsubwev_w_hu(a: v16u16, b: v16u16) -> v8i32 { | 5503 | pub fn lasx_xvsubwev_w_hu(a: v16u16, b: v16u16) -> v8i32 { |
| 5504 | __lasx_xvsubwev_w_hu(a, b) | 5504 | unsafe { __lasx_xvsubwev_w_hu(a, b) } |
| 5505 | } | 5505 | } |
| 5506 | 5506 | ||
| 5507 | #[inline] | 5507 | #[inline] |
| 5508 | #[target_feature(enable = "lasx")] | 5508 | #[target_feature(enable = "lasx")] |
| 5509 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5509 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5510 | pub unsafe fn lasx_xvsubwev_h_bu(a: v32u8, b: v32u8) -> v16i16 { | 5510 | pub fn lasx_xvsubwev_h_bu(a: v32u8, b: v32u8) -> v16i16 { |
| 5511 | __lasx_xvsubwev_h_bu(a, b) | 5511 | unsafe { __lasx_xvsubwev_h_bu(a, b) } |
| 5512 | } | 5512 | } |
| 5513 | 5513 | ||
| 5514 | #[inline] | 5514 | #[inline] |
| 5515 | #[target_feature(enable = "lasx")] | 5515 | #[target_feature(enable = "lasx")] |
| 5516 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5516 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5517 | pub unsafe fn lasx_xvmulwev_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5517 | pub fn lasx_xvmulwev_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5518 | __lasx_xvmulwev_q_d(a, b) | 5518 | unsafe { __lasx_xvmulwev_q_d(a, b) } |
| 5519 | } | 5519 | } |
| 5520 | 5520 | ||
| 5521 | #[inline] | 5521 | #[inline] |
| 5522 | #[target_feature(enable = "lasx")] | 5522 | #[target_feature(enable = "lasx")] |
| 5523 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5523 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5524 | pub unsafe fn lasx_xvmulwev_d_w(a: v8i32, b: v8i32) -> v4i64 { | 5524 | pub fn lasx_xvmulwev_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 5525 | __lasx_xvmulwev_d_w(a, b) | 5525 | unsafe { __lasx_xvmulwev_d_w(a, b) } |
| 5526 | } | 5526 | } |
| 5527 | 5527 | ||
| 5528 | #[inline] | 5528 | #[inline] |
| 5529 | #[target_feature(enable = "lasx")] | 5529 | #[target_feature(enable = "lasx")] |
| 5530 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5530 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5531 | pub unsafe fn lasx_xvmulwev_w_h(a: v16i16, b: v16i16) -> v8i32 { | 5531 | pub fn lasx_xvmulwev_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 5532 | __lasx_xvmulwev_w_h(a, b) | 5532 | unsafe { __lasx_xvmulwev_w_h(a, b) } |
| 5533 | } | 5533 | } |
| 5534 | 5534 | ||
| 5535 | #[inline] | 5535 | #[inline] |
| 5536 | #[target_feature(enable = "lasx")] | 5536 | #[target_feature(enable = "lasx")] |
| 5537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5538 | pub unsafe fn lasx_xvmulwev_h_b(a: v32i8, b: v32i8) -> v16i16 { | 5538 | pub fn lasx_xvmulwev_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 5539 | __lasx_xvmulwev_h_b(a, b) | 5539 | unsafe { __lasx_xvmulwev_h_b(a, b) } |
| 5540 | } | 5540 | } |
| 5541 | 5541 | ||
| 5542 | #[inline] | 5542 | #[inline] |
| 5543 | #[target_feature(enable = "lasx")] | 5543 | #[target_feature(enable = "lasx")] |
| 5544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5545 | pub unsafe fn lasx_xvmulwev_q_du(a: v4u64, b: v4u64) -> v4i64 { | 5545 | pub fn lasx_xvmulwev_q_du(a: v4u64, b: v4u64) -> v4i64 { |
| 5546 | __lasx_xvmulwev_q_du(a, b) | 5546 | unsafe { __lasx_xvmulwev_q_du(a, b) } |
| 5547 | } | 5547 | } |
| 5548 | 5548 | ||
| 5549 | #[inline] | 5549 | #[inline] |
| 5550 | #[target_feature(enable = "lasx")] | 5550 | #[target_feature(enable = "lasx")] |
| 5551 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5551 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5552 | pub unsafe fn lasx_xvmulwev_d_wu(a: v8u32, b: v8u32) -> v4i64 { | 5552 | pub fn lasx_xvmulwev_d_wu(a: v8u32, b: v8u32) -> v4i64 { |
| 5553 | __lasx_xvmulwev_d_wu(a, b) | 5553 | unsafe { __lasx_xvmulwev_d_wu(a, b) } |
| 5554 | } | 5554 | } |
| 5555 | 5555 | ||
| 5556 | #[inline] | 5556 | #[inline] |
| 5557 | #[target_feature(enable = "lasx")] | 5557 | #[target_feature(enable = "lasx")] |
| 5558 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5558 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5559 | pub unsafe fn lasx_xvmulwev_w_hu(a: v16u16, b: v16u16) -> v8i32 { | 5559 | pub fn lasx_xvmulwev_w_hu(a: v16u16, b: v16u16) -> v8i32 { |
| 5560 | __lasx_xvmulwev_w_hu(a, b) | 5560 | unsafe { __lasx_xvmulwev_w_hu(a, b) } |
| 5561 | } | 5561 | } |
| 5562 | 5562 | ||
| 5563 | #[inline] | 5563 | #[inline] |
| 5564 | #[target_feature(enable = "lasx")] | 5564 | #[target_feature(enable = "lasx")] |
| 5565 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5565 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5566 | pub unsafe fn lasx_xvmulwev_h_bu(a: v32u8, b: v32u8) -> v16i16 { | 5566 | pub fn lasx_xvmulwev_h_bu(a: v32u8, b: v32u8) -> v16i16 { |
| 5567 | __lasx_xvmulwev_h_bu(a, b) | 5567 | unsafe { __lasx_xvmulwev_h_bu(a, b) } |
| 5568 | } | 5568 | } |
| 5569 | 5569 | ||
| 5570 | #[inline] | 5570 | #[inline] |
| 5571 | #[target_feature(enable = "lasx")] | 5571 | #[target_feature(enable = "lasx")] |
| 5572 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5572 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5573 | pub unsafe fn lasx_xvaddwod_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5573 | pub fn lasx_xvaddwod_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5574 | __lasx_xvaddwod_q_d(a, b) | 5574 | unsafe { __lasx_xvaddwod_q_d(a, b) } |
| 5575 | } | 5575 | } |
| 5576 | 5576 | ||
| 5577 | #[inline] | 5577 | #[inline] |
| 5578 | #[target_feature(enable = "lasx")] | 5578 | #[target_feature(enable = "lasx")] |
| 5579 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5579 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5580 | pub unsafe fn lasx_xvaddwod_d_w(a: v8i32, b: v8i32) -> v4i64 { | 5580 | pub fn lasx_xvaddwod_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 5581 | __lasx_xvaddwod_d_w(a, b) | 5581 | unsafe { __lasx_xvaddwod_d_w(a, b) } |
| 5582 | } | 5582 | } |
| 5583 | 5583 | ||
| 5584 | #[inline] | 5584 | #[inline] |
| 5585 | #[target_feature(enable = "lasx")] | 5585 | #[target_feature(enable = "lasx")] |
| 5586 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5586 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5587 | pub unsafe fn lasx_xvaddwod_w_h(a: v16i16, b: v16i16) -> v8i32 { | 5587 | pub fn lasx_xvaddwod_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 5588 | __lasx_xvaddwod_w_h(a, b) | 5588 | unsafe { __lasx_xvaddwod_w_h(a, b) } |
| 5589 | } | 5589 | } |
| 5590 | 5590 | ||
| 5591 | #[inline] | 5591 | #[inline] |
| 5592 | #[target_feature(enable = "lasx")] | 5592 | #[target_feature(enable = "lasx")] |
| 5593 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5593 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5594 | pub unsafe fn lasx_xvaddwod_h_b(a: v32i8, b: v32i8) -> v16i16 { | 5594 | pub fn lasx_xvaddwod_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 5595 | __lasx_xvaddwod_h_b(a, b) | 5595 | unsafe { __lasx_xvaddwod_h_b(a, b) } |
| 5596 | } | 5596 | } |
| 5597 | 5597 | ||
| 5598 | #[inline] | 5598 | #[inline] |
| 5599 | #[target_feature(enable = "lasx")] | 5599 | #[target_feature(enable = "lasx")] |
| 5600 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5600 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5601 | pub unsafe fn lasx_xvaddwod_q_du(a: v4u64, b: v4u64) -> v4i64 { | 5601 | pub fn lasx_xvaddwod_q_du(a: v4u64, b: v4u64) -> v4i64 { |
| 5602 | __lasx_xvaddwod_q_du(a, b) | 5602 | unsafe { __lasx_xvaddwod_q_du(a, b) } |
| 5603 | } | 5603 | } |
| 5604 | 5604 | ||
| 5605 | #[inline] | 5605 | #[inline] |
| 5606 | #[target_feature(enable = "lasx")] | 5606 | #[target_feature(enable = "lasx")] |
| 5607 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5607 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5608 | pub unsafe fn lasx_xvaddwod_d_wu(a: v8u32, b: v8u32) -> v4i64 { | 5608 | pub fn lasx_xvaddwod_d_wu(a: v8u32, b: v8u32) -> v4i64 { |
| 5609 | __lasx_xvaddwod_d_wu(a, b) | 5609 | unsafe { __lasx_xvaddwod_d_wu(a, b) } |
| 5610 | } | 5610 | } |
| 5611 | 5611 | ||
| 5612 | #[inline] | 5612 | #[inline] |
| 5613 | #[target_feature(enable = "lasx")] | 5613 | #[target_feature(enable = "lasx")] |
| 5614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5615 | pub unsafe fn lasx_xvaddwod_w_hu(a: v16u16, b: v16u16) -> v8i32 { | 5615 | pub fn lasx_xvaddwod_w_hu(a: v16u16, b: v16u16) -> v8i32 { |
| 5616 | __lasx_xvaddwod_w_hu(a, b) | 5616 | unsafe { __lasx_xvaddwod_w_hu(a, b) } |
| 5617 | } | 5617 | } |
| 5618 | 5618 | ||
| 5619 | #[inline] | 5619 | #[inline] |
| 5620 | #[target_feature(enable = "lasx")] | 5620 | #[target_feature(enable = "lasx")] |
| 5621 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5621 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5622 | pub unsafe fn lasx_xvaddwod_h_bu(a: v32u8, b: v32u8) -> v16i16 { | 5622 | pub fn lasx_xvaddwod_h_bu(a: v32u8, b: v32u8) -> v16i16 { |
| 5623 | __lasx_xvaddwod_h_bu(a, b) | 5623 | unsafe { __lasx_xvaddwod_h_bu(a, b) } |
| 5624 | } | 5624 | } |
| 5625 | 5625 | ||
| 5626 | #[inline] | 5626 | #[inline] |
| 5627 | #[target_feature(enable = "lasx")] | 5627 | #[target_feature(enable = "lasx")] |
| 5628 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5628 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5629 | pub unsafe fn lasx_xvsubwod_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5629 | pub fn lasx_xvsubwod_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5630 | __lasx_xvsubwod_q_d(a, b) | 5630 | unsafe { __lasx_xvsubwod_q_d(a, b) } |
| 5631 | } | 5631 | } |
| 5632 | 5632 | ||
| 5633 | #[inline] | 5633 | #[inline] |
| 5634 | #[target_feature(enable = "lasx")] | 5634 | #[target_feature(enable = "lasx")] |
| 5635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5636 | pub unsafe fn lasx_xvsubwod_d_w(a: v8i32, b: v8i32) -> v4i64 { | 5636 | pub fn lasx_xvsubwod_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 5637 | __lasx_xvsubwod_d_w(a, b) | 5637 | unsafe { __lasx_xvsubwod_d_w(a, b) } |
| 5638 | } | 5638 | } |
| 5639 | 5639 | ||
| 5640 | #[inline] | 5640 | #[inline] |
| 5641 | #[target_feature(enable = "lasx")] | 5641 | #[target_feature(enable = "lasx")] |
| 5642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5643 | pub unsafe fn lasx_xvsubwod_w_h(a: v16i16, b: v16i16) -> v8i32 { | 5643 | pub fn lasx_xvsubwod_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 5644 | __lasx_xvsubwod_w_h(a, b) | 5644 | unsafe { __lasx_xvsubwod_w_h(a, b) } |
| 5645 | } | 5645 | } |
| 5646 | 5646 | ||
| 5647 | #[inline] | 5647 | #[inline] |
| 5648 | #[target_feature(enable = "lasx")] | 5648 | #[target_feature(enable = "lasx")] |
| 5649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5650 | pub unsafe fn lasx_xvsubwod_h_b(a: v32i8, b: v32i8) -> v16i16 { | 5650 | pub fn lasx_xvsubwod_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 5651 | __lasx_xvsubwod_h_b(a, b) | 5651 | unsafe { __lasx_xvsubwod_h_b(a, b) } |
| 5652 | } | 5652 | } |
| 5653 | 5653 | ||
| 5654 | #[inline] | 5654 | #[inline] |
| 5655 | #[target_feature(enable = "lasx")] | 5655 | #[target_feature(enable = "lasx")] |
| 5656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5657 | pub unsafe fn lasx_xvsubwod_q_du(a: v4u64, b: v4u64) -> v4i64 { | 5657 | pub fn lasx_xvsubwod_q_du(a: v4u64, b: v4u64) -> v4i64 { |
| 5658 | __lasx_xvsubwod_q_du(a, b) | 5658 | unsafe { __lasx_xvsubwod_q_du(a, b) } |
| 5659 | } | 5659 | } |
| 5660 | 5660 | ||
| 5661 | #[inline] | 5661 | #[inline] |
| 5662 | #[target_feature(enable = "lasx")] | 5662 | #[target_feature(enable = "lasx")] |
| 5663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5664 | pub unsafe fn lasx_xvsubwod_d_wu(a: v8u32, b: v8u32) -> v4i64 { | 5664 | pub fn lasx_xvsubwod_d_wu(a: v8u32, b: v8u32) -> v4i64 { |
| 5665 | __lasx_xvsubwod_d_wu(a, b) | 5665 | unsafe { __lasx_xvsubwod_d_wu(a, b) } |
| 5666 | } | 5666 | } |
| 5667 | 5667 | ||
| 5668 | #[inline] | 5668 | #[inline] |
| 5669 | #[target_feature(enable = "lasx")] | 5669 | #[target_feature(enable = "lasx")] |
| 5670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5671 | pub unsafe fn lasx_xvsubwod_w_hu(a: v16u16, b: v16u16) -> v8i32 { | 5671 | pub fn lasx_xvsubwod_w_hu(a: v16u16, b: v16u16) -> v8i32 { |
| 5672 | __lasx_xvsubwod_w_hu(a, b) | 5672 | unsafe { __lasx_xvsubwod_w_hu(a, b) } |
| 5673 | } | 5673 | } |
| 5674 | 5674 | ||
| 5675 | #[inline] | 5675 | #[inline] |
| 5676 | #[target_feature(enable = "lasx")] | 5676 | #[target_feature(enable = "lasx")] |
| 5677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5678 | pub unsafe fn lasx_xvsubwod_h_bu(a: v32u8, b: v32u8) -> v16i16 { | 5678 | pub fn lasx_xvsubwod_h_bu(a: v32u8, b: v32u8) -> v16i16 { |
| 5679 | __lasx_xvsubwod_h_bu(a, b) | 5679 | unsafe { __lasx_xvsubwod_h_bu(a, b) } |
| 5680 | } | 5680 | } |
| 5681 | 5681 | ||
| 5682 | #[inline] | 5682 | #[inline] |
| 5683 | #[target_feature(enable = "lasx")] | 5683 | #[target_feature(enable = "lasx")] |
| 5684 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5684 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5685 | pub unsafe fn lasx_xvmulwod_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5685 | pub fn lasx_xvmulwod_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5686 | __lasx_xvmulwod_q_d(a, b) | 5686 | unsafe { __lasx_xvmulwod_q_d(a, b) } |
| 5687 | } | 5687 | } |
| 5688 | 5688 | ||
| 5689 | #[inline] | 5689 | #[inline] |
| 5690 | #[target_feature(enable = "lasx")] | 5690 | #[target_feature(enable = "lasx")] |
| 5691 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5691 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5692 | pub unsafe fn lasx_xvmulwod_d_w(a: v8i32, b: v8i32) -> v4i64 { | 5692 | pub fn lasx_xvmulwod_d_w(a: v8i32, b: v8i32) -> v4i64 { |
| 5693 | __lasx_xvmulwod_d_w(a, b) | 5693 | unsafe { __lasx_xvmulwod_d_w(a, b) } |
| 5694 | } | 5694 | } |
| 5695 | 5695 | ||
| 5696 | #[inline] | 5696 | #[inline] |
| 5697 | #[target_feature(enable = "lasx")] | 5697 | #[target_feature(enable = "lasx")] |
| 5698 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5698 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5699 | pub unsafe fn lasx_xvmulwod_w_h(a: v16i16, b: v16i16) -> v8i32 { | 5699 | pub fn lasx_xvmulwod_w_h(a: v16i16, b: v16i16) -> v8i32 { |
| 5700 | __lasx_xvmulwod_w_h(a, b) | 5700 | unsafe { __lasx_xvmulwod_w_h(a, b) } |
| 5701 | } | 5701 | } |
| 5702 | 5702 | ||
| 5703 | #[inline] | 5703 | #[inline] |
| 5704 | #[target_feature(enable = "lasx")] | 5704 | #[target_feature(enable = "lasx")] |
| 5705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5706 | pub unsafe fn lasx_xvmulwod_h_b(a: v32i8, b: v32i8) -> v16i16 { | 5706 | pub fn lasx_xvmulwod_h_b(a: v32i8, b: v32i8) -> v16i16 { |
| 5707 | __lasx_xvmulwod_h_b(a, b) | 5707 | unsafe { __lasx_xvmulwod_h_b(a, b) } |
| 5708 | } | 5708 | } |
| 5709 | 5709 | ||
| 5710 | #[inline] | 5710 | #[inline] |
| 5711 | #[target_feature(enable = "lasx")] | 5711 | #[target_feature(enable = "lasx")] |
| 5712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5713 | pub unsafe fn lasx_xvmulwod_q_du(a: v4u64, b: v4u64) -> v4i64 { | 5713 | pub fn lasx_xvmulwod_q_du(a: v4u64, b: v4u64) -> v4i64 { |
| 5714 | __lasx_xvmulwod_q_du(a, b) | 5714 | unsafe { __lasx_xvmulwod_q_du(a, b) } |
| 5715 | } | 5715 | } |
| 5716 | 5716 | ||
| 5717 | #[inline] | 5717 | #[inline] |
| 5718 | #[target_feature(enable = "lasx")] | 5718 | #[target_feature(enable = "lasx")] |
| 5719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5720 | pub unsafe fn lasx_xvmulwod_d_wu(a: v8u32, b: v8u32) -> v4i64 { | 5720 | pub fn lasx_xvmulwod_d_wu(a: v8u32, b: v8u32) -> v4i64 { |
| 5721 | __lasx_xvmulwod_d_wu(a, b) | 5721 | unsafe { __lasx_xvmulwod_d_wu(a, b) } |
| 5722 | } | 5722 | } |
| 5723 | 5723 | ||
| 5724 | #[inline] | 5724 | #[inline] |
| 5725 | #[target_feature(enable = "lasx")] | 5725 | #[target_feature(enable = "lasx")] |
| 5726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5727 | pub unsafe fn lasx_xvmulwod_w_hu(a: v16u16, b: v16u16) -> v8i32 { | 5727 | pub fn lasx_xvmulwod_w_hu(a: v16u16, b: v16u16) -> v8i32 { |
| 5728 | __lasx_xvmulwod_w_hu(a, b) | 5728 | unsafe { __lasx_xvmulwod_w_hu(a, b) } |
| 5729 | } | 5729 | } |
| 5730 | 5730 | ||
| 5731 | #[inline] | 5731 | #[inline] |
| 5732 | #[target_feature(enable = "lasx")] | 5732 | #[target_feature(enable = "lasx")] |
| 5733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5734 | pub unsafe fn lasx_xvmulwod_h_bu(a: v32u8, b: v32u8) -> v16i16 { | 5734 | pub fn lasx_xvmulwod_h_bu(a: v32u8, b: v32u8) -> v16i16 { |
| 5735 | __lasx_xvmulwod_h_bu(a, b) | 5735 | unsafe { __lasx_xvmulwod_h_bu(a, b) } |
| 5736 | } | 5736 | } |
| 5737 | 5737 | ||
| 5738 | #[inline] | 5738 | #[inline] |
| 5739 | #[target_feature(enable = "lasx")] | 5739 | #[target_feature(enable = "lasx")] |
| 5740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5741 | pub unsafe fn lasx_xvaddwev_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { | 5741 | pub fn lasx_xvaddwev_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { |
| 5742 | __lasx_xvaddwev_d_wu_w(a, b) | 5742 | unsafe { __lasx_xvaddwev_d_wu_w(a, b) } |
| 5743 | } | 5743 | } |
| 5744 | 5744 | ||
| 5745 | #[inline] | 5745 | #[inline] |
| 5746 | #[target_feature(enable = "lasx")] | 5746 | #[target_feature(enable = "lasx")] |
| 5747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5748 | pub unsafe fn lasx_xvaddwev_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { | 5748 | pub fn lasx_xvaddwev_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { |
| 5749 | __lasx_xvaddwev_w_hu_h(a, b) | 5749 | unsafe { __lasx_xvaddwev_w_hu_h(a, b) } |
| 5750 | } | 5750 | } |
| 5751 | 5751 | ||
| 5752 | #[inline] | 5752 | #[inline] |
| 5753 | #[target_feature(enable = "lasx")] | 5753 | #[target_feature(enable = "lasx")] |
| 5754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5755 | pub unsafe fn lasx_xvaddwev_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { | 5755 | pub fn lasx_xvaddwev_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { |
| 5756 | __lasx_xvaddwev_h_bu_b(a, b) | 5756 | unsafe { __lasx_xvaddwev_h_bu_b(a, b) } |
| 5757 | } | 5757 | } |
| 5758 | 5758 | ||
| 5759 | #[inline] | 5759 | #[inline] |
| 5760 | #[target_feature(enable = "lasx")] | 5760 | #[target_feature(enable = "lasx")] |
| 5761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5762 | pub unsafe fn lasx_xvmulwev_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { | 5762 | pub fn lasx_xvmulwev_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { |
| 5763 | __lasx_xvmulwev_d_wu_w(a, b) | 5763 | unsafe { __lasx_xvmulwev_d_wu_w(a, b) } |
| 5764 | } | 5764 | } |
| 5765 | 5765 | ||
| 5766 | #[inline] | 5766 | #[inline] |
| 5767 | #[target_feature(enable = "lasx")] | 5767 | #[target_feature(enable = "lasx")] |
| 5768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5769 | pub unsafe fn lasx_xvmulwev_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { | 5769 | pub fn lasx_xvmulwev_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { |
| 5770 | __lasx_xvmulwev_w_hu_h(a, b) | 5770 | unsafe { __lasx_xvmulwev_w_hu_h(a, b) } |
| 5771 | } | 5771 | } |
| 5772 | 5772 | ||
| 5773 | #[inline] | 5773 | #[inline] |
| 5774 | #[target_feature(enable = "lasx")] | 5774 | #[target_feature(enable = "lasx")] |
| 5775 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5775 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5776 | pub unsafe fn lasx_xvmulwev_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { | 5776 | pub fn lasx_xvmulwev_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { |
| 5777 | __lasx_xvmulwev_h_bu_b(a, b) | 5777 | unsafe { __lasx_xvmulwev_h_bu_b(a, b) } |
| 5778 | } | 5778 | } |
| 5779 | 5779 | ||
| 5780 | #[inline] | 5780 | #[inline] |
| 5781 | #[target_feature(enable = "lasx")] | 5781 | #[target_feature(enable = "lasx")] |
| 5782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5783 | pub unsafe fn lasx_xvaddwod_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { | 5783 | pub fn lasx_xvaddwod_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { |
| 5784 | __lasx_xvaddwod_d_wu_w(a, b) | 5784 | unsafe { __lasx_xvaddwod_d_wu_w(a, b) } |
| 5785 | } | 5785 | } |
| 5786 | 5786 | ||
| 5787 | #[inline] | 5787 | #[inline] |
| 5788 | #[target_feature(enable = "lasx")] | 5788 | #[target_feature(enable = "lasx")] |
| 5789 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5789 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5790 | pub unsafe fn lasx_xvaddwod_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { | 5790 | pub fn lasx_xvaddwod_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { |
| 5791 | __lasx_xvaddwod_w_hu_h(a, b) | 5791 | unsafe { __lasx_xvaddwod_w_hu_h(a, b) } |
| 5792 | } | 5792 | } |
| 5793 | 5793 | ||
| 5794 | #[inline] | 5794 | #[inline] |
| 5795 | #[target_feature(enable = "lasx")] | 5795 | #[target_feature(enable = "lasx")] |
| 5796 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5796 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5797 | pub unsafe fn lasx_xvaddwod_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { | 5797 | pub fn lasx_xvaddwod_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { |
| 5798 | __lasx_xvaddwod_h_bu_b(a, b) | 5798 | unsafe { __lasx_xvaddwod_h_bu_b(a, b) } |
| 5799 | } | 5799 | } |
| 5800 | 5800 | ||
| 5801 | #[inline] | 5801 | #[inline] |
| 5802 | #[target_feature(enable = "lasx")] | 5802 | #[target_feature(enable = "lasx")] |
| 5803 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5803 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5804 | pub unsafe fn lasx_xvmulwod_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { | 5804 | pub fn lasx_xvmulwod_d_wu_w(a: v8u32, b: v8i32) -> v4i64 { |
| 5805 | __lasx_xvmulwod_d_wu_w(a, b) | 5805 | unsafe { __lasx_xvmulwod_d_wu_w(a, b) } |
| 5806 | } | 5806 | } |
| 5807 | 5807 | ||
| 5808 | #[inline] | 5808 | #[inline] |
| 5809 | #[target_feature(enable = "lasx")] | 5809 | #[target_feature(enable = "lasx")] |
| 5810 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5810 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5811 | pub unsafe fn lasx_xvmulwod_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { | 5811 | pub fn lasx_xvmulwod_w_hu_h(a: v16u16, b: v16i16) -> v8i32 { |
| 5812 | __lasx_xvmulwod_w_hu_h(a, b) | 5812 | unsafe { __lasx_xvmulwod_w_hu_h(a, b) } |
| 5813 | } | 5813 | } |
| 5814 | 5814 | ||
| 5815 | #[inline] | 5815 | #[inline] |
| 5816 | #[target_feature(enable = "lasx")] | 5816 | #[target_feature(enable = "lasx")] |
| 5817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5818 | pub unsafe fn lasx_xvmulwod_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { | 5818 | pub fn lasx_xvmulwod_h_bu_b(a: v32u8, b: v32i8) -> v16i16 { |
| 5819 | __lasx_xvmulwod_h_bu_b(a, b) | 5819 | unsafe { __lasx_xvmulwod_h_bu_b(a, b) } |
| 5820 | } | 5820 | } |
| 5821 | 5821 | ||
| 5822 | #[inline] | 5822 | #[inline] |
| 5823 | #[target_feature(enable = "lasx")] | 5823 | #[target_feature(enable = "lasx")] |
| 5824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5825 | pub unsafe fn lasx_xvhaddw_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5825 | pub fn lasx_xvhaddw_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5826 | __lasx_xvhaddw_q_d(a, b) | 5826 | unsafe { __lasx_xvhaddw_q_d(a, b) } |
| 5827 | } | 5827 | } |
| 5828 | 5828 | ||
| 5829 | #[inline] | 5829 | #[inline] |
| 5830 | #[target_feature(enable = "lasx")] | 5830 | #[target_feature(enable = "lasx")] |
| 5831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5832 | pub unsafe fn lasx_xvhaddw_qu_du(a: v4u64, b: v4u64) -> v4u64 { | 5832 | pub fn lasx_xvhaddw_qu_du(a: v4u64, b: v4u64) -> v4u64 { |
| 5833 | __lasx_xvhaddw_qu_du(a, b) | 5833 | unsafe { __lasx_xvhaddw_qu_du(a, b) } |
| 5834 | } | 5834 | } |
| 5835 | 5835 | ||
| 5836 | #[inline] | 5836 | #[inline] |
| 5837 | #[target_feature(enable = "lasx")] | 5837 | #[target_feature(enable = "lasx")] |
| 5838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5839 | pub unsafe fn lasx_xvhsubw_q_d(a: v4i64, b: v4i64) -> v4i64 { | 5839 | pub fn lasx_xvhsubw_q_d(a: v4i64, b: v4i64) -> v4i64 { |
| 5840 | __lasx_xvhsubw_q_d(a, b) | 5840 | unsafe { __lasx_xvhsubw_q_d(a, b) } |
| 5841 | } | 5841 | } |
| 5842 | 5842 | ||
| 5843 | #[inline] | 5843 | #[inline] |
| 5844 | #[target_feature(enable = "lasx")] | 5844 | #[target_feature(enable = "lasx")] |
| 5845 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5845 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5846 | pub unsafe fn lasx_xvhsubw_qu_du(a: v4u64, b: v4u64) -> v4u64 { | 5846 | pub fn lasx_xvhsubw_qu_du(a: v4u64, b: v4u64) -> v4u64 { |
| 5847 | __lasx_xvhsubw_qu_du(a, b) | 5847 | unsafe { __lasx_xvhsubw_qu_du(a, b) } |
| 5848 | } | 5848 | } |
| 5849 | 5849 | ||
| 5850 | #[inline] | 5850 | #[inline] |
| 5851 | #[target_feature(enable = "lasx")] | 5851 | #[target_feature(enable = "lasx")] |
| 5852 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5852 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5853 | pub unsafe fn lasx_xvmaddwev_q_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { | 5853 | pub fn lasx_xvmaddwev_q_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { |
| 5854 | __lasx_xvmaddwev_q_d(a, b, c) | 5854 | unsafe { __lasx_xvmaddwev_q_d(a, b, c) } |
| 5855 | } | 5855 | } |
| 5856 | 5856 | ||
| 5857 | #[inline] | 5857 | #[inline] |
| 5858 | #[target_feature(enable = "lasx")] | 5858 | #[target_feature(enable = "lasx")] |
| 5859 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5859 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5860 | pub unsafe fn lasx_xvmaddwev_d_w(a: v4i64, b: v8i32, c: v8i32) -> v4i64 { | 5860 | pub fn lasx_xvmaddwev_d_w(a: v4i64, b: v8i32, c: v8i32) -> v4i64 { |
| 5861 | __lasx_xvmaddwev_d_w(a, b, c) | 5861 | unsafe { __lasx_xvmaddwev_d_w(a, b, c) } |
| 5862 | } | 5862 | } |
| 5863 | 5863 | ||
| 5864 | #[inline] | 5864 | #[inline] |
| 5865 | #[target_feature(enable = "lasx")] | 5865 | #[target_feature(enable = "lasx")] |
| 5866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5867 | pub unsafe fn lasx_xvmaddwev_w_h(a: v8i32, b: v16i16, c: v16i16) -> v8i32 { | 5867 | pub fn lasx_xvmaddwev_w_h(a: v8i32, b: v16i16, c: v16i16) -> v8i32 { |
| 5868 | __lasx_xvmaddwev_w_h(a, b, c) | 5868 | unsafe { __lasx_xvmaddwev_w_h(a, b, c) } |
| 5869 | } | 5869 | } |
| 5870 | 5870 | ||
| 5871 | #[inline] | 5871 | #[inline] |
| 5872 | #[target_feature(enable = "lasx")] | 5872 | #[target_feature(enable = "lasx")] |
| 5873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5874 | pub unsafe fn lasx_xvmaddwev_h_b(a: v16i16, b: v32i8, c: v32i8) -> v16i16 { | 5874 | pub fn lasx_xvmaddwev_h_b(a: v16i16, b: v32i8, c: v32i8) -> v16i16 { |
| 5875 | __lasx_xvmaddwev_h_b(a, b, c) | 5875 | unsafe { __lasx_xvmaddwev_h_b(a, b, c) } |
| 5876 | } | 5876 | } |
| 5877 | 5877 | ||
| 5878 | #[inline] | 5878 | #[inline] |
| 5879 | #[target_feature(enable = "lasx")] | 5879 | #[target_feature(enable = "lasx")] |
| 5880 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5880 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5881 | pub unsafe fn lasx_xvmaddwev_q_du(a: v4u64, b: v4u64, c: v4u64) -> v4u64 { | 5881 | pub fn lasx_xvmaddwev_q_du(a: v4u64, b: v4u64, c: v4u64) -> v4u64 { |
| 5882 | __lasx_xvmaddwev_q_du(a, b, c) | 5882 | unsafe { __lasx_xvmaddwev_q_du(a, b, c) } |
| 5883 | } | 5883 | } |
| 5884 | 5884 | ||
| 5885 | #[inline] | 5885 | #[inline] |
| 5886 | #[target_feature(enable = "lasx")] | 5886 | #[target_feature(enable = "lasx")] |
| 5887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5888 | pub unsafe fn lasx_xvmaddwev_d_wu(a: v4u64, b: v8u32, c: v8u32) -> v4u64 { | 5888 | pub fn lasx_xvmaddwev_d_wu(a: v4u64, b: v8u32, c: v8u32) -> v4u64 { |
| 5889 | __lasx_xvmaddwev_d_wu(a, b, c) | 5889 | unsafe { __lasx_xvmaddwev_d_wu(a, b, c) } |
| 5890 | } | 5890 | } |
| 5891 | 5891 | ||
| 5892 | #[inline] | 5892 | #[inline] |
| 5893 | #[target_feature(enable = "lasx")] | 5893 | #[target_feature(enable = "lasx")] |
| 5894 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5894 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5895 | pub unsafe fn lasx_xvmaddwev_w_hu(a: v8u32, b: v16u16, c: v16u16) -> v8u32 { | 5895 | pub fn lasx_xvmaddwev_w_hu(a: v8u32, b: v16u16, c: v16u16) -> v8u32 { |
| 5896 | __lasx_xvmaddwev_w_hu(a, b, c) | 5896 | unsafe { __lasx_xvmaddwev_w_hu(a, b, c) } |
| 5897 | } | 5897 | } |
| 5898 | 5898 | ||
| 5899 | #[inline] | 5899 | #[inline] |
| 5900 | #[target_feature(enable = "lasx")] | 5900 | #[target_feature(enable = "lasx")] |
| 5901 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5901 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5902 | pub unsafe fn lasx_xvmaddwev_h_bu(a: v16u16, b: v32u8, c: v32u8) -> v16u16 { | 5902 | pub fn lasx_xvmaddwev_h_bu(a: v16u16, b: v32u8, c: v32u8) -> v16u16 { |
| 5903 | __lasx_xvmaddwev_h_bu(a, b, c) | 5903 | unsafe { __lasx_xvmaddwev_h_bu(a, b, c) } |
| 5904 | } | 5904 | } |
| 5905 | 5905 | ||
| 5906 | #[inline] | 5906 | #[inline] |
| 5907 | #[target_feature(enable = "lasx")] | 5907 | #[target_feature(enable = "lasx")] |
| 5908 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5908 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5909 | pub unsafe fn lasx_xvmaddwod_q_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { | 5909 | pub fn lasx_xvmaddwod_q_d(a: v4i64, b: v4i64, c: v4i64) -> v4i64 { |
| 5910 | __lasx_xvmaddwod_q_d(a, b, c) | 5910 | unsafe { __lasx_xvmaddwod_q_d(a, b, c) } |
| 5911 | } | 5911 | } |
| 5912 | 5912 | ||
| 5913 | #[inline] | 5913 | #[inline] |
| 5914 | #[target_feature(enable = "lasx")] | 5914 | #[target_feature(enable = "lasx")] |
| 5915 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5915 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5916 | pub unsafe fn lasx_xvmaddwod_d_w(a: v4i64, b: v8i32, c: v8i32) -> v4i64 { | 5916 | pub fn lasx_xvmaddwod_d_w(a: v4i64, b: v8i32, c: v8i32) -> v4i64 { |
| 5917 | __lasx_xvmaddwod_d_w(a, b, c) | 5917 | unsafe { __lasx_xvmaddwod_d_w(a, b, c) } |
| 5918 | } | 5918 | } |
| 5919 | 5919 | ||
| 5920 | #[inline] | 5920 | #[inline] |
| 5921 | #[target_feature(enable = "lasx")] | 5921 | #[target_feature(enable = "lasx")] |
| 5922 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5922 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5923 | pub unsafe fn lasx_xvmaddwod_w_h(a: v8i32, b: v16i16, c: v16i16) -> v8i32 { | 5923 | pub fn lasx_xvmaddwod_w_h(a: v8i32, b: v16i16, c: v16i16) -> v8i32 { |
| 5924 | __lasx_xvmaddwod_w_h(a, b, c) | 5924 | unsafe { __lasx_xvmaddwod_w_h(a, b, c) } |
| 5925 | } | 5925 | } |
| 5926 | 5926 | ||
| 5927 | #[inline] | 5927 | #[inline] |
| 5928 | #[target_feature(enable = "lasx")] | 5928 | #[target_feature(enable = "lasx")] |
| 5929 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5929 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5930 | pub unsafe fn lasx_xvmaddwod_h_b(a: v16i16, b: v32i8, c: v32i8) -> v16i16 { | 5930 | pub fn lasx_xvmaddwod_h_b(a: v16i16, b: v32i8, c: v32i8) -> v16i16 { |
| 5931 | __lasx_xvmaddwod_h_b(a, b, c) | 5931 | unsafe { __lasx_xvmaddwod_h_b(a, b, c) } |
| 5932 | } | 5932 | } |
| 5933 | 5933 | ||
| 5934 | #[inline] | 5934 | #[inline] |
| 5935 | #[target_feature(enable = "lasx")] | 5935 | #[target_feature(enable = "lasx")] |
| 5936 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5936 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5937 | pub unsafe fn lasx_xvmaddwod_q_du(a: v4u64, b: v4u64, c: v4u64) -> v4u64 { | 5937 | pub fn lasx_xvmaddwod_q_du(a: v4u64, b: v4u64, c: v4u64) -> v4u64 { |
| 5938 | __lasx_xvmaddwod_q_du(a, b, c) | 5938 | unsafe { __lasx_xvmaddwod_q_du(a, b, c) } |
| 5939 | } | 5939 | } |
| 5940 | 5940 | ||
| 5941 | #[inline] | 5941 | #[inline] |
| 5942 | #[target_feature(enable = "lasx")] | 5942 | #[target_feature(enable = "lasx")] |
| 5943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5944 | pub unsafe fn lasx_xvmaddwod_d_wu(a: v4u64, b: v8u32, c: v8u32) -> v4u64 { | 5944 | pub fn lasx_xvmaddwod_d_wu(a: v4u64, b: v8u32, c: v8u32) -> v4u64 { |
| 5945 | __lasx_xvmaddwod_d_wu(a, b, c) | 5945 | unsafe { __lasx_xvmaddwod_d_wu(a, b, c) } |
| 5946 | } | 5946 | } |
| 5947 | 5947 | ||
| 5948 | #[inline] | 5948 | #[inline] |
| 5949 | #[target_feature(enable = "lasx")] | 5949 | #[target_feature(enable = "lasx")] |
| 5950 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5950 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5951 | pub unsafe fn lasx_xvmaddwod_w_hu(a: v8u32, b: v16u16, c: v16u16) -> v8u32 { | 5951 | pub fn lasx_xvmaddwod_w_hu(a: v8u32, b: v16u16, c: v16u16) -> v8u32 { |
| 5952 | __lasx_xvmaddwod_w_hu(a, b, c) | 5952 | unsafe { __lasx_xvmaddwod_w_hu(a, b, c) } |
| 5953 | } | 5953 | } |
| 5954 | 5954 | ||
| 5955 | #[inline] | 5955 | #[inline] |
| 5956 | #[target_feature(enable = "lasx")] | 5956 | #[target_feature(enable = "lasx")] |
| 5957 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5957 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5958 | pub unsafe fn lasx_xvmaddwod_h_bu(a: v16u16, b: v32u8, c: v32u8) -> v16u16 { | 5958 | pub fn lasx_xvmaddwod_h_bu(a: v16u16, b: v32u8, c: v32u8) -> v16u16 { |
| 5959 | __lasx_xvmaddwod_h_bu(a, b, c) | 5959 | unsafe { __lasx_xvmaddwod_h_bu(a, b, c) } |
| 5960 | } | 5960 | } |
| 5961 | 5961 | ||
| 5962 | #[inline] | 5962 | #[inline] |
| 5963 | #[target_feature(enable = "lasx")] | 5963 | #[target_feature(enable = "lasx")] |
| 5964 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5964 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5965 | pub unsafe fn lasx_xvmaddwev_q_du_d(a: v4i64, b: v4u64, c: v4i64) -> v4i64 { | 5965 | pub fn lasx_xvmaddwev_q_du_d(a: v4i64, b: v4u64, c: v4i64) -> v4i64 { |
| 5966 | __lasx_xvmaddwev_q_du_d(a, b, c) | 5966 | unsafe { __lasx_xvmaddwev_q_du_d(a, b, c) } |
| 5967 | } | 5967 | } |
| 5968 | 5968 | ||
| 5969 | #[inline] | 5969 | #[inline] |
| 5970 | #[target_feature(enable = "lasx")] | 5970 | #[target_feature(enable = "lasx")] |
| 5971 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5971 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5972 | pub unsafe fn lasx_xvmaddwev_d_wu_w(a: v4i64, b: v8u32, c: v8i32) -> v4i64 { | 5972 | pub fn lasx_xvmaddwev_d_wu_w(a: v4i64, b: v8u32, c: v8i32) -> v4i64 { |
| 5973 | __lasx_xvmaddwev_d_wu_w(a, b, c) | 5973 | unsafe { __lasx_xvmaddwev_d_wu_w(a, b, c) } |
| 5974 | } | 5974 | } |
| 5975 | 5975 | ||
| 5976 | #[inline] | 5976 | #[inline] |
| 5977 | #[target_feature(enable = "lasx")] | 5977 | #[target_feature(enable = "lasx")] |
| 5978 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5978 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5979 | pub unsafe fn lasx_xvmaddwev_w_hu_h(a: v8i32, b: v16u16, c: v16i16) -> v8i32 { | 5979 | pub fn lasx_xvmaddwev_w_hu_h(a: v8i32, b: v16u16, c: v16i16) -> v8i32 { |
| 5980 | __lasx_xvmaddwev_w_hu_h(a, b, c) | 5980 | unsafe { __lasx_xvmaddwev_w_hu_h(a, b, c) } |
| 5981 | } | 5981 | } |
| 5982 | 5982 | ||
| 5983 | #[inline] | 5983 | #[inline] |
| 5984 | #[target_feature(enable = "lasx")] | 5984 | #[target_feature(enable = "lasx")] |
| 5985 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5985 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5986 | pub unsafe fn lasx_xvmaddwev_h_bu_b(a: v16i16, b: v32u8, c: v32i8) -> v16i16 { | 5986 | pub fn lasx_xvmaddwev_h_bu_b(a: v16i16, b: v32u8, c: v32i8) -> v16i16 { |
| 5987 | __lasx_xvmaddwev_h_bu_b(a, b, c) | 5987 | unsafe { __lasx_xvmaddwev_h_bu_b(a, b, c) } |
| 5988 | } | 5988 | } |
| 5989 | 5989 | ||
| 5990 | #[inline] | 5990 | #[inline] |
| 5991 | #[target_feature(enable = "lasx")] | 5991 | #[target_feature(enable = "lasx")] |
| 5992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5993 | pub unsafe fn lasx_xvmaddwod_q_du_d(a: v4i64, b: v4u64, c: v4i64) -> v4i64 { | 5993 | pub fn lasx_xvmaddwod_q_du_d(a: v4i64, b: v4u64, c: v4i64) -> v4i64 { |
| 5994 | __lasx_xvmaddwod_q_du_d(a, b, c) | 5994 | unsafe { __lasx_xvmaddwod_q_du_d(a, b, c) } |
| 5995 | } | 5995 | } |
| 5996 | 5996 | ||
| 5997 | #[inline] | 5997 | #[inline] |
| 5998 | #[target_feature(enable = "lasx")] | 5998 | #[target_feature(enable = "lasx")] |
| 5999 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5999 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6000 | pub unsafe fn lasx_xvmaddwod_d_wu_w(a: v4i64, b: v8u32, c: v8i32) -> v4i64 { | 6000 | pub fn lasx_xvmaddwod_d_wu_w(a: v4i64, b: v8u32, c: v8i32) -> v4i64 { |
| 6001 | __lasx_xvmaddwod_d_wu_w(a, b, c) | 6001 | unsafe { __lasx_xvmaddwod_d_wu_w(a, b, c) } |
| 6002 | } | 6002 | } |
| 6003 | 6003 | ||
| 6004 | #[inline] | 6004 | #[inline] |
| 6005 | #[target_feature(enable = "lasx")] | 6005 | #[target_feature(enable = "lasx")] |
| 6006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6007 | pub unsafe fn lasx_xvmaddwod_w_hu_h(a: v8i32, b: v16u16, c: v16i16) -> v8i32 { | 6007 | pub fn lasx_xvmaddwod_w_hu_h(a: v8i32, b: v16u16, c: v16i16) -> v8i32 { |
| 6008 | __lasx_xvmaddwod_w_hu_h(a, b, c) | 6008 | unsafe { __lasx_xvmaddwod_w_hu_h(a, b, c) } |
| 6009 | } | 6009 | } |
| 6010 | 6010 | ||
| 6011 | #[inline] | 6011 | #[inline] |
| 6012 | #[target_feature(enable = "lasx")] | 6012 | #[target_feature(enable = "lasx")] |
| 6013 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6013 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6014 | pub unsafe fn lasx_xvmaddwod_h_bu_b(a: v16i16, b: v32u8, c: v32i8) -> v16i16 { | 6014 | pub fn lasx_xvmaddwod_h_bu_b(a: v16i16, b: v32u8, c: v32i8) -> v16i16 { |
| 6015 | __lasx_xvmaddwod_h_bu_b(a, b, c) | 6015 | unsafe { __lasx_xvmaddwod_h_bu_b(a, b, c) } |
| 6016 | } | 6016 | } |
| 6017 | 6017 | ||
| 6018 | #[inline] | 6018 | #[inline] |
| 6019 | #[target_feature(enable = "lasx")] | 6019 | #[target_feature(enable = "lasx")] |
| 6020 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6020 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6021 | pub unsafe fn lasx_xvrotr_b(a: v32i8, b: v32i8) -> v32i8 { | 6021 | pub fn lasx_xvrotr_b(a: v32i8, b: v32i8) -> v32i8 { |
| 6022 | __lasx_xvrotr_b(a, b) | 6022 | unsafe { __lasx_xvrotr_b(a, b) } |
| 6023 | } | 6023 | } |
| 6024 | 6024 | ||
| 6025 | #[inline] | 6025 | #[inline] |
| 6026 | #[target_feature(enable = "lasx")] | 6026 | #[target_feature(enable = "lasx")] |
| 6027 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6027 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6028 | pub unsafe fn lasx_xvrotr_h(a: v16i16, b: v16i16) -> v16i16 { | 6028 | pub fn lasx_xvrotr_h(a: v16i16, b: v16i16) -> v16i16 { |
| 6029 | __lasx_xvrotr_h(a, b) | 6029 | unsafe { __lasx_xvrotr_h(a, b) } |
| 6030 | } | 6030 | } |
| 6031 | 6031 | ||
| 6032 | #[inline] | 6032 | #[inline] |
| 6033 | #[target_feature(enable = "lasx")] | 6033 | #[target_feature(enable = "lasx")] |
| 6034 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6034 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6035 | pub unsafe fn lasx_xvrotr_w(a: v8i32, b: v8i32) -> v8i32 { | 6035 | pub fn lasx_xvrotr_w(a: v8i32, b: v8i32) -> v8i32 { |
| 6036 | __lasx_xvrotr_w(a, b) | 6036 | unsafe { __lasx_xvrotr_w(a, b) } |
| 6037 | } | 6037 | } |
| 6038 | 6038 | ||
| 6039 | #[inline] | 6039 | #[inline] |
| 6040 | #[target_feature(enable = "lasx")] | 6040 | #[target_feature(enable = "lasx")] |
| 6041 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6041 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6042 | pub unsafe fn lasx_xvrotr_d(a: v4i64, b: v4i64) -> v4i64 { | 6042 | pub fn lasx_xvrotr_d(a: v4i64, b: v4i64) -> v4i64 { |
| 6043 | __lasx_xvrotr_d(a, b) | 6043 | unsafe { __lasx_xvrotr_d(a, b) } |
| 6044 | } | 6044 | } |
| 6045 | 6045 | ||
| 6046 | #[inline] | 6046 | #[inline] |
| 6047 | #[target_feature(enable = "lasx")] | 6047 | #[target_feature(enable = "lasx")] |
| 6048 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6048 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6049 | pub unsafe fn lasx_xvadd_q(a: v4i64, b: v4i64) -> v4i64 { | 6049 | pub fn lasx_xvadd_q(a: v4i64, b: v4i64) -> v4i64 { |
| 6050 | __lasx_xvadd_q(a, b) | 6050 | unsafe { __lasx_xvadd_q(a, b) } |
| 6051 | } | 6051 | } |
| 6052 | 6052 | ||
| 6053 | #[inline] | 6053 | #[inline] |
| 6054 | #[target_feature(enable = "lasx")] | 6054 | #[target_feature(enable = "lasx")] |
| 6055 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6055 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6056 | pub unsafe fn lasx_xvsub_q(a: v4i64, b: v4i64) -> v4i64 { | 6056 | pub fn lasx_xvsub_q(a: v4i64, b: v4i64) -> v4i64 { |
| 6057 | __lasx_xvsub_q(a, b) | 6057 | unsafe { __lasx_xvsub_q(a, b) } |
| 6058 | } | 6058 | } |
| 6059 | 6059 | ||
| 6060 | #[inline] | 6060 | #[inline] |
| 6061 | #[target_feature(enable = "lasx")] | 6061 | #[target_feature(enable = "lasx")] |
| 6062 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6062 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6063 | pub unsafe fn lasx_xvaddwev_q_du_d(a: v4u64, b: v4i64) -> v4i64 { | 6063 | pub fn lasx_xvaddwev_q_du_d(a: v4u64, b: v4i64) -> v4i64 { |
| 6064 | __lasx_xvaddwev_q_du_d(a, b) | 6064 | unsafe { __lasx_xvaddwev_q_du_d(a, b) } |
| 6065 | } | 6065 | } |
| 6066 | 6066 | ||
| 6067 | #[inline] | 6067 | #[inline] |
| 6068 | #[target_feature(enable = "lasx")] | 6068 | #[target_feature(enable = "lasx")] |
| 6069 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6069 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6070 | pub unsafe fn lasx_xvaddwod_q_du_d(a: v4u64, b: v4i64) -> v4i64 { | 6070 | pub fn lasx_xvaddwod_q_du_d(a: v4u64, b: v4i64) -> v4i64 { |
| 6071 | __lasx_xvaddwod_q_du_d(a, b) | 6071 | unsafe { __lasx_xvaddwod_q_du_d(a, b) } |
| 6072 | } | 6072 | } |
| 6073 | 6073 | ||
| 6074 | #[inline] | 6074 | #[inline] |
| 6075 | #[target_feature(enable = "lasx")] | 6075 | #[target_feature(enable = "lasx")] |
| 6076 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6076 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6077 | pub unsafe fn lasx_xvmulwev_q_du_d(a: v4u64, b: v4i64) -> v4i64 { | 6077 | pub fn lasx_xvmulwev_q_du_d(a: v4u64, b: v4i64) -> v4i64 { |
| 6078 | __lasx_xvmulwev_q_du_d(a, b) | 6078 | unsafe { __lasx_xvmulwev_q_du_d(a, b) } |
| 6079 | } | 6079 | } |
| 6080 | 6080 | ||
| 6081 | #[inline] | 6081 | #[inline] |
| 6082 | #[target_feature(enable = "lasx")] | 6082 | #[target_feature(enable = "lasx")] |
| 6083 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6083 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6084 | pub unsafe fn lasx_xvmulwod_q_du_d(a: v4u64, b: v4i64) -> v4i64 { | 6084 | pub fn lasx_xvmulwod_q_du_d(a: v4u64, b: v4i64) -> v4i64 { |
| 6085 | __lasx_xvmulwod_q_du_d(a, b) | 6085 | unsafe { __lasx_xvmulwod_q_du_d(a, b) } |
| 6086 | } | 6086 | } |
| 6087 | 6087 | ||
| 6088 | #[inline] | 6088 | #[inline] |
| 6089 | #[target_feature(enable = "lasx")] | 6089 | #[target_feature(enable = "lasx")] |
| 6090 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6090 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6091 | pub unsafe fn lasx_xvmskgez_b(a: v32i8) -> v32i8 { | 6091 | pub fn lasx_xvmskgez_b(a: v32i8) -> v32i8 { |
| 6092 | __lasx_xvmskgez_b(a) | 6092 | unsafe { __lasx_xvmskgez_b(a) } |
| 6093 | } | 6093 | } |
| 6094 | 6094 | ||
| 6095 | #[inline] | 6095 | #[inline] |
| 6096 | #[target_feature(enable = "lasx")] | 6096 | #[target_feature(enable = "lasx")] |
| 6097 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6097 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6098 | pub unsafe fn lasx_xvmsknz_b(a: v32i8) -> v32i8 { | 6098 | pub fn lasx_xvmsknz_b(a: v32i8) -> v32i8 { |
| 6099 | __lasx_xvmsknz_b(a) | 6099 | unsafe { __lasx_xvmsknz_b(a) } |
| 6100 | } | 6100 | } |
| 6101 | 6101 | ||
| 6102 | #[inline] | 6102 | #[inline] |
| 6103 | #[target_feature(enable = "lasx")] | 6103 | #[target_feature(enable = "lasx")] |
| 6104 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6104 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6105 | pub unsafe fn lasx_xvexth_h_b(a: v32i8) -> v16i16 { | 6105 | pub fn lasx_xvexth_h_b(a: v32i8) -> v16i16 { |
| 6106 | __lasx_xvexth_h_b(a) | 6106 | unsafe { __lasx_xvexth_h_b(a) } |
| 6107 | } | 6107 | } |
| 6108 | 6108 | ||
| 6109 | #[inline] | 6109 | #[inline] |
| 6110 | #[target_feature(enable = "lasx")] | 6110 | #[target_feature(enable = "lasx")] |
| 6111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6112 | pub unsafe fn lasx_xvexth_w_h(a: v16i16) -> v8i32 { | 6112 | pub fn lasx_xvexth_w_h(a: v16i16) -> v8i32 { |
| 6113 | __lasx_xvexth_w_h(a) | 6113 | unsafe { __lasx_xvexth_w_h(a) } |
| 6114 | } | 6114 | } |
| 6115 | 6115 | ||
| 6116 | #[inline] | 6116 | #[inline] |
| 6117 | #[target_feature(enable = "lasx")] | 6117 | #[target_feature(enable = "lasx")] |
| 6118 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6118 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6119 | pub unsafe fn lasx_xvexth_d_w(a: v8i32) -> v4i64 { | 6119 | pub fn lasx_xvexth_d_w(a: v8i32) -> v4i64 { |
| 6120 | __lasx_xvexth_d_w(a) | 6120 | unsafe { __lasx_xvexth_d_w(a) } |
| 6121 | } | 6121 | } |
| 6122 | 6122 | ||
| 6123 | #[inline] | 6123 | #[inline] |
| 6124 | #[target_feature(enable = "lasx")] | 6124 | #[target_feature(enable = "lasx")] |
| 6125 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6125 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6126 | pub unsafe fn lasx_xvexth_q_d(a: v4i64) -> v4i64 { | 6126 | pub fn lasx_xvexth_q_d(a: v4i64) -> v4i64 { |
| 6127 | __lasx_xvexth_q_d(a) | 6127 | unsafe { __lasx_xvexth_q_d(a) } |
| 6128 | } | 6128 | } |
| 6129 | 6129 | ||
| 6130 | #[inline] | 6130 | #[inline] |
| 6131 | #[target_feature(enable = "lasx")] | 6131 | #[target_feature(enable = "lasx")] |
| 6132 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6132 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6133 | pub unsafe fn lasx_xvexth_hu_bu(a: v32u8) -> v16u16 { | 6133 | pub fn lasx_xvexth_hu_bu(a: v32u8) -> v16u16 { |
| 6134 | __lasx_xvexth_hu_bu(a) | 6134 | unsafe { __lasx_xvexth_hu_bu(a) } |
| 6135 | } | 6135 | } |
| 6136 | 6136 | ||
| 6137 | #[inline] | 6137 | #[inline] |
| 6138 | #[target_feature(enable = "lasx")] | 6138 | #[target_feature(enable = "lasx")] |
| 6139 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6139 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6140 | pub unsafe fn lasx_xvexth_wu_hu(a: v16u16) -> v8u32 { | 6140 | pub fn lasx_xvexth_wu_hu(a: v16u16) -> v8u32 { |
| 6141 | __lasx_xvexth_wu_hu(a) | 6141 | unsafe { __lasx_xvexth_wu_hu(a) } |
| 6142 | } | 6142 | } |
| 6143 | 6143 | ||
| 6144 | #[inline] | 6144 | #[inline] |
| 6145 | #[target_feature(enable = "lasx")] | 6145 | #[target_feature(enable = "lasx")] |
| 6146 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6146 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6147 | pub unsafe fn lasx_xvexth_du_wu(a: v8u32) -> v4u64 { | 6147 | pub fn lasx_xvexth_du_wu(a: v8u32) -> v4u64 { |
| 6148 | __lasx_xvexth_du_wu(a) | 6148 | unsafe { __lasx_xvexth_du_wu(a) } |
| 6149 | } | 6149 | } |
| 6150 | 6150 | ||
| 6151 | #[inline] | 6151 | #[inline] |
| 6152 | #[target_feature(enable = "lasx")] | 6152 | #[target_feature(enable = "lasx")] |
| 6153 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6153 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6154 | pub unsafe fn lasx_xvexth_qu_du(a: v4u64) -> v4u64 { | 6154 | pub fn lasx_xvexth_qu_du(a: v4u64) -> v4u64 { |
| 6155 | __lasx_xvexth_qu_du(a) | 6155 | unsafe { __lasx_xvexth_qu_du(a) } |
| 6156 | } | 6156 | } |
| 6157 | 6157 | ||
| 6158 | #[inline] | 6158 | #[inline] |
| 6159 | #[target_feature(enable = "lasx")] | 6159 | #[target_feature(enable = "lasx")] |
| 6160 | #[rustc_legacy_const_generics(1)] | 6160 | #[rustc_legacy_const_generics(1)] |
| 6161 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6161 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6162 | pub unsafe fn lasx_xvrotri_b<const IMM3: u32>(a: v32i8) -> v32i8 { | 6162 | pub fn lasx_xvrotri_b<const IMM3: u32>(a: v32i8) -> v32i8 { |
| 6163 | static_assert_uimm_bits!(IMM3, 3); | 6163 | static_assert_uimm_bits!(IMM3, 3); |
| 6164 | __lasx_xvrotri_b(a, IMM3) | 6164 | unsafe { __lasx_xvrotri_b(a, IMM3) } |
| 6165 | } | 6165 | } |
| 6166 | 6166 | ||
| 6167 | #[inline] | 6167 | #[inline] |
| 6168 | #[target_feature(enable = "lasx")] | 6168 | #[target_feature(enable = "lasx")] |
| 6169 | #[rustc_legacy_const_generics(1)] | 6169 | #[rustc_legacy_const_generics(1)] |
| 6170 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6170 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6171 | pub unsafe fn lasx_xvrotri_h<const IMM4: u32>(a: v16i16) -> v16i16 { | 6171 | pub fn lasx_xvrotri_h<const IMM4: u32>(a: v16i16) -> v16i16 { |
| 6172 | static_assert_uimm_bits!(IMM4, 4); | 6172 | static_assert_uimm_bits!(IMM4, 4); |
| 6173 | __lasx_xvrotri_h(a, IMM4) | 6173 | unsafe { __lasx_xvrotri_h(a, IMM4) } |
| 6174 | } | 6174 | } |
| 6175 | 6175 | ||
| 6176 | #[inline] | 6176 | #[inline] |
| 6177 | #[target_feature(enable = "lasx")] | 6177 | #[target_feature(enable = "lasx")] |
| 6178 | #[rustc_legacy_const_generics(1)] | 6178 | #[rustc_legacy_const_generics(1)] |
| 6179 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6179 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6180 | pub unsafe fn lasx_xvrotri_w<const IMM5: u32>(a: v8i32) -> v8i32 { | 6180 | pub fn lasx_xvrotri_w<const IMM5: u32>(a: v8i32) -> v8i32 { |
| 6181 | static_assert_uimm_bits!(IMM5, 5); | 6181 | static_assert_uimm_bits!(IMM5, 5); |
| 6182 | __lasx_xvrotri_w(a, IMM5) | 6182 | unsafe { __lasx_xvrotri_w(a, IMM5) } |
| 6183 | } | 6183 | } |
| 6184 | 6184 | ||
| 6185 | #[inline] | 6185 | #[inline] |
| 6186 | #[target_feature(enable = "lasx")] | 6186 | #[target_feature(enable = "lasx")] |
| 6187 | #[rustc_legacy_const_generics(1)] | 6187 | #[rustc_legacy_const_generics(1)] |
| 6188 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6188 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6189 | pub unsafe fn lasx_xvrotri_d<const IMM6: u32>(a: v4i64) -> v4i64 { | 6189 | pub fn lasx_xvrotri_d<const IMM6: u32>(a: v4i64) -> v4i64 { |
| 6190 | static_assert_uimm_bits!(IMM6, 6); | 6190 | static_assert_uimm_bits!(IMM6, 6); |
| 6191 | __lasx_xvrotri_d(a, IMM6) | 6191 | unsafe { __lasx_xvrotri_d(a, IMM6) } |
| 6192 | } | 6192 | } |
| 6193 | 6193 | ||
| 6194 | #[inline] | 6194 | #[inline] |
| 6195 | #[target_feature(enable = "lasx")] | 6195 | #[target_feature(enable = "lasx")] |
| 6196 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6196 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6197 | pub unsafe fn lasx_xvextl_q_d(a: v4i64) -> v4i64 { | 6197 | pub fn lasx_xvextl_q_d(a: v4i64) -> v4i64 { |
| 6198 | __lasx_xvextl_q_d(a) | 6198 | unsafe { __lasx_xvextl_q_d(a) } |
| 6199 | } | 6199 | } |
| 6200 | 6200 | ||
| 6201 | #[inline] | 6201 | #[inline] |
| 6202 | #[target_feature(enable = "lasx")] | 6202 | #[target_feature(enable = "lasx")] |
| 6203 | #[rustc_legacy_const_generics(2)] | 6203 | #[rustc_legacy_const_generics(2)] |
| 6204 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6204 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6205 | pub unsafe fn lasx_xvsrlni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6205 | pub fn lasx_xvsrlni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6206 | static_assert_uimm_bits!(IMM4, 4); | 6206 | static_assert_uimm_bits!(IMM4, 4); |
| 6207 | __lasx_xvsrlni_b_h(a, b, IMM4) | 6207 | unsafe { __lasx_xvsrlni_b_h(a, b, IMM4) } |
| 6208 | } | 6208 | } |
| 6209 | 6209 | ||
| 6210 | #[inline] | 6210 | #[inline] |
| 6211 | #[target_feature(enable = "lasx")] | 6211 | #[target_feature(enable = "lasx")] |
| 6212 | #[rustc_legacy_const_generics(2)] | 6212 | #[rustc_legacy_const_generics(2)] |
| 6213 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6213 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6214 | pub unsafe fn lasx_xvsrlni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6214 | pub fn lasx_xvsrlni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6215 | static_assert_uimm_bits!(IMM5, 5); | 6215 | static_assert_uimm_bits!(IMM5, 5); |
| 6216 | __lasx_xvsrlni_h_w(a, b, IMM5) | 6216 | unsafe { __lasx_xvsrlni_h_w(a, b, IMM5) } |
| 6217 | } | 6217 | } |
| 6218 | 6218 | ||
| 6219 | #[inline] | 6219 | #[inline] |
| 6220 | #[target_feature(enable = "lasx")] | 6220 | #[target_feature(enable = "lasx")] |
| 6221 | #[rustc_legacy_const_generics(2)] | 6221 | #[rustc_legacy_const_generics(2)] |
| 6222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6223 | pub unsafe fn lasx_xvsrlni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6223 | pub fn lasx_xvsrlni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6224 | static_assert_uimm_bits!(IMM6, 6); | 6224 | static_assert_uimm_bits!(IMM6, 6); |
| 6225 | __lasx_xvsrlni_w_d(a, b, IMM6) | 6225 | unsafe { __lasx_xvsrlni_w_d(a, b, IMM6) } |
| 6226 | } | 6226 | } |
| 6227 | 6227 | ||
| 6228 | #[inline] | 6228 | #[inline] |
| 6229 | #[target_feature(enable = "lasx")] | 6229 | #[target_feature(enable = "lasx")] |
| 6230 | #[rustc_legacy_const_generics(2)] | 6230 | #[rustc_legacy_const_generics(2)] |
| 6231 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6231 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6232 | pub unsafe fn lasx_xvsrlni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6232 | pub fn lasx_xvsrlni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6233 | static_assert_uimm_bits!(IMM7, 7); | 6233 | static_assert_uimm_bits!(IMM7, 7); |
| 6234 | __lasx_xvsrlni_d_q(a, b, IMM7) | 6234 | unsafe { __lasx_xvsrlni_d_q(a, b, IMM7) } |
| 6235 | } | 6235 | } |
| 6236 | 6236 | ||
| 6237 | #[inline] | 6237 | #[inline] |
| 6238 | #[target_feature(enable = "lasx")] | 6238 | #[target_feature(enable = "lasx")] |
| 6239 | #[rustc_legacy_const_generics(2)] | 6239 | #[rustc_legacy_const_generics(2)] |
| 6240 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6240 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6241 | pub unsafe fn lasx_xvsrlrni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6241 | pub fn lasx_xvsrlrni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6242 | static_assert_uimm_bits!(IMM4, 4); | 6242 | static_assert_uimm_bits!(IMM4, 4); |
| 6243 | __lasx_xvsrlrni_b_h(a, b, IMM4) | 6243 | unsafe { __lasx_xvsrlrni_b_h(a, b, IMM4) } |
| 6244 | } | 6244 | } |
| 6245 | 6245 | ||
| 6246 | #[inline] | 6246 | #[inline] |
| 6247 | #[target_feature(enable = "lasx")] | 6247 | #[target_feature(enable = "lasx")] |
| 6248 | #[rustc_legacy_const_generics(2)] | 6248 | #[rustc_legacy_const_generics(2)] |
| 6249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6250 | pub unsafe fn lasx_xvsrlrni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6250 | pub fn lasx_xvsrlrni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6251 | static_assert_uimm_bits!(IMM5, 5); | 6251 | static_assert_uimm_bits!(IMM5, 5); |
| 6252 | __lasx_xvsrlrni_h_w(a, b, IMM5) | 6252 | unsafe { __lasx_xvsrlrni_h_w(a, b, IMM5) } |
| 6253 | } | 6253 | } |
| 6254 | 6254 | ||
| 6255 | #[inline] | 6255 | #[inline] |
| 6256 | #[target_feature(enable = "lasx")] | 6256 | #[target_feature(enable = "lasx")] |
| 6257 | #[rustc_legacy_const_generics(2)] | 6257 | #[rustc_legacy_const_generics(2)] |
| 6258 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6258 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6259 | pub unsafe fn lasx_xvsrlrni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6259 | pub fn lasx_xvsrlrni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6260 | static_assert_uimm_bits!(IMM6, 6); | 6260 | static_assert_uimm_bits!(IMM6, 6); |
| 6261 | __lasx_xvsrlrni_w_d(a, b, IMM6) | 6261 | unsafe { __lasx_xvsrlrni_w_d(a, b, IMM6) } |
| 6262 | } | 6262 | } |
| 6263 | 6263 | ||
| 6264 | #[inline] | 6264 | #[inline] |
| 6265 | #[target_feature(enable = "lasx")] | 6265 | #[target_feature(enable = "lasx")] |
| 6266 | #[rustc_legacy_const_generics(2)] | 6266 | #[rustc_legacy_const_generics(2)] |
| 6267 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6267 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6268 | pub unsafe fn lasx_xvsrlrni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6268 | pub fn lasx_xvsrlrni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6269 | static_assert_uimm_bits!(IMM7, 7); | 6269 | static_assert_uimm_bits!(IMM7, 7); |
| 6270 | __lasx_xvsrlrni_d_q(a, b, IMM7) | 6270 | unsafe { __lasx_xvsrlrni_d_q(a, b, IMM7) } |
| 6271 | } | 6271 | } |
| 6272 | 6272 | ||
| 6273 | #[inline] | 6273 | #[inline] |
| 6274 | #[target_feature(enable = "lasx")] | 6274 | #[target_feature(enable = "lasx")] |
| 6275 | #[rustc_legacy_const_generics(2)] | 6275 | #[rustc_legacy_const_generics(2)] |
| 6276 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6276 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6277 | pub unsafe fn lasx_xvssrlni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6277 | pub fn lasx_xvssrlni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6278 | static_assert_uimm_bits!(IMM4, 4); | 6278 | static_assert_uimm_bits!(IMM4, 4); |
| 6279 | __lasx_xvssrlni_b_h(a, b, IMM4) | 6279 | unsafe { __lasx_xvssrlni_b_h(a, b, IMM4) } |
| 6280 | } | 6280 | } |
| 6281 | 6281 | ||
| 6282 | #[inline] | 6282 | #[inline] |
| 6283 | #[target_feature(enable = "lasx")] | 6283 | #[target_feature(enable = "lasx")] |
| 6284 | #[rustc_legacy_const_generics(2)] | 6284 | #[rustc_legacy_const_generics(2)] |
| 6285 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6285 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6286 | pub unsafe fn lasx_xvssrlni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6286 | pub fn lasx_xvssrlni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6287 | static_assert_uimm_bits!(IMM5, 5); | 6287 | static_assert_uimm_bits!(IMM5, 5); |
| 6288 | __lasx_xvssrlni_h_w(a, b, IMM5) | 6288 | unsafe { __lasx_xvssrlni_h_w(a, b, IMM5) } |
| 6289 | } | 6289 | } |
| 6290 | 6290 | ||
| 6291 | #[inline] | 6291 | #[inline] |
| 6292 | #[target_feature(enable = "lasx")] | 6292 | #[target_feature(enable = "lasx")] |
| 6293 | #[rustc_legacy_const_generics(2)] | 6293 | #[rustc_legacy_const_generics(2)] |
| 6294 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6294 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6295 | pub unsafe fn lasx_xvssrlni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6295 | pub fn lasx_xvssrlni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6296 | static_assert_uimm_bits!(IMM6, 6); | 6296 | static_assert_uimm_bits!(IMM6, 6); |
| 6297 | __lasx_xvssrlni_w_d(a, b, IMM6) | 6297 | unsafe { __lasx_xvssrlni_w_d(a, b, IMM6) } |
| 6298 | } | 6298 | } |
| 6299 | 6299 | ||
| 6300 | #[inline] | 6300 | #[inline] |
| 6301 | #[target_feature(enable = "lasx")] | 6301 | #[target_feature(enable = "lasx")] |
| 6302 | #[rustc_legacy_const_generics(2)] | 6302 | #[rustc_legacy_const_generics(2)] |
| 6303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6304 | pub unsafe fn lasx_xvssrlni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6304 | pub fn lasx_xvssrlni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6305 | static_assert_uimm_bits!(IMM7, 7); | 6305 | static_assert_uimm_bits!(IMM7, 7); |
| 6306 | __lasx_xvssrlni_d_q(a, b, IMM7) | 6306 | unsafe { __lasx_xvssrlni_d_q(a, b, IMM7) } |
| 6307 | } | 6307 | } |
| 6308 | 6308 | ||
| 6309 | #[inline] | 6309 | #[inline] |
| 6310 | #[target_feature(enable = "lasx")] | 6310 | #[target_feature(enable = "lasx")] |
| 6311 | #[rustc_legacy_const_generics(2)] | 6311 | #[rustc_legacy_const_generics(2)] |
| 6312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6313 | pub unsafe fn lasx_xvssrlni_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { | 6313 | pub fn lasx_xvssrlni_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { |
| 6314 | static_assert_uimm_bits!(IMM4, 4); | 6314 | static_assert_uimm_bits!(IMM4, 4); |
| 6315 | __lasx_xvssrlni_bu_h(a, b, IMM4) | 6315 | unsafe { __lasx_xvssrlni_bu_h(a, b, IMM4) } |
| 6316 | } | 6316 | } |
| 6317 | 6317 | ||
| 6318 | #[inline] | 6318 | #[inline] |
| 6319 | #[target_feature(enable = "lasx")] | 6319 | #[target_feature(enable = "lasx")] |
| 6320 | #[rustc_legacy_const_generics(2)] | 6320 | #[rustc_legacy_const_generics(2)] |
| 6321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6322 | pub unsafe fn lasx_xvssrlni_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { | 6322 | pub fn lasx_xvssrlni_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { |
| 6323 | static_assert_uimm_bits!(IMM5, 5); | 6323 | static_assert_uimm_bits!(IMM5, 5); |
| 6324 | __lasx_xvssrlni_hu_w(a, b, IMM5) | 6324 | unsafe { __lasx_xvssrlni_hu_w(a, b, IMM5) } |
| 6325 | } | 6325 | } |
| 6326 | 6326 | ||
| 6327 | #[inline] | 6327 | #[inline] |
| 6328 | #[target_feature(enable = "lasx")] | 6328 | #[target_feature(enable = "lasx")] |
| 6329 | #[rustc_legacy_const_generics(2)] | 6329 | #[rustc_legacy_const_generics(2)] |
| 6330 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6330 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6331 | pub unsafe fn lasx_xvssrlni_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { | 6331 | pub fn lasx_xvssrlni_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { |
| 6332 | static_assert_uimm_bits!(IMM6, 6); | 6332 | static_assert_uimm_bits!(IMM6, 6); |
| 6333 | __lasx_xvssrlni_wu_d(a, b, IMM6) | 6333 | unsafe { __lasx_xvssrlni_wu_d(a, b, IMM6) } |
| 6334 | } | 6334 | } |
| 6335 | 6335 | ||
| 6336 | #[inline] | 6336 | #[inline] |
| 6337 | #[target_feature(enable = "lasx")] | 6337 | #[target_feature(enable = "lasx")] |
| 6338 | #[rustc_legacy_const_generics(2)] | 6338 | #[rustc_legacy_const_generics(2)] |
| 6339 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6339 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6340 | pub unsafe fn lasx_xvssrlni_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { | 6340 | pub fn lasx_xvssrlni_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { |
| 6341 | static_assert_uimm_bits!(IMM7, 7); | 6341 | static_assert_uimm_bits!(IMM7, 7); |
| 6342 | __lasx_xvssrlni_du_q(a, b, IMM7) | 6342 | unsafe { __lasx_xvssrlni_du_q(a, b, IMM7) } |
| 6343 | } | 6343 | } |
| 6344 | 6344 | ||
| 6345 | #[inline] | 6345 | #[inline] |
| 6346 | #[target_feature(enable = "lasx")] | 6346 | #[target_feature(enable = "lasx")] |
| 6347 | #[rustc_legacy_const_generics(2)] | 6347 | #[rustc_legacy_const_generics(2)] |
| 6348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6349 | pub unsafe fn lasx_xvssrlrni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6349 | pub fn lasx_xvssrlrni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6350 | static_assert_uimm_bits!(IMM4, 4); | 6350 | static_assert_uimm_bits!(IMM4, 4); |
| 6351 | __lasx_xvssrlrni_b_h(a, b, IMM4) | 6351 | unsafe { __lasx_xvssrlrni_b_h(a, b, IMM4) } |
| 6352 | } | 6352 | } |
| 6353 | 6353 | ||
| 6354 | #[inline] | 6354 | #[inline] |
| 6355 | #[target_feature(enable = "lasx")] | 6355 | #[target_feature(enable = "lasx")] |
| 6356 | #[rustc_legacy_const_generics(2)] | 6356 | #[rustc_legacy_const_generics(2)] |
| 6357 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6357 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6358 | pub unsafe fn lasx_xvssrlrni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6358 | pub fn lasx_xvssrlrni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6359 | static_assert_uimm_bits!(IMM5, 5); | 6359 | static_assert_uimm_bits!(IMM5, 5); |
| 6360 | __lasx_xvssrlrni_h_w(a, b, IMM5) | 6360 | unsafe { __lasx_xvssrlrni_h_w(a, b, IMM5) } |
| 6361 | } | 6361 | } |
| 6362 | 6362 | ||
| 6363 | #[inline] | 6363 | #[inline] |
| 6364 | #[target_feature(enable = "lasx")] | 6364 | #[target_feature(enable = "lasx")] |
| 6365 | #[rustc_legacy_const_generics(2)] | 6365 | #[rustc_legacy_const_generics(2)] |
| 6366 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6366 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6367 | pub unsafe fn lasx_xvssrlrni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6367 | pub fn lasx_xvssrlrni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6368 | static_assert_uimm_bits!(IMM6, 6); | 6368 | static_assert_uimm_bits!(IMM6, 6); |
| 6369 | __lasx_xvssrlrni_w_d(a, b, IMM6) | 6369 | unsafe { __lasx_xvssrlrni_w_d(a, b, IMM6) } |
| 6370 | } | 6370 | } |
| 6371 | 6371 | ||
| 6372 | #[inline] | 6372 | #[inline] |
| 6373 | #[target_feature(enable = "lasx")] | 6373 | #[target_feature(enable = "lasx")] |
| 6374 | #[rustc_legacy_const_generics(2)] | 6374 | #[rustc_legacy_const_generics(2)] |
| 6375 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6375 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6376 | pub unsafe fn lasx_xvssrlrni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6376 | pub fn lasx_xvssrlrni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6377 | static_assert_uimm_bits!(IMM7, 7); | 6377 | static_assert_uimm_bits!(IMM7, 7); |
| 6378 | __lasx_xvssrlrni_d_q(a, b, IMM7) | 6378 | unsafe { __lasx_xvssrlrni_d_q(a, b, IMM7) } |
| 6379 | } | 6379 | } |
| 6380 | 6380 | ||
| 6381 | #[inline] | 6381 | #[inline] |
| 6382 | #[target_feature(enable = "lasx")] | 6382 | #[target_feature(enable = "lasx")] |
| 6383 | #[rustc_legacy_const_generics(2)] | 6383 | #[rustc_legacy_const_generics(2)] |
| 6384 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6384 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6385 | pub unsafe fn lasx_xvssrlrni_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { | 6385 | pub fn lasx_xvssrlrni_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { |
| 6386 | static_assert_uimm_bits!(IMM4, 4); | 6386 | static_assert_uimm_bits!(IMM4, 4); |
| 6387 | __lasx_xvssrlrni_bu_h(a, b, IMM4) | 6387 | unsafe { __lasx_xvssrlrni_bu_h(a, b, IMM4) } |
| 6388 | } | 6388 | } |
| 6389 | 6389 | ||
| 6390 | #[inline] | 6390 | #[inline] |
| 6391 | #[target_feature(enable = "lasx")] | 6391 | #[target_feature(enable = "lasx")] |
| 6392 | #[rustc_legacy_const_generics(2)] | 6392 | #[rustc_legacy_const_generics(2)] |
| 6393 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6393 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6394 | pub unsafe fn lasx_xvssrlrni_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { | 6394 | pub fn lasx_xvssrlrni_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { |
| 6395 | static_assert_uimm_bits!(IMM5, 5); | 6395 | static_assert_uimm_bits!(IMM5, 5); |
| 6396 | __lasx_xvssrlrni_hu_w(a, b, IMM5) | 6396 | unsafe { __lasx_xvssrlrni_hu_w(a, b, IMM5) } |
| 6397 | } | 6397 | } |
| 6398 | 6398 | ||
| 6399 | #[inline] | 6399 | #[inline] |
| 6400 | #[target_feature(enable = "lasx")] | 6400 | #[target_feature(enable = "lasx")] |
| 6401 | #[rustc_legacy_const_generics(2)] | 6401 | #[rustc_legacy_const_generics(2)] |
| 6402 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6402 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6403 | pub unsafe fn lasx_xvssrlrni_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { | 6403 | pub fn lasx_xvssrlrni_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { |
| 6404 | static_assert_uimm_bits!(IMM6, 6); | 6404 | static_assert_uimm_bits!(IMM6, 6); |
| 6405 | __lasx_xvssrlrni_wu_d(a, b, IMM6) | 6405 | unsafe { __lasx_xvssrlrni_wu_d(a, b, IMM6) } |
| 6406 | } | 6406 | } |
| 6407 | 6407 | ||
| 6408 | #[inline] | 6408 | #[inline] |
| 6409 | #[target_feature(enable = "lasx")] | 6409 | #[target_feature(enable = "lasx")] |
| 6410 | #[rustc_legacy_const_generics(2)] | 6410 | #[rustc_legacy_const_generics(2)] |
| 6411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6412 | pub unsafe fn lasx_xvssrlrni_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { | 6412 | pub fn lasx_xvssrlrni_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { |
| 6413 | static_assert_uimm_bits!(IMM7, 7); | 6413 | static_assert_uimm_bits!(IMM7, 7); |
| 6414 | __lasx_xvssrlrni_du_q(a, b, IMM7) | 6414 | unsafe { __lasx_xvssrlrni_du_q(a, b, IMM7) } |
| 6415 | } | 6415 | } |
| 6416 | 6416 | ||
| 6417 | #[inline] | 6417 | #[inline] |
| 6418 | #[target_feature(enable = "lasx")] | 6418 | #[target_feature(enable = "lasx")] |
| 6419 | #[rustc_legacy_const_generics(2)] | 6419 | #[rustc_legacy_const_generics(2)] |
| 6420 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6420 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6421 | pub unsafe fn lasx_xvsrani_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6421 | pub fn lasx_xvsrani_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6422 | static_assert_uimm_bits!(IMM4, 4); | 6422 | static_assert_uimm_bits!(IMM4, 4); |
| 6423 | __lasx_xvsrani_b_h(a, b, IMM4) | 6423 | unsafe { __lasx_xvsrani_b_h(a, b, IMM4) } |
| 6424 | } | 6424 | } |
| 6425 | 6425 | ||
| 6426 | #[inline] | 6426 | #[inline] |
| 6427 | #[target_feature(enable = "lasx")] | 6427 | #[target_feature(enable = "lasx")] |
| 6428 | #[rustc_legacy_const_generics(2)] | 6428 | #[rustc_legacy_const_generics(2)] |
| 6429 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6429 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6430 | pub unsafe fn lasx_xvsrani_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6430 | pub fn lasx_xvsrani_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6431 | static_assert_uimm_bits!(IMM5, 5); | 6431 | static_assert_uimm_bits!(IMM5, 5); |
| 6432 | __lasx_xvsrani_h_w(a, b, IMM5) | 6432 | unsafe { __lasx_xvsrani_h_w(a, b, IMM5) } |
| 6433 | } | 6433 | } |
| 6434 | 6434 | ||
| 6435 | #[inline] | 6435 | #[inline] |
| 6436 | #[target_feature(enable = "lasx")] | 6436 | #[target_feature(enable = "lasx")] |
| 6437 | #[rustc_legacy_const_generics(2)] | 6437 | #[rustc_legacy_const_generics(2)] |
| 6438 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6438 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6439 | pub unsafe fn lasx_xvsrani_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6439 | pub fn lasx_xvsrani_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6440 | static_assert_uimm_bits!(IMM6, 6); | 6440 | static_assert_uimm_bits!(IMM6, 6); |
| 6441 | __lasx_xvsrani_w_d(a, b, IMM6) | 6441 | unsafe { __lasx_xvsrani_w_d(a, b, IMM6) } |
| 6442 | } | 6442 | } |
| 6443 | 6443 | ||
| 6444 | #[inline] | 6444 | #[inline] |
| 6445 | #[target_feature(enable = "lasx")] | 6445 | #[target_feature(enable = "lasx")] |
| 6446 | #[rustc_legacy_const_generics(2)] | 6446 | #[rustc_legacy_const_generics(2)] |
| 6447 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6447 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6448 | pub unsafe fn lasx_xvsrani_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6448 | pub fn lasx_xvsrani_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6449 | static_assert_uimm_bits!(IMM7, 7); | 6449 | static_assert_uimm_bits!(IMM7, 7); |
| 6450 | __lasx_xvsrani_d_q(a, b, IMM7) | 6450 | unsafe { __lasx_xvsrani_d_q(a, b, IMM7) } |
| 6451 | } | 6451 | } |
| 6452 | 6452 | ||
| 6453 | #[inline] | 6453 | #[inline] |
| 6454 | #[target_feature(enable = "lasx")] | 6454 | #[target_feature(enable = "lasx")] |
| 6455 | #[rustc_legacy_const_generics(2)] | 6455 | #[rustc_legacy_const_generics(2)] |
| 6456 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6456 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6457 | pub unsafe fn lasx_xvsrarni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6457 | pub fn lasx_xvsrarni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6458 | static_assert_uimm_bits!(IMM4, 4); | 6458 | static_assert_uimm_bits!(IMM4, 4); |
| 6459 | __lasx_xvsrarni_b_h(a, b, IMM4) | 6459 | unsafe { __lasx_xvsrarni_b_h(a, b, IMM4) } |
| 6460 | } | 6460 | } |
| 6461 | 6461 | ||
| 6462 | #[inline] | 6462 | #[inline] |
| 6463 | #[target_feature(enable = "lasx")] | 6463 | #[target_feature(enable = "lasx")] |
| 6464 | #[rustc_legacy_const_generics(2)] | 6464 | #[rustc_legacy_const_generics(2)] |
| 6465 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6465 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6466 | pub unsafe fn lasx_xvsrarni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6466 | pub fn lasx_xvsrarni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6467 | static_assert_uimm_bits!(IMM5, 5); | 6467 | static_assert_uimm_bits!(IMM5, 5); |
| 6468 | __lasx_xvsrarni_h_w(a, b, IMM5) | 6468 | unsafe { __lasx_xvsrarni_h_w(a, b, IMM5) } |
| 6469 | } | 6469 | } |
| 6470 | 6470 | ||
| 6471 | #[inline] | 6471 | #[inline] |
| 6472 | #[target_feature(enable = "lasx")] | 6472 | #[target_feature(enable = "lasx")] |
| 6473 | #[rustc_legacy_const_generics(2)] | 6473 | #[rustc_legacy_const_generics(2)] |
| 6474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6475 | pub unsafe fn lasx_xvsrarni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6475 | pub fn lasx_xvsrarni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6476 | static_assert_uimm_bits!(IMM6, 6); | 6476 | static_assert_uimm_bits!(IMM6, 6); |
| 6477 | __lasx_xvsrarni_w_d(a, b, IMM6) | 6477 | unsafe { __lasx_xvsrarni_w_d(a, b, IMM6) } |
| 6478 | } | 6478 | } |
| 6479 | 6479 | ||
| 6480 | #[inline] | 6480 | #[inline] |
| 6481 | #[target_feature(enable = "lasx")] | 6481 | #[target_feature(enable = "lasx")] |
| 6482 | #[rustc_legacy_const_generics(2)] | 6482 | #[rustc_legacy_const_generics(2)] |
| 6483 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6483 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6484 | pub unsafe fn lasx_xvsrarni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6484 | pub fn lasx_xvsrarni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6485 | static_assert_uimm_bits!(IMM7, 7); | 6485 | static_assert_uimm_bits!(IMM7, 7); |
| 6486 | __lasx_xvsrarni_d_q(a, b, IMM7) | 6486 | unsafe { __lasx_xvsrarni_d_q(a, b, IMM7) } |
| 6487 | } | 6487 | } |
| 6488 | 6488 | ||
| 6489 | #[inline] | 6489 | #[inline] |
| 6490 | #[target_feature(enable = "lasx")] | 6490 | #[target_feature(enable = "lasx")] |
| 6491 | #[rustc_legacy_const_generics(2)] | 6491 | #[rustc_legacy_const_generics(2)] |
| 6492 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6492 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6493 | pub unsafe fn lasx_xvssrani_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6493 | pub fn lasx_xvssrani_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6494 | static_assert_uimm_bits!(IMM4, 4); | 6494 | static_assert_uimm_bits!(IMM4, 4); |
| 6495 | __lasx_xvssrani_b_h(a, b, IMM4) | 6495 | unsafe { __lasx_xvssrani_b_h(a, b, IMM4) } |
| 6496 | } | 6496 | } |
| 6497 | 6497 | ||
| 6498 | #[inline] | 6498 | #[inline] |
| 6499 | #[target_feature(enable = "lasx")] | 6499 | #[target_feature(enable = "lasx")] |
| 6500 | #[rustc_legacy_const_generics(2)] | 6500 | #[rustc_legacy_const_generics(2)] |
| 6501 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6501 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6502 | pub unsafe fn lasx_xvssrani_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6502 | pub fn lasx_xvssrani_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6503 | static_assert_uimm_bits!(IMM5, 5); | 6503 | static_assert_uimm_bits!(IMM5, 5); |
| 6504 | __lasx_xvssrani_h_w(a, b, IMM5) | 6504 | unsafe { __lasx_xvssrani_h_w(a, b, IMM5) } |
| 6505 | } | 6505 | } |
| 6506 | 6506 | ||
| 6507 | #[inline] | 6507 | #[inline] |
| 6508 | #[target_feature(enable = "lasx")] | 6508 | #[target_feature(enable = "lasx")] |
| 6509 | #[rustc_legacy_const_generics(2)] | 6509 | #[rustc_legacy_const_generics(2)] |
| 6510 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6510 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6511 | pub unsafe fn lasx_xvssrani_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6511 | pub fn lasx_xvssrani_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6512 | static_assert_uimm_bits!(IMM6, 6); | 6512 | static_assert_uimm_bits!(IMM6, 6); |
| 6513 | __lasx_xvssrani_w_d(a, b, IMM6) | 6513 | unsafe { __lasx_xvssrani_w_d(a, b, IMM6) } |
| 6514 | } | 6514 | } |
| 6515 | 6515 | ||
| 6516 | #[inline] | 6516 | #[inline] |
| 6517 | #[target_feature(enable = "lasx")] | 6517 | #[target_feature(enable = "lasx")] |
| 6518 | #[rustc_legacy_const_generics(2)] | 6518 | #[rustc_legacy_const_generics(2)] |
| 6519 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6519 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6520 | pub unsafe fn lasx_xvssrani_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6520 | pub fn lasx_xvssrani_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6521 | static_assert_uimm_bits!(IMM7, 7); | 6521 | static_assert_uimm_bits!(IMM7, 7); |
| 6522 | __lasx_xvssrani_d_q(a, b, IMM7) | 6522 | unsafe { __lasx_xvssrani_d_q(a, b, IMM7) } |
| 6523 | } | 6523 | } |
| 6524 | 6524 | ||
| 6525 | #[inline] | 6525 | #[inline] |
| 6526 | #[target_feature(enable = "lasx")] | 6526 | #[target_feature(enable = "lasx")] |
| 6527 | #[rustc_legacy_const_generics(2)] | 6527 | #[rustc_legacy_const_generics(2)] |
| 6528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6529 | pub unsafe fn lasx_xvssrani_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { | 6529 | pub fn lasx_xvssrani_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { |
| 6530 | static_assert_uimm_bits!(IMM4, 4); | 6530 | static_assert_uimm_bits!(IMM4, 4); |
| 6531 | __lasx_xvssrani_bu_h(a, b, IMM4) | 6531 | unsafe { __lasx_xvssrani_bu_h(a, b, IMM4) } |
| 6532 | } | 6532 | } |
| 6533 | 6533 | ||
| 6534 | #[inline] | 6534 | #[inline] |
| 6535 | #[target_feature(enable = "lasx")] | 6535 | #[target_feature(enable = "lasx")] |
| 6536 | #[rustc_legacy_const_generics(2)] | 6536 | #[rustc_legacy_const_generics(2)] |
| 6537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6538 | pub unsafe fn lasx_xvssrani_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { | 6538 | pub fn lasx_xvssrani_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { |
| 6539 | static_assert_uimm_bits!(IMM5, 5); | 6539 | static_assert_uimm_bits!(IMM5, 5); |
| 6540 | __lasx_xvssrani_hu_w(a, b, IMM5) | 6540 | unsafe { __lasx_xvssrani_hu_w(a, b, IMM5) } |
| 6541 | } | 6541 | } |
| 6542 | 6542 | ||
| 6543 | #[inline] | 6543 | #[inline] |
| 6544 | #[target_feature(enable = "lasx")] | 6544 | #[target_feature(enable = "lasx")] |
| 6545 | #[rustc_legacy_const_generics(2)] | 6545 | #[rustc_legacy_const_generics(2)] |
| 6546 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6546 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6547 | pub unsafe fn lasx_xvssrani_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { | 6547 | pub fn lasx_xvssrani_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { |
| 6548 | static_assert_uimm_bits!(IMM6, 6); | 6548 | static_assert_uimm_bits!(IMM6, 6); |
| 6549 | __lasx_xvssrani_wu_d(a, b, IMM6) | 6549 | unsafe { __lasx_xvssrani_wu_d(a, b, IMM6) } |
| 6550 | } | 6550 | } |
| 6551 | 6551 | ||
| 6552 | #[inline] | 6552 | #[inline] |
| 6553 | #[target_feature(enable = "lasx")] | 6553 | #[target_feature(enable = "lasx")] |
| 6554 | #[rustc_legacy_const_generics(2)] | 6554 | #[rustc_legacy_const_generics(2)] |
| 6555 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6555 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6556 | pub unsafe fn lasx_xvssrani_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { | 6556 | pub fn lasx_xvssrani_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { |
| 6557 | static_assert_uimm_bits!(IMM7, 7); | 6557 | static_assert_uimm_bits!(IMM7, 7); |
| 6558 | __lasx_xvssrani_du_q(a, b, IMM7) | 6558 | unsafe { __lasx_xvssrani_du_q(a, b, IMM7) } |
| 6559 | } | 6559 | } |
| 6560 | 6560 | ||
| 6561 | #[inline] | 6561 | #[inline] |
| 6562 | #[target_feature(enable = "lasx")] | 6562 | #[target_feature(enable = "lasx")] |
| 6563 | #[rustc_legacy_const_generics(2)] | 6563 | #[rustc_legacy_const_generics(2)] |
| 6564 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6564 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6565 | pub unsafe fn lasx_xvssrarni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { | 6565 | pub fn lasx_xvssrarni_b_h<const IMM4: u32>(a: v32i8, b: v32i8) -> v32i8 { |
| 6566 | static_assert_uimm_bits!(IMM4, 4); | 6566 | static_assert_uimm_bits!(IMM4, 4); |
| 6567 | __lasx_xvssrarni_b_h(a, b, IMM4) | 6567 | unsafe { __lasx_xvssrarni_b_h(a, b, IMM4) } |
| 6568 | } | 6568 | } |
| 6569 | 6569 | ||
| 6570 | #[inline] | 6570 | #[inline] |
| 6571 | #[target_feature(enable = "lasx")] | 6571 | #[target_feature(enable = "lasx")] |
| 6572 | #[rustc_legacy_const_generics(2)] | 6572 | #[rustc_legacy_const_generics(2)] |
| 6573 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6573 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6574 | pub unsafe fn lasx_xvssrarni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { | 6574 | pub fn lasx_xvssrarni_h_w<const IMM5: u32>(a: v16i16, b: v16i16) -> v16i16 { |
| 6575 | static_assert_uimm_bits!(IMM5, 5); | 6575 | static_assert_uimm_bits!(IMM5, 5); |
| 6576 | __lasx_xvssrarni_h_w(a, b, IMM5) | 6576 | unsafe { __lasx_xvssrarni_h_w(a, b, IMM5) } |
| 6577 | } | 6577 | } |
| 6578 | 6578 | ||
| 6579 | #[inline] | 6579 | #[inline] |
| 6580 | #[target_feature(enable = "lasx")] | 6580 | #[target_feature(enable = "lasx")] |
| 6581 | #[rustc_legacy_const_generics(2)] | 6581 | #[rustc_legacy_const_generics(2)] |
| 6582 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6582 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6583 | pub unsafe fn lasx_xvssrarni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { | 6583 | pub fn lasx_xvssrarni_w_d<const IMM6: u32>(a: v8i32, b: v8i32) -> v8i32 { |
| 6584 | static_assert_uimm_bits!(IMM6, 6); | 6584 | static_assert_uimm_bits!(IMM6, 6); |
| 6585 | __lasx_xvssrarni_w_d(a, b, IMM6) | 6585 | unsafe { __lasx_xvssrarni_w_d(a, b, IMM6) } |
| 6586 | } | 6586 | } |
| 6587 | 6587 | ||
| 6588 | #[inline] | 6588 | #[inline] |
| 6589 | #[target_feature(enable = "lasx")] | 6589 | #[target_feature(enable = "lasx")] |
| 6590 | #[rustc_legacy_const_generics(2)] | 6590 | #[rustc_legacy_const_generics(2)] |
| 6591 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6591 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6592 | pub unsafe fn lasx_xvssrarni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { | 6592 | pub fn lasx_xvssrarni_d_q<const IMM7: u32>(a: v4i64, b: v4i64) -> v4i64 { |
| 6593 | static_assert_uimm_bits!(IMM7, 7); | 6593 | static_assert_uimm_bits!(IMM7, 7); |
| 6594 | __lasx_xvssrarni_d_q(a, b, IMM7) | 6594 | unsafe { __lasx_xvssrarni_d_q(a, b, IMM7) } |
| 6595 | } | 6595 | } |
| 6596 | 6596 | ||
| 6597 | #[inline] | 6597 | #[inline] |
| 6598 | #[target_feature(enable = "lasx")] | 6598 | #[target_feature(enable = "lasx")] |
| 6599 | #[rustc_legacy_const_generics(2)] | 6599 | #[rustc_legacy_const_generics(2)] |
| 6600 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6600 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6601 | pub unsafe fn lasx_xvssrarni_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { | 6601 | pub fn lasx_xvssrarni_bu_h<const IMM4: u32>(a: v32u8, b: v32i8) -> v32u8 { |
| 6602 | static_assert_uimm_bits!(IMM4, 4); | 6602 | static_assert_uimm_bits!(IMM4, 4); |
| 6603 | __lasx_xvssrarni_bu_h(a, b, IMM4) | 6603 | unsafe { __lasx_xvssrarni_bu_h(a, b, IMM4) } |
| 6604 | } | 6604 | } |
| 6605 | 6605 | ||
| 6606 | #[inline] | 6606 | #[inline] |
| 6607 | #[target_feature(enable = "lasx")] | 6607 | #[target_feature(enable = "lasx")] |
| 6608 | #[rustc_legacy_const_generics(2)] | 6608 | #[rustc_legacy_const_generics(2)] |
| 6609 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6609 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6610 | pub unsafe fn lasx_xvssrarni_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { | 6610 | pub fn lasx_xvssrarni_hu_w<const IMM5: u32>(a: v16u16, b: v16i16) -> v16u16 { |
| 6611 | static_assert_uimm_bits!(IMM5, 5); | 6611 | static_assert_uimm_bits!(IMM5, 5); |
| 6612 | __lasx_xvssrarni_hu_w(a, b, IMM5) | 6612 | unsafe { __lasx_xvssrarni_hu_w(a, b, IMM5) } |
| 6613 | } | 6613 | } |
| 6614 | 6614 | ||
| 6615 | #[inline] | 6615 | #[inline] |
| 6616 | #[target_feature(enable = "lasx")] | 6616 | #[target_feature(enable = "lasx")] |
| 6617 | #[rustc_legacy_const_generics(2)] | 6617 | #[rustc_legacy_const_generics(2)] |
| 6618 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6618 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6619 | pub unsafe fn lasx_xvssrarni_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { | 6619 | pub fn lasx_xvssrarni_wu_d<const IMM6: u32>(a: v8u32, b: v8i32) -> v8u32 { |
| 6620 | static_assert_uimm_bits!(IMM6, 6); | 6620 | static_assert_uimm_bits!(IMM6, 6); |
| 6621 | __lasx_xvssrarni_wu_d(a, b, IMM6) | 6621 | unsafe { __lasx_xvssrarni_wu_d(a, b, IMM6) } |
| 6622 | } | 6622 | } |
| 6623 | 6623 | ||
| 6624 | #[inline] | 6624 | #[inline] |
| 6625 | #[target_feature(enable = "lasx")] | 6625 | #[target_feature(enable = "lasx")] |
| 6626 | #[rustc_legacy_const_generics(2)] | 6626 | #[rustc_legacy_const_generics(2)] |
| 6627 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6627 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6628 | pub unsafe fn lasx_xvssrarni_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { | 6628 | pub fn lasx_xvssrarni_du_q<const IMM7: u32>(a: v4u64, b: v4i64) -> v4u64 { |
| 6629 | static_assert_uimm_bits!(IMM7, 7); | 6629 | static_assert_uimm_bits!(IMM7, 7); |
| 6630 | __lasx_xvssrarni_du_q(a, b, IMM7) | 6630 | unsafe { __lasx_xvssrarni_du_q(a, b, IMM7) } |
| 6631 | } | 6631 | } |
| 6632 | 6632 | ||
| 6633 | #[inline] | 6633 | #[inline] |
| 6634 | #[target_feature(enable = "lasx")] | 6634 | #[target_feature(enable = "lasx")] |
| 6635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6636 | pub unsafe fn lasx_xbnz_b(a: v32u8) -> i32 { | 6636 | pub fn lasx_xbnz_b(a: v32u8) -> i32 { |
| 6637 | __lasx_xbnz_b(a) | 6637 | unsafe { __lasx_xbnz_b(a) } |
| 6638 | } | 6638 | } |
| 6639 | 6639 | ||
| 6640 | #[inline] | 6640 | #[inline] |
| 6641 | #[target_feature(enable = "lasx")] | 6641 | #[target_feature(enable = "lasx")] |
| 6642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6643 | pub unsafe fn lasx_xbnz_d(a: v4u64) -> i32 { | 6643 | pub fn lasx_xbnz_d(a: v4u64) -> i32 { |
| 6644 | __lasx_xbnz_d(a) | 6644 | unsafe { __lasx_xbnz_d(a) } |
| 6645 | } | 6645 | } |
| 6646 | 6646 | ||
| 6647 | #[inline] | 6647 | #[inline] |
| 6648 | #[target_feature(enable = "lasx")] | 6648 | #[target_feature(enable = "lasx")] |
| 6649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6650 | pub unsafe fn lasx_xbnz_h(a: v16u16) -> i32 { | 6650 | pub fn lasx_xbnz_h(a: v16u16) -> i32 { |
| 6651 | __lasx_xbnz_h(a) | 6651 | unsafe { __lasx_xbnz_h(a) } |
| 6652 | } | 6652 | } |
| 6653 | 6653 | ||
| 6654 | #[inline] | 6654 | #[inline] |
| 6655 | #[target_feature(enable = "lasx")] | 6655 | #[target_feature(enable = "lasx")] |
| 6656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6657 | pub unsafe fn lasx_xbnz_v(a: v32u8) -> i32 { | 6657 | pub fn lasx_xbnz_v(a: v32u8) -> i32 { |
| 6658 | __lasx_xbnz_v(a) | 6658 | unsafe { __lasx_xbnz_v(a) } |
| 6659 | } | 6659 | } |
| 6660 | 6660 | ||
| 6661 | #[inline] | 6661 | #[inline] |
| 6662 | #[target_feature(enable = "lasx")] | 6662 | #[target_feature(enable = "lasx")] |
| 6663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6664 | pub unsafe fn lasx_xbnz_w(a: v8u32) -> i32 { | 6664 | pub fn lasx_xbnz_w(a: v8u32) -> i32 { |
| 6665 | __lasx_xbnz_w(a) | 6665 | unsafe { __lasx_xbnz_w(a) } |
| 6666 | } | 6666 | } |
| 6667 | 6667 | ||
| 6668 | #[inline] | 6668 | #[inline] |
| 6669 | #[target_feature(enable = "lasx")] | 6669 | #[target_feature(enable = "lasx")] |
| 6670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6671 | pub unsafe fn lasx_xbz_b(a: v32u8) -> i32 { | 6671 | pub fn lasx_xbz_b(a: v32u8) -> i32 { |
| 6672 | __lasx_xbz_b(a) | 6672 | unsafe { __lasx_xbz_b(a) } |
| 6673 | } | 6673 | } |
| 6674 | 6674 | ||
| 6675 | #[inline] | 6675 | #[inline] |
| 6676 | #[target_feature(enable = "lasx")] | 6676 | #[target_feature(enable = "lasx")] |
| 6677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6678 | pub unsafe fn lasx_xbz_d(a: v4u64) -> i32 { | 6678 | pub fn lasx_xbz_d(a: v4u64) -> i32 { |
| 6679 | __lasx_xbz_d(a) | 6679 | unsafe { __lasx_xbz_d(a) } |
| 6680 | } | 6680 | } |
| 6681 | 6681 | ||
| 6682 | #[inline] | 6682 | #[inline] |
| 6683 | #[target_feature(enable = "lasx")] | 6683 | #[target_feature(enable = "lasx")] |
| 6684 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6684 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6685 | pub unsafe fn lasx_xbz_h(a: v16u16) -> i32 { | 6685 | pub fn lasx_xbz_h(a: v16u16) -> i32 { |
| 6686 | __lasx_xbz_h(a) | 6686 | unsafe { __lasx_xbz_h(a) } |
| 6687 | } | 6687 | } |
| 6688 | 6688 | ||
| 6689 | #[inline] | 6689 | #[inline] |
| 6690 | #[target_feature(enable = "lasx")] | 6690 | #[target_feature(enable = "lasx")] |
| 6691 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6691 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6692 | pub unsafe fn lasx_xbz_v(a: v32u8) -> i32 { | 6692 | pub fn lasx_xbz_v(a: v32u8) -> i32 { |
| 6693 | __lasx_xbz_v(a) | 6693 | unsafe { __lasx_xbz_v(a) } |
| 6694 | } | 6694 | } |
| 6695 | 6695 | ||
| 6696 | #[inline] | 6696 | #[inline] |
| 6697 | #[target_feature(enable = "lasx")] | 6697 | #[target_feature(enable = "lasx")] |
| 6698 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6698 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6699 | pub unsafe fn lasx_xbz_w(a: v8u32) -> i32 { | 6699 | pub fn lasx_xbz_w(a: v8u32) -> i32 { |
| 6700 | __lasx_xbz_w(a) | 6700 | unsafe { __lasx_xbz_w(a) } |
| 6701 | } | 6701 | } |
| 6702 | 6702 | ||
| 6703 | #[inline] | 6703 | #[inline] |
| 6704 | #[target_feature(enable = "lasx")] | 6704 | #[target_feature(enable = "lasx")] |
| 6705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6706 | pub unsafe fn lasx_xvfcmp_caf_d(a: v4f64, b: v4f64) -> v4i64 { | 6706 | pub fn lasx_xvfcmp_caf_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6707 | __lasx_xvfcmp_caf_d(a, b) | 6707 | unsafe { __lasx_xvfcmp_caf_d(a, b) } |
| 6708 | } | 6708 | } |
| 6709 | 6709 | ||
| 6710 | #[inline] | 6710 | #[inline] |
| 6711 | #[target_feature(enable = "lasx")] | 6711 | #[target_feature(enable = "lasx")] |
| 6712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6713 | pub unsafe fn lasx_xvfcmp_caf_s(a: v8f32, b: v8f32) -> v8i32 { | 6713 | pub fn lasx_xvfcmp_caf_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6714 | __lasx_xvfcmp_caf_s(a, b) | 6714 | unsafe { __lasx_xvfcmp_caf_s(a, b) } |
| 6715 | } | 6715 | } |
| 6716 | 6716 | ||
| 6717 | #[inline] | 6717 | #[inline] |
| 6718 | #[target_feature(enable = "lasx")] | 6718 | #[target_feature(enable = "lasx")] |
| 6719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6720 | pub unsafe fn lasx_xvfcmp_ceq_d(a: v4f64, b: v4f64) -> v4i64 { | 6720 | pub fn lasx_xvfcmp_ceq_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6721 | __lasx_xvfcmp_ceq_d(a, b) | 6721 | unsafe { __lasx_xvfcmp_ceq_d(a, b) } |
| 6722 | } | 6722 | } |
| 6723 | 6723 | ||
| 6724 | #[inline] | 6724 | #[inline] |
| 6725 | #[target_feature(enable = "lasx")] | 6725 | #[target_feature(enable = "lasx")] |
| 6726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6727 | pub unsafe fn lasx_xvfcmp_ceq_s(a: v8f32, b: v8f32) -> v8i32 { | 6727 | pub fn lasx_xvfcmp_ceq_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6728 | __lasx_xvfcmp_ceq_s(a, b) | 6728 | unsafe { __lasx_xvfcmp_ceq_s(a, b) } |
| 6729 | } | 6729 | } |
| 6730 | 6730 | ||
| 6731 | #[inline] | 6731 | #[inline] |
| 6732 | #[target_feature(enable = "lasx")] | 6732 | #[target_feature(enable = "lasx")] |
| 6733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6734 | pub unsafe fn lasx_xvfcmp_cle_d(a: v4f64, b: v4f64) -> v4i64 { | 6734 | pub fn lasx_xvfcmp_cle_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6735 | __lasx_xvfcmp_cle_d(a, b) | 6735 | unsafe { __lasx_xvfcmp_cle_d(a, b) } |
| 6736 | } | 6736 | } |
| 6737 | 6737 | ||
| 6738 | #[inline] | 6738 | #[inline] |
| 6739 | #[target_feature(enable = "lasx")] | 6739 | #[target_feature(enable = "lasx")] |
| 6740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6741 | pub unsafe fn lasx_xvfcmp_cle_s(a: v8f32, b: v8f32) -> v8i32 { | 6741 | pub fn lasx_xvfcmp_cle_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6742 | __lasx_xvfcmp_cle_s(a, b) | 6742 | unsafe { __lasx_xvfcmp_cle_s(a, b) } |
| 6743 | } | 6743 | } |
| 6744 | 6744 | ||
| 6745 | #[inline] | 6745 | #[inline] |
| 6746 | #[target_feature(enable = "lasx")] | 6746 | #[target_feature(enable = "lasx")] |
| 6747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6748 | pub unsafe fn lasx_xvfcmp_clt_d(a: v4f64, b: v4f64) -> v4i64 { | 6748 | pub fn lasx_xvfcmp_clt_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6749 | __lasx_xvfcmp_clt_d(a, b) | 6749 | unsafe { __lasx_xvfcmp_clt_d(a, b) } |
| 6750 | } | 6750 | } |
| 6751 | 6751 | ||
| 6752 | #[inline] | 6752 | #[inline] |
| 6753 | #[target_feature(enable = "lasx")] | 6753 | #[target_feature(enable = "lasx")] |
| 6754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6755 | pub unsafe fn lasx_xvfcmp_clt_s(a: v8f32, b: v8f32) -> v8i32 { | 6755 | pub fn lasx_xvfcmp_clt_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6756 | __lasx_xvfcmp_clt_s(a, b) | 6756 | unsafe { __lasx_xvfcmp_clt_s(a, b) } |
| 6757 | } | 6757 | } |
| 6758 | 6758 | ||
| 6759 | #[inline] | 6759 | #[inline] |
| 6760 | #[target_feature(enable = "lasx")] | 6760 | #[target_feature(enable = "lasx")] |
| 6761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6762 | pub unsafe fn lasx_xvfcmp_cne_d(a: v4f64, b: v4f64) -> v4i64 { | 6762 | pub fn lasx_xvfcmp_cne_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6763 | __lasx_xvfcmp_cne_d(a, b) | 6763 | unsafe { __lasx_xvfcmp_cne_d(a, b) } |
| 6764 | } | 6764 | } |
| 6765 | 6765 | ||
| 6766 | #[inline] | 6766 | #[inline] |
| 6767 | #[target_feature(enable = "lasx")] | 6767 | #[target_feature(enable = "lasx")] |
| 6768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6769 | pub unsafe fn lasx_xvfcmp_cne_s(a: v8f32, b: v8f32) -> v8i32 { | 6769 | pub fn lasx_xvfcmp_cne_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6770 | __lasx_xvfcmp_cne_s(a, b) | 6770 | unsafe { __lasx_xvfcmp_cne_s(a, b) } |
| 6771 | } | 6771 | } |
| 6772 | 6772 | ||
| 6773 | #[inline] | 6773 | #[inline] |
| 6774 | #[target_feature(enable = "lasx")] | 6774 | #[target_feature(enable = "lasx")] |
| 6775 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6775 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6776 | pub unsafe fn lasx_xvfcmp_cor_d(a: v4f64, b: v4f64) -> v4i64 { | 6776 | pub fn lasx_xvfcmp_cor_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6777 | __lasx_xvfcmp_cor_d(a, b) | 6777 | unsafe { __lasx_xvfcmp_cor_d(a, b) } |
| 6778 | } | 6778 | } |
| 6779 | 6779 | ||
| 6780 | #[inline] | 6780 | #[inline] |
| 6781 | #[target_feature(enable = "lasx")] | 6781 | #[target_feature(enable = "lasx")] |
| 6782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6782 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6783 | pub unsafe fn lasx_xvfcmp_cor_s(a: v8f32, b: v8f32) -> v8i32 { | 6783 | pub fn lasx_xvfcmp_cor_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6784 | __lasx_xvfcmp_cor_s(a, b) | 6784 | unsafe { __lasx_xvfcmp_cor_s(a, b) } |
| 6785 | } | 6785 | } |
| 6786 | 6786 | ||
| 6787 | #[inline] | 6787 | #[inline] |
| 6788 | #[target_feature(enable = "lasx")] | 6788 | #[target_feature(enable = "lasx")] |
| 6789 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6789 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6790 | pub unsafe fn lasx_xvfcmp_cueq_d(a: v4f64, b: v4f64) -> v4i64 { | 6790 | pub fn lasx_xvfcmp_cueq_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6791 | __lasx_xvfcmp_cueq_d(a, b) | 6791 | unsafe { __lasx_xvfcmp_cueq_d(a, b) } |
| 6792 | } | 6792 | } |
| 6793 | 6793 | ||
| 6794 | #[inline] | 6794 | #[inline] |
| 6795 | #[target_feature(enable = "lasx")] | 6795 | #[target_feature(enable = "lasx")] |
| 6796 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6796 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6797 | pub unsafe fn lasx_xvfcmp_cueq_s(a: v8f32, b: v8f32) -> v8i32 { | 6797 | pub fn lasx_xvfcmp_cueq_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6798 | __lasx_xvfcmp_cueq_s(a, b) | 6798 | unsafe { __lasx_xvfcmp_cueq_s(a, b) } |
| 6799 | } | 6799 | } |
| 6800 | 6800 | ||
| 6801 | #[inline] | 6801 | #[inline] |
| 6802 | #[target_feature(enable = "lasx")] | 6802 | #[target_feature(enable = "lasx")] |
| 6803 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6803 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6804 | pub unsafe fn lasx_xvfcmp_cule_d(a: v4f64, b: v4f64) -> v4i64 { | 6804 | pub fn lasx_xvfcmp_cule_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6805 | __lasx_xvfcmp_cule_d(a, b) | 6805 | unsafe { __lasx_xvfcmp_cule_d(a, b) } |
| 6806 | } | 6806 | } |
| 6807 | 6807 | ||
| 6808 | #[inline] | 6808 | #[inline] |
| 6809 | #[target_feature(enable = "lasx")] | 6809 | #[target_feature(enable = "lasx")] |
| 6810 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6810 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6811 | pub unsafe fn lasx_xvfcmp_cule_s(a: v8f32, b: v8f32) -> v8i32 { | 6811 | pub fn lasx_xvfcmp_cule_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6812 | __lasx_xvfcmp_cule_s(a, b) | 6812 | unsafe { __lasx_xvfcmp_cule_s(a, b) } |
| 6813 | } | 6813 | } |
| 6814 | 6814 | ||
| 6815 | #[inline] | 6815 | #[inline] |
| 6816 | #[target_feature(enable = "lasx")] | 6816 | #[target_feature(enable = "lasx")] |
| 6817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6817 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6818 | pub unsafe fn lasx_xvfcmp_cult_d(a: v4f64, b: v4f64) -> v4i64 { | 6818 | pub fn lasx_xvfcmp_cult_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6819 | __lasx_xvfcmp_cult_d(a, b) | 6819 | unsafe { __lasx_xvfcmp_cult_d(a, b) } |
| 6820 | } | 6820 | } |
| 6821 | 6821 | ||
| 6822 | #[inline] | 6822 | #[inline] |
| 6823 | #[target_feature(enable = "lasx")] | 6823 | #[target_feature(enable = "lasx")] |
| 6824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6825 | pub unsafe fn lasx_xvfcmp_cult_s(a: v8f32, b: v8f32) -> v8i32 { | 6825 | pub fn lasx_xvfcmp_cult_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6826 | __lasx_xvfcmp_cult_s(a, b) | 6826 | unsafe { __lasx_xvfcmp_cult_s(a, b) } |
| 6827 | } | 6827 | } |
| 6828 | 6828 | ||
| 6829 | #[inline] | 6829 | #[inline] |
| 6830 | #[target_feature(enable = "lasx")] | 6830 | #[target_feature(enable = "lasx")] |
| 6831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6831 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6832 | pub unsafe fn lasx_xvfcmp_cun_d(a: v4f64, b: v4f64) -> v4i64 { | 6832 | pub fn lasx_xvfcmp_cun_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6833 | __lasx_xvfcmp_cun_d(a, b) | 6833 | unsafe { __lasx_xvfcmp_cun_d(a, b) } |
| 6834 | } | 6834 | } |
| 6835 | 6835 | ||
| 6836 | #[inline] | 6836 | #[inline] |
| 6837 | #[target_feature(enable = "lasx")] | 6837 | #[target_feature(enable = "lasx")] |
| 6838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6838 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6839 | pub unsafe fn lasx_xvfcmp_cune_d(a: v4f64, b: v4f64) -> v4i64 { | 6839 | pub fn lasx_xvfcmp_cune_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6840 | __lasx_xvfcmp_cune_d(a, b) | 6840 | unsafe { __lasx_xvfcmp_cune_d(a, b) } |
| 6841 | } | 6841 | } |
| 6842 | 6842 | ||
| 6843 | #[inline] | 6843 | #[inline] |
| 6844 | #[target_feature(enable = "lasx")] | 6844 | #[target_feature(enable = "lasx")] |
| 6845 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6845 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6846 | pub unsafe fn lasx_xvfcmp_cune_s(a: v8f32, b: v8f32) -> v8i32 { | 6846 | pub fn lasx_xvfcmp_cune_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6847 | __lasx_xvfcmp_cune_s(a, b) | 6847 | unsafe { __lasx_xvfcmp_cune_s(a, b) } |
| 6848 | } | 6848 | } |
| 6849 | 6849 | ||
| 6850 | #[inline] | 6850 | #[inline] |
| 6851 | #[target_feature(enable = "lasx")] | 6851 | #[target_feature(enable = "lasx")] |
| 6852 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6852 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6853 | pub unsafe fn lasx_xvfcmp_cun_s(a: v8f32, b: v8f32) -> v8i32 { | 6853 | pub fn lasx_xvfcmp_cun_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6854 | __lasx_xvfcmp_cun_s(a, b) | 6854 | unsafe { __lasx_xvfcmp_cun_s(a, b) } |
| 6855 | } | 6855 | } |
| 6856 | 6856 | ||
| 6857 | #[inline] | 6857 | #[inline] |
| 6858 | #[target_feature(enable = "lasx")] | 6858 | #[target_feature(enable = "lasx")] |
| 6859 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6859 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6860 | pub unsafe fn lasx_xvfcmp_saf_d(a: v4f64, b: v4f64) -> v4i64 { | 6860 | pub fn lasx_xvfcmp_saf_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6861 | __lasx_xvfcmp_saf_d(a, b) | 6861 | unsafe { __lasx_xvfcmp_saf_d(a, b) } |
| 6862 | } | 6862 | } |
| 6863 | 6863 | ||
| 6864 | #[inline] | 6864 | #[inline] |
| 6865 | #[target_feature(enable = "lasx")] | 6865 | #[target_feature(enable = "lasx")] |
| 6866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6867 | pub unsafe fn lasx_xvfcmp_saf_s(a: v8f32, b: v8f32) -> v8i32 { | 6867 | pub fn lasx_xvfcmp_saf_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6868 | __lasx_xvfcmp_saf_s(a, b) | 6868 | unsafe { __lasx_xvfcmp_saf_s(a, b) } |
| 6869 | } | 6869 | } |
| 6870 | 6870 | ||
| 6871 | #[inline] | 6871 | #[inline] |
| 6872 | #[target_feature(enable = "lasx")] | 6872 | #[target_feature(enable = "lasx")] |
| 6873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6873 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6874 | pub unsafe fn lasx_xvfcmp_seq_d(a: v4f64, b: v4f64) -> v4i64 { | 6874 | pub fn lasx_xvfcmp_seq_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6875 | __lasx_xvfcmp_seq_d(a, b) | 6875 | unsafe { __lasx_xvfcmp_seq_d(a, b) } |
| 6876 | } | 6876 | } |
| 6877 | 6877 | ||
| 6878 | #[inline] | 6878 | #[inline] |
| 6879 | #[target_feature(enable = "lasx")] | 6879 | #[target_feature(enable = "lasx")] |
| 6880 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6880 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6881 | pub unsafe fn lasx_xvfcmp_seq_s(a: v8f32, b: v8f32) -> v8i32 { | 6881 | pub fn lasx_xvfcmp_seq_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6882 | __lasx_xvfcmp_seq_s(a, b) | 6882 | unsafe { __lasx_xvfcmp_seq_s(a, b) } |
| 6883 | } | 6883 | } |
| 6884 | 6884 | ||
| 6885 | #[inline] | 6885 | #[inline] |
| 6886 | #[target_feature(enable = "lasx")] | 6886 | #[target_feature(enable = "lasx")] |
| 6887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6888 | pub unsafe fn lasx_xvfcmp_sle_d(a: v4f64, b: v4f64) -> v4i64 { | 6888 | pub fn lasx_xvfcmp_sle_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6889 | __lasx_xvfcmp_sle_d(a, b) | 6889 | unsafe { __lasx_xvfcmp_sle_d(a, b) } |
| 6890 | } | 6890 | } |
| 6891 | 6891 | ||
| 6892 | #[inline] | 6892 | #[inline] |
| 6893 | #[target_feature(enable = "lasx")] | 6893 | #[target_feature(enable = "lasx")] |
| 6894 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6894 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6895 | pub unsafe fn lasx_xvfcmp_sle_s(a: v8f32, b: v8f32) -> v8i32 { | 6895 | pub fn lasx_xvfcmp_sle_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6896 | __lasx_xvfcmp_sle_s(a, b) | 6896 | unsafe { __lasx_xvfcmp_sle_s(a, b) } |
| 6897 | } | 6897 | } |
| 6898 | 6898 | ||
| 6899 | #[inline] | 6899 | #[inline] |
| 6900 | #[target_feature(enable = "lasx")] | 6900 | #[target_feature(enable = "lasx")] |
| 6901 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6901 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6902 | pub unsafe fn lasx_xvfcmp_slt_d(a: v4f64, b: v4f64) -> v4i64 { | 6902 | pub fn lasx_xvfcmp_slt_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6903 | __lasx_xvfcmp_slt_d(a, b) | 6903 | unsafe { __lasx_xvfcmp_slt_d(a, b) } |
| 6904 | } | 6904 | } |
| 6905 | 6905 | ||
| 6906 | #[inline] | 6906 | #[inline] |
| 6907 | #[target_feature(enable = "lasx")] | 6907 | #[target_feature(enable = "lasx")] |
| 6908 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6908 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6909 | pub unsafe fn lasx_xvfcmp_slt_s(a: v8f32, b: v8f32) -> v8i32 { | 6909 | pub fn lasx_xvfcmp_slt_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6910 | __lasx_xvfcmp_slt_s(a, b) | 6910 | unsafe { __lasx_xvfcmp_slt_s(a, b) } |
| 6911 | } | 6911 | } |
| 6912 | 6912 | ||
| 6913 | #[inline] | 6913 | #[inline] |
| 6914 | #[target_feature(enable = "lasx")] | 6914 | #[target_feature(enable = "lasx")] |
| 6915 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6915 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6916 | pub unsafe fn lasx_xvfcmp_sne_d(a: v4f64, b: v4f64) -> v4i64 { | 6916 | pub fn lasx_xvfcmp_sne_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6917 | __lasx_xvfcmp_sne_d(a, b) | 6917 | unsafe { __lasx_xvfcmp_sne_d(a, b) } |
| 6918 | } | 6918 | } |
| 6919 | 6919 | ||
| 6920 | #[inline] | 6920 | #[inline] |
| 6921 | #[target_feature(enable = "lasx")] | 6921 | #[target_feature(enable = "lasx")] |
| 6922 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6922 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6923 | pub unsafe fn lasx_xvfcmp_sne_s(a: v8f32, b: v8f32) -> v8i32 { | 6923 | pub fn lasx_xvfcmp_sne_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6924 | __lasx_xvfcmp_sne_s(a, b) | 6924 | unsafe { __lasx_xvfcmp_sne_s(a, b) } |
| 6925 | } | 6925 | } |
| 6926 | 6926 | ||
| 6927 | #[inline] | 6927 | #[inline] |
| 6928 | #[target_feature(enable = "lasx")] | 6928 | #[target_feature(enable = "lasx")] |
| 6929 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6929 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6930 | pub unsafe fn lasx_xvfcmp_sor_d(a: v4f64, b: v4f64) -> v4i64 { | 6930 | pub fn lasx_xvfcmp_sor_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6931 | __lasx_xvfcmp_sor_d(a, b) | 6931 | unsafe { __lasx_xvfcmp_sor_d(a, b) } |
| 6932 | } | 6932 | } |
| 6933 | 6933 | ||
| 6934 | #[inline] | 6934 | #[inline] |
| 6935 | #[target_feature(enable = "lasx")] | 6935 | #[target_feature(enable = "lasx")] |
| 6936 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6936 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6937 | pub unsafe fn lasx_xvfcmp_sor_s(a: v8f32, b: v8f32) -> v8i32 { | 6937 | pub fn lasx_xvfcmp_sor_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6938 | __lasx_xvfcmp_sor_s(a, b) | 6938 | unsafe { __lasx_xvfcmp_sor_s(a, b) } |
| 6939 | } | 6939 | } |
| 6940 | 6940 | ||
| 6941 | #[inline] | 6941 | #[inline] |
| 6942 | #[target_feature(enable = "lasx")] | 6942 | #[target_feature(enable = "lasx")] |
| 6943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6944 | pub unsafe fn lasx_xvfcmp_sueq_d(a: v4f64, b: v4f64) -> v4i64 { | 6944 | pub fn lasx_xvfcmp_sueq_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6945 | __lasx_xvfcmp_sueq_d(a, b) | 6945 | unsafe { __lasx_xvfcmp_sueq_d(a, b) } |
| 6946 | } | 6946 | } |
| 6947 | 6947 | ||
| 6948 | #[inline] | 6948 | #[inline] |
| 6949 | #[target_feature(enable = "lasx")] | 6949 | #[target_feature(enable = "lasx")] |
| 6950 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6950 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6951 | pub unsafe fn lasx_xvfcmp_sueq_s(a: v8f32, b: v8f32) -> v8i32 { | 6951 | pub fn lasx_xvfcmp_sueq_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6952 | __lasx_xvfcmp_sueq_s(a, b) | 6952 | unsafe { __lasx_xvfcmp_sueq_s(a, b) } |
| 6953 | } | 6953 | } |
| 6954 | 6954 | ||
| 6955 | #[inline] | 6955 | #[inline] |
| 6956 | #[target_feature(enable = "lasx")] | 6956 | #[target_feature(enable = "lasx")] |
| 6957 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6957 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6958 | pub unsafe fn lasx_xvfcmp_sule_d(a: v4f64, b: v4f64) -> v4i64 { | 6958 | pub fn lasx_xvfcmp_sule_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6959 | __lasx_xvfcmp_sule_d(a, b) | 6959 | unsafe { __lasx_xvfcmp_sule_d(a, b) } |
| 6960 | } | 6960 | } |
| 6961 | 6961 | ||
| 6962 | #[inline] | 6962 | #[inline] |
| 6963 | #[target_feature(enable = "lasx")] | 6963 | #[target_feature(enable = "lasx")] |
| 6964 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6964 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6965 | pub unsafe fn lasx_xvfcmp_sule_s(a: v8f32, b: v8f32) -> v8i32 { | 6965 | pub fn lasx_xvfcmp_sule_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6966 | __lasx_xvfcmp_sule_s(a, b) | 6966 | unsafe { __lasx_xvfcmp_sule_s(a, b) } |
| 6967 | } | 6967 | } |
| 6968 | 6968 | ||
| 6969 | #[inline] | 6969 | #[inline] |
| 6970 | #[target_feature(enable = "lasx")] | 6970 | #[target_feature(enable = "lasx")] |
| 6971 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6971 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6972 | pub unsafe fn lasx_xvfcmp_sult_d(a: v4f64, b: v4f64) -> v4i64 { | 6972 | pub fn lasx_xvfcmp_sult_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6973 | __lasx_xvfcmp_sult_d(a, b) | 6973 | unsafe { __lasx_xvfcmp_sult_d(a, b) } |
| 6974 | } | 6974 | } |
| 6975 | 6975 | ||
| 6976 | #[inline] | 6976 | #[inline] |
| 6977 | #[target_feature(enable = "lasx")] | 6977 | #[target_feature(enable = "lasx")] |
| 6978 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6978 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6979 | pub unsafe fn lasx_xvfcmp_sult_s(a: v8f32, b: v8f32) -> v8i32 { | 6979 | pub fn lasx_xvfcmp_sult_s(a: v8f32, b: v8f32) -> v8i32 { |
| 6980 | __lasx_xvfcmp_sult_s(a, b) | 6980 | unsafe { __lasx_xvfcmp_sult_s(a, b) } |
| 6981 | } | 6981 | } |
| 6982 | 6982 | ||
| 6983 | #[inline] | 6983 | #[inline] |
| 6984 | #[target_feature(enable = "lasx")] | 6984 | #[target_feature(enable = "lasx")] |
| 6985 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6985 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6986 | pub unsafe fn lasx_xvfcmp_sun_d(a: v4f64, b: v4f64) -> v4i64 { | 6986 | pub fn lasx_xvfcmp_sun_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6987 | __lasx_xvfcmp_sun_d(a, b) | 6987 | unsafe { __lasx_xvfcmp_sun_d(a, b) } |
| 6988 | } | 6988 | } |
| 6989 | 6989 | ||
| 6990 | #[inline] | 6990 | #[inline] |
| 6991 | #[target_feature(enable = "lasx")] | 6991 | #[target_feature(enable = "lasx")] |
| 6992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6992 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6993 | pub unsafe fn lasx_xvfcmp_sune_d(a: v4f64, b: v4f64) -> v4i64 { | 6993 | pub fn lasx_xvfcmp_sune_d(a: v4f64, b: v4f64) -> v4i64 { |
| 6994 | __lasx_xvfcmp_sune_d(a, b) | 6994 | unsafe { __lasx_xvfcmp_sune_d(a, b) } |
| 6995 | } | 6995 | } |
| 6996 | 6996 | ||
| 6997 | #[inline] | 6997 | #[inline] |
| 6998 | #[target_feature(enable = "lasx")] | 6998 | #[target_feature(enable = "lasx")] |
| 6999 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6999 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7000 | pub unsafe fn lasx_xvfcmp_sune_s(a: v8f32, b: v8f32) -> v8i32 { | 7000 | pub fn lasx_xvfcmp_sune_s(a: v8f32, b: v8f32) -> v8i32 { |
| 7001 | __lasx_xvfcmp_sune_s(a, b) | 7001 | unsafe { __lasx_xvfcmp_sune_s(a, b) } |
| 7002 | } | 7002 | } |
| 7003 | 7003 | ||
| 7004 | #[inline] | 7004 | #[inline] |
| 7005 | #[target_feature(enable = "lasx")] | 7005 | #[target_feature(enable = "lasx")] |
| 7006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 7006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7007 | pub unsafe fn lasx_xvfcmp_sun_s(a: v8f32, b: v8f32) -> v8i32 { | 7007 | pub fn lasx_xvfcmp_sun_s(a: v8f32, b: v8f32) -> v8i32 { |
| 7008 | __lasx_xvfcmp_sun_s(a, b) | 7008 | unsafe { __lasx_xvfcmp_sun_s(a, b) } |
| 7009 | } | 7009 | } |
| 7010 | 7010 | ||
| 7011 | #[inline] | 7011 | #[inline] |
| 7012 | #[target_feature(enable = "lasx")] | 7012 | #[target_feature(enable = "lasx")] |
| 7013 | #[rustc_legacy_const_generics(1)] | 7013 | #[rustc_legacy_const_generics(1)] |
| 7014 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 7014 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7015 | pub unsafe fn lasx_xvpickve_d_f<const IMM2: u32>(a: v4f64) -> v4f64 { | 7015 | pub fn lasx_xvpickve_d_f<const IMM2: u32>(a: v4f64) -> v4f64 { |
| 7016 | static_assert_uimm_bits!(IMM2, 2); | 7016 | static_assert_uimm_bits!(IMM2, 2); |
| 7017 | __lasx_xvpickve_d_f(a, IMM2) | 7017 | unsafe { __lasx_xvpickve_d_f(a, IMM2) } |
| 7018 | } | 7018 | } |
| 7019 | 7019 | ||
| 7020 | #[inline] | 7020 | #[inline] |
| 7021 | #[target_feature(enable = "lasx")] | 7021 | #[target_feature(enable = "lasx")] |
| 7022 | #[rustc_legacy_const_generics(1)] | 7022 | #[rustc_legacy_const_generics(1)] |
| 7023 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 7023 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7024 | pub unsafe fn lasx_xvpickve_w_f<const IMM3: u32>(a: v8f32) -> v8f32 { | 7024 | pub fn lasx_xvpickve_w_f<const IMM3: u32>(a: v8f32) -> v8f32 { |
| 7025 | static_assert_uimm_bits!(IMM3, 3); | 7025 | static_assert_uimm_bits!(IMM3, 3); |
| 7026 | __lasx_xvpickve_w_f(a, IMM3) | 7026 | unsafe { __lasx_xvpickve_w_f(a, IMM3) } |
| 7027 | } | 7027 | } |
| 7028 | 7028 | ||
| 7029 | #[inline] | 7029 | #[inline] |
| 7030 | #[target_feature(enable = "lasx")] | 7030 | #[target_feature(enable = "lasx")] |
| 7031 | #[rustc_legacy_const_generics(0)] | 7031 | #[rustc_legacy_const_generics(0)] |
| 7032 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 7032 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7033 | pub unsafe fn lasx_xvrepli_b<const IMM_S10: i32>() -> v32i8 { | 7033 | pub fn lasx_xvrepli_b<const IMM_S10: i32>() -> v32i8 { |
| 7034 | static_assert_simm_bits!(IMM_S10, 10); | 7034 | static_assert_simm_bits!(IMM_S10, 10); |
| 7035 | __lasx_xvrepli_b(IMM_S10) | 7035 | unsafe { __lasx_xvrepli_b(IMM_S10) } |
| 7036 | } | 7036 | } |
| 7037 | 7037 | ||
| 7038 | #[inline] | 7038 | #[inline] |
| 7039 | #[target_feature(enable = "lasx")] | 7039 | #[target_feature(enable = "lasx")] |
| 7040 | #[rustc_legacy_const_generics(0)] | 7040 | #[rustc_legacy_const_generics(0)] |
| 7041 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 7041 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7042 | pub unsafe fn lasx_xvrepli_d<const IMM_S10: i32>() -> v4i64 { | 7042 | pub fn lasx_xvrepli_d<const IMM_S10: i32>() -> v4i64 { |
| 7043 | static_assert_simm_bits!(IMM_S10, 10); | 7043 | static_assert_simm_bits!(IMM_S10, 10); |
| 7044 | __lasx_xvrepli_d(IMM_S10) | 7044 | unsafe { __lasx_xvrepli_d(IMM_S10) } |
| 7045 | } | 7045 | } |
| 7046 | 7046 | ||
| 7047 | #[inline] | 7047 | #[inline] |
| 7048 | #[target_feature(enable = "lasx")] | 7048 | #[target_feature(enable = "lasx")] |
| 7049 | #[rustc_legacy_const_generics(0)] | 7049 | #[rustc_legacy_const_generics(0)] |
| 7050 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 7050 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7051 | pub unsafe fn lasx_xvrepli_h<const IMM_S10: i32>() -> v16i16 { | 7051 | pub fn lasx_xvrepli_h<const IMM_S10: i32>() -> v16i16 { |
| 7052 | static_assert_simm_bits!(IMM_S10, 10); | 7052 | static_assert_simm_bits!(IMM_S10, 10); |
| 7053 | __lasx_xvrepli_h(IMM_S10) | 7053 | unsafe { __lasx_xvrepli_h(IMM_S10) } |
| 7054 | } | 7054 | } |
| 7055 | 7055 | ||
| 7056 | #[inline] | 7056 | #[inline] |
| 7057 | #[target_feature(enable = "lasx")] | 7057 | #[target_feature(enable = "lasx")] |
| 7058 | #[rustc_legacy_const_generics(0)] | 7058 | #[rustc_legacy_const_generics(0)] |
| 7059 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 7059 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 7060 | pub unsafe fn lasx_xvrepli_w<const IMM_S10: i32>() -> v8i32 { | 7060 | pub fn lasx_xvrepli_w<const IMM_S10: i32>() -> v8i32 { |
| 7061 | static_assert_simm_bits!(IMM_S10, 10); | 7061 | static_assert_simm_bits!(IMM_S10, 10); |
| 7062 | __lasx_xvrepli_w(IMM_S10) | 7062 | unsafe { __lasx_xvrepli_w(IMM_S10) } |
| 7063 | } | 7063 | } |
library/stdarch/crates/core_arch/src/loongarch64/lsx/generated.rs+1416-1416| ... | @@ -1455,3593 +1455,3593 @@ unsafe extern "unadjusted" { | ... | @@ -1455,3593 +1455,3593 @@ unsafe extern "unadjusted" { |
| 1455 | #[inline] | 1455 | #[inline] |
| 1456 | #[target_feature(enable = "lsx")] | 1456 | #[target_feature(enable = "lsx")] |
| 1457 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1457 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1458 | pub unsafe fn lsx_vsll_b(a: v16i8, b: v16i8) -> v16i8 { | 1458 | pub fn lsx_vsll_b(a: v16i8, b: v16i8) -> v16i8 { |
| 1459 | __lsx_vsll_b(a, b) | 1459 | unsafe { __lsx_vsll_b(a, b) } |
| 1460 | } | 1460 | } |
| 1461 | 1461 | ||
| 1462 | #[inline] | 1462 | #[inline] |
| 1463 | #[target_feature(enable = "lsx")] | 1463 | #[target_feature(enable = "lsx")] |
| 1464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1465 | pub unsafe fn lsx_vsll_h(a: v8i16, b: v8i16) -> v8i16 { | 1465 | pub fn lsx_vsll_h(a: v8i16, b: v8i16) -> v8i16 { |
| 1466 | __lsx_vsll_h(a, b) | 1466 | unsafe { __lsx_vsll_h(a, b) } |
| 1467 | } | 1467 | } |
| 1468 | 1468 | ||
| 1469 | #[inline] | 1469 | #[inline] |
| 1470 | #[target_feature(enable = "lsx")] | 1470 | #[target_feature(enable = "lsx")] |
| 1471 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1471 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1472 | pub unsafe fn lsx_vsll_w(a: v4i32, b: v4i32) -> v4i32 { | 1472 | pub fn lsx_vsll_w(a: v4i32, b: v4i32) -> v4i32 { |
| 1473 | __lsx_vsll_w(a, b) | 1473 | unsafe { __lsx_vsll_w(a, b) } |
| 1474 | } | 1474 | } |
| 1475 | 1475 | ||
| 1476 | #[inline] | 1476 | #[inline] |
| 1477 | #[target_feature(enable = "lsx")] | 1477 | #[target_feature(enable = "lsx")] |
| 1478 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1478 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1479 | pub unsafe fn lsx_vsll_d(a: v2i64, b: v2i64) -> v2i64 { | 1479 | pub fn lsx_vsll_d(a: v2i64, b: v2i64) -> v2i64 { |
| 1480 | __lsx_vsll_d(a, b) | 1480 | unsafe { __lsx_vsll_d(a, b) } |
| 1481 | } | 1481 | } |
| 1482 | 1482 | ||
| 1483 | #[inline] | 1483 | #[inline] |
| 1484 | #[target_feature(enable = "lsx")] | 1484 | #[target_feature(enable = "lsx")] |
| 1485 | #[rustc_legacy_const_generics(1)] | 1485 | #[rustc_legacy_const_generics(1)] |
| 1486 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1486 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1487 | pub unsafe fn lsx_vslli_b<const IMM3: u32>(a: v16i8) -> v16i8 { | 1487 | pub fn lsx_vslli_b<const IMM3: u32>(a: v16i8) -> v16i8 { |
| 1488 | static_assert_uimm_bits!(IMM3, 3); | 1488 | static_assert_uimm_bits!(IMM3, 3); |
| 1489 | __lsx_vslli_b(a, IMM3) | 1489 | unsafe { __lsx_vslli_b(a, IMM3) } |
| 1490 | } | 1490 | } |
| 1491 | 1491 | ||
| 1492 | #[inline] | 1492 | #[inline] |
| 1493 | #[target_feature(enable = "lsx")] | 1493 | #[target_feature(enable = "lsx")] |
| 1494 | #[rustc_legacy_const_generics(1)] | 1494 | #[rustc_legacy_const_generics(1)] |
| 1495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1496 | pub unsafe fn lsx_vslli_h<const IMM4: u32>(a: v8i16) -> v8i16 { | 1496 | pub fn lsx_vslli_h<const IMM4: u32>(a: v8i16) -> v8i16 { |
| 1497 | static_assert_uimm_bits!(IMM4, 4); | 1497 | static_assert_uimm_bits!(IMM4, 4); |
| 1498 | __lsx_vslli_h(a, IMM4) | 1498 | unsafe { __lsx_vslli_h(a, IMM4) } |
| 1499 | } | 1499 | } |
| 1500 | 1500 | ||
| 1501 | #[inline] | 1501 | #[inline] |
| 1502 | #[target_feature(enable = "lsx")] | 1502 | #[target_feature(enable = "lsx")] |
| 1503 | #[rustc_legacy_const_generics(1)] | 1503 | #[rustc_legacy_const_generics(1)] |
| 1504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1505 | pub unsafe fn lsx_vslli_w<const IMM5: u32>(a: v4i32) -> v4i32 { | 1505 | pub fn lsx_vslli_w<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 1506 | static_assert_uimm_bits!(IMM5, 5); | 1506 | static_assert_uimm_bits!(IMM5, 5); |
| 1507 | __lsx_vslli_w(a, IMM5) | 1507 | unsafe { __lsx_vslli_w(a, IMM5) } |
| 1508 | } | 1508 | } |
| 1509 | 1509 | ||
| 1510 | #[inline] | 1510 | #[inline] |
| 1511 | #[target_feature(enable = "lsx")] | 1511 | #[target_feature(enable = "lsx")] |
| 1512 | #[rustc_legacy_const_generics(1)] | 1512 | #[rustc_legacy_const_generics(1)] |
| 1513 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1513 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1514 | pub unsafe fn lsx_vslli_d<const IMM6: u32>(a: v2i64) -> v2i64 { | 1514 | pub fn lsx_vslli_d<const IMM6: u32>(a: v2i64) -> v2i64 { |
| 1515 | static_assert_uimm_bits!(IMM6, 6); | 1515 | static_assert_uimm_bits!(IMM6, 6); |
| 1516 | __lsx_vslli_d(a, IMM6) | 1516 | unsafe { __lsx_vslli_d(a, IMM6) } |
| 1517 | } | 1517 | } |
| 1518 | 1518 | ||
| 1519 | #[inline] | 1519 | #[inline] |
| 1520 | #[target_feature(enable = "lsx")] | 1520 | #[target_feature(enable = "lsx")] |
| 1521 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1521 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1522 | pub unsafe fn lsx_vsra_b(a: v16i8, b: v16i8) -> v16i8 { | 1522 | pub fn lsx_vsra_b(a: v16i8, b: v16i8) -> v16i8 { |
| 1523 | __lsx_vsra_b(a, b) | 1523 | unsafe { __lsx_vsra_b(a, b) } |
| 1524 | } | 1524 | } |
| 1525 | 1525 | ||
| 1526 | #[inline] | 1526 | #[inline] |
| 1527 | #[target_feature(enable = "lsx")] | 1527 | #[target_feature(enable = "lsx")] |
| 1528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1529 | pub unsafe fn lsx_vsra_h(a: v8i16, b: v8i16) -> v8i16 { | 1529 | pub fn lsx_vsra_h(a: v8i16, b: v8i16) -> v8i16 { |
| 1530 | __lsx_vsra_h(a, b) | 1530 | unsafe { __lsx_vsra_h(a, b) } |
| 1531 | } | 1531 | } |
| 1532 | 1532 | ||
| 1533 | #[inline] | 1533 | #[inline] |
| 1534 | #[target_feature(enable = "lsx")] | 1534 | #[target_feature(enable = "lsx")] |
| 1535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1535 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1536 | pub unsafe fn lsx_vsra_w(a: v4i32, b: v4i32) -> v4i32 { | 1536 | pub fn lsx_vsra_w(a: v4i32, b: v4i32) -> v4i32 { |
| 1537 | __lsx_vsra_w(a, b) | 1537 | unsafe { __lsx_vsra_w(a, b) } |
| 1538 | } | 1538 | } |
| 1539 | 1539 | ||
| 1540 | #[inline] | 1540 | #[inline] |
| 1541 | #[target_feature(enable = "lsx")] | 1541 | #[target_feature(enable = "lsx")] |
| 1542 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1542 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1543 | pub unsafe fn lsx_vsra_d(a: v2i64, b: v2i64) -> v2i64 { | 1543 | pub fn lsx_vsra_d(a: v2i64, b: v2i64) -> v2i64 { |
| 1544 | __lsx_vsra_d(a, b) | 1544 | unsafe { __lsx_vsra_d(a, b) } |
| 1545 | } | 1545 | } |
| 1546 | 1546 | ||
| 1547 | #[inline] | 1547 | #[inline] |
| 1548 | #[target_feature(enable = "lsx")] | 1548 | #[target_feature(enable = "lsx")] |
| 1549 | #[rustc_legacy_const_generics(1)] | 1549 | #[rustc_legacy_const_generics(1)] |
| 1550 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1550 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1551 | pub unsafe fn lsx_vsrai_b<const IMM3: u32>(a: v16i8) -> v16i8 { | 1551 | pub fn lsx_vsrai_b<const IMM3: u32>(a: v16i8) -> v16i8 { |
| 1552 | static_assert_uimm_bits!(IMM3, 3); | 1552 | static_assert_uimm_bits!(IMM3, 3); |
| 1553 | __lsx_vsrai_b(a, IMM3) | 1553 | unsafe { __lsx_vsrai_b(a, IMM3) } |
| 1554 | } | 1554 | } |
| 1555 | 1555 | ||
| 1556 | #[inline] | 1556 | #[inline] |
| 1557 | #[target_feature(enable = "lsx")] | 1557 | #[target_feature(enable = "lsx")] |
| 1558 | #[rustc_legacy_const_generics(1)] | 1558 | #[rustc_legacy_const_generics(1)] |
| 1559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1560 | pub unsafe fn lsx_vsrai_h<const IMM4: u32>(a: v8i16) -> v8i16 { | 1560 | pub fn lsx_vsrai_h<const IMM4: u32>(a: v8i16) -> v8i16 { |
| 1561 | static_assert_uimm_bits!(IMM4, 4); | 1561 | static_assert_uimm_bits!(IMM4, 4); |
| 1562 | __lsx_vsrai_h(a, IMM4) | 1562 | unsafe { __lsx_vsrai_h(a, IMM4) } |
| 1563 | } | 1563 | } |
| 1564 | 1564 | ||
| 1565 | #[inline] | 1565 | #[inline] |
| 1566 | #[target_feature(enable = "lsx")] | 1566 | #[target_feature(enable = "lsx")] |
| 1567 | #[rustc_legacy_const_generics(1)] | 1567 | #[rustc_legacy_const_generics(1)] |
| 1568 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1568 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1569 | pub unsafe fn lsx_vsrai_w<const IMM5: u32>(a: v4i32) -> v4i32 { | 1569 | pub fn lsx_vsrai_w<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 1570 | static_assert_uimm_bits!(IMM5, 5); | 1570 | static_assert_uimm_bits!(IMM5, 5); |
| 1571 | __lsx_vsrai_w(a, IMM5) | 1571 | unsafe { __lsx_vsrai_w(a, IMM5) } |
| 1572 | } | 1572 | } |
| 1573 | 1573 | ||
| 1574 | #[inline] | 1574 | #[inline] |
| 1575 | #[target_feature(enable = "lsx")] | 1575 | #[target_feature(enable = "lsx")] |
| 1576 | #[rustc_legacy_const_generics(1)] | 1576 | #[rustc_legacy_const_generics(1)] |
| 1577 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1577 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1578 | pub unsafe fn lsx_vsrai_d<const IMM6: u32>(a: v2i64) -> v2i64 { | 1578 | pub fn lsx_vsrai_d<const IMM6: u32>(a: v2i64) -> v2i64 { |
| 1579 | static_assert_uimm_bits!(IMM6, 6); | 1579 | static_assert_uimm_bits!(IMM6, 6); |
| 1580 | __lsx_vsrai_d(a, IMM6) | 1580 | unsafe { __lsx_vsrai_d(a, IMM6) } |
| 1581 | } | 1581 | } |
| 1582 | 1582 | ||
| 1583 | #[inline] | 1583 | #[inline] |
| 1584 | #[target_feature(enable = "lsx")] | 1584 | #[target_feature(enable = "lsx")] |
| 1585 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1585 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1586 | pub unsafe fn lsx_vsrar_b(a: v16i8, b: v16i8) -> v16i8 { | 1586 | pub fn lsx_vsrar_b(a: v16i8, b: v16i8) -> v16i8 { |
| 1587 | __lsx_vsrar_b(a, b) | 1587 | unsafe { __lsx_vsrar_b(a, b) } |
| 1588 | } | 1588 | } |
| 1589 | 1589 | ||
| 1590 | #[inline] | 1590 | #[inline] |
| 1591 | #[target_feature(enable = "lsx")] | 1591 | #[target_feature(enable = "lsx")] |
| 1592 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1592 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1593 | pub unsafe fn lsx_vsrar_h(a: v8i16, b: v8i16) -> v8i16 { | 1593 | pub fn lsx_vsrar_h(a: v8i16, b: v8i16) -> v8i16 { |
| 1594 | __lsx_vsrar_h(a, b) | 1594 | unsafe { __lsx_vsrar_h(a, b) } |
| 1595 | } | 1595 | } |
| 1596 | 1596 | ||
| 1597 | #[inline] | 1597 | #[inline] |
| 1598 | #[target_feature(enable = "lsx")] | 1598 | #[target_feature(enable = "lsx")] |
| 1599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1599 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1600 | pub unsafe fn lsx_vsrar_w(a: v4i32, b: v4i32) -> v4i32 { | 1600 | pub fn lsx_vsrar_w(a: v4i32, b: v4i32) -> v4i32 { |
| 1601 | __lsx_vsrar_w(a, b) | 1601 | unsafe { __lsx_vsrar_w(a, b) } |
| 1602 | } | 1602 | } |
| 1603 | 1603 | ||
| 1604 | #[inline] | 1604 | #[inline] |
| 1605 | #[target_feature(enable = "lsx")] | 1605 | #[target_feature(enable = "lsx")] |
| 1606 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1606 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1607 | pub unsafe fn lsx_vsrar_d(a: v2i64, b: v2i64) -> v2i64 { | 1607 | pub fn lsx_vsrar_d(a: v2i64, b: v2i64) -> v2i64 { |
| 1608 | __lsx_vsrar_d(a, b) | 1608 | unsafe { __lsx_vsrar_d(a, b) } |
| 1609 | } | 1609 | } |
| 1610 | 1610 | ||
| 1611 | #[inline] | 1611 | #[inline] |
| 1612 | #[target_feature(enable = "lsx")] | 1612 | #[target_feature(enable = "lsx")] |
| 1613 | #[rustc_legacy_const_generics(1)] | 1613 | #[rustc_legacy_const_generics(1)] |
| 1614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1615 | pub unsafe fn lsx_vsrari_b<const IMM3: u32>(a: v16i8) -> v16i8 { | 1615 | pub fn lsx_vsrari_b<const IMM3: u32>(a: v16i8) -> v16i8 { |
| 1616 | static_assert_uimm_bits!(IMM3, 3); | 1616 | static_assert_uimm_bits!(IMM3, 3); |
| 1617 | __lsx_vsrari_b(a, IMM3) | 1617 | unsafe { __lsx_vsrari_b(a, IMM3) } |
| 1618 | } | 1618 | } |
| 1619 | 1619 | ||
| 1620 | #[inline] | 1620 | #[inline] |
| 1621 | #[target_feature(enable = "lsx")] | 1621 | #[target_feature(enable = "lsx")] |
| 1622 | #[rustc_legacy_const_generics(1)] | 1622 | #[rustc_legacy_const_generics(1)] |
| 1623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1624 | pub unsafe fn lsx_vsrari_h<const IMM4: u32>(a: v8i16) -> v8i16 { | 1624 | pub fn lsx_vsrari_h<const IMM4: u32>(a: v8i16) -> v8i16 { |
| 1625 | static_assert_uimm_bits!(IMM4, 4); | 1625 | static_assert_uimm_bits!(IMM4, 4); |
| 1626 | __lsx_vsrari_h(a, IMM4) | 1626 | unsafe { __lsx_vsrari_h(a, IMM4) } |
| 1627 | } | 1627 | } |
| 1628 | 1628 | ||
| 1629 | #[inline] | 1629 | #[inline] |
| 1630 | #[target_feature(enable = "lsx")] | 1630 | #[target_feature(enable = "lsx")] |
| 1631 | #[rustc_legacy_const_generics(1)] | 1631 | #[rustc_legacy_const_generics(1)] |
| 1632 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1632 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1633 | pub unsafe fn lsx_vsrari_w<const IMM5: u32>(a: v4i32) -> v4i32 { | 1633 | pub fn lsx_vsrari_w<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 1634 | static_assert_uimm_bits!(IMM5, 5); | 1634 | static_assert_uimm_bits!(IMM5, 5); |
| 1635 | __lsx_vsrari_w(a, IMM5) | 1635 | unsafe { __lsx_vsrari_w(a, IMM5) } |
| 1636 | } | 1636 | } |
| 1637 | 1637 | ||
| 1638 | #[inline] | 1638 | #[inline] |
| 1639 | #[target_feature(enable = "lsx")] | 1639 | #[target_feature(enable = "lsx")] |
| 1640 | #[rustc_legacy_const_generics(1)] | 1640 | #[rustc_legacy_const_generics(1)] |
| 1641 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1641 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1642 | pub unsafe fn lsx_vsrari_d<const IMM6: u32>(a: v2i64) -> v2i64 { | 1642 | pub fn lsx_vsrari_d<const IMM6: u32>(a: v2i64) -> v2i64 { |
| 1643 | static_assert_uimm_bits!(IMM6, 6); | 1643 | static_assert_uimm_bits!(IMM6, 6); |
| 1644 | __lsx_vsrari_d(a, IMM6) | 1644 | unsafe { __lsx_vsrari_d(a, IMM6) } |
| 1645 | } | 1645 | } |
| 1646 | 1646 | ||
| 1647 | #[inline] | 1647 | #[inline] |
| 1648 | #[target_feature(enable = "lsx")] | 1648 | #[target_feature(enable = "lsx")] |
| 1649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1650 | pub unsafe fn lsx_vsrl_b(a: v16i8, b: v16i8) -> v16i8 { | 1650 | pub fn lsx_vsrl_b(a: v16i8, b: v16i8) -> v16i8 { |
| 1651 | __lsx_vsrl_b(a, b) | 1651 | unsafe { __lsx_vsrl_b(a, b) } |
| 1652 | } | 1652 | } |
| 1653 | 1653 | ||
| 1654 | #[inline] | 1654 | #[inline] |
| 1655 | #[target_feature(enable = "lsx")] | 1655 | #[target_feature(enable = "lsx")] |
| 1656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1657 | pub unsafe fn lsx_vsrl_h(a: v8i16, b: v8i16) -> v8i16 { | 1657 | pub fn lsx_vsrl_h(a: v8i16, b: v8i16) -> v8i16 { |
| 1658 | __lsx_vsrl_h(a, b) | 1658 | unsafe { __lsx_vsrl_h(a, b) } |
| 1659 | } | 1659 | } |
| 1660 | 1660 | ||
| 1661 | #[inline] | 1661 | #[inline] |
| 1662 | #[target_feature(enable = "lsx")] | 1662 | #[target_feature(enable = "lsx")] |
| 1663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1664 | pub unsafe fn lsx_vsrl_w(a: v4i32, b: v4i32) -> v4i32 { | 1664 | pub fn lsx_vsrl_w(a: v4i32, b: v4i32) -> v4i32 { |
| 1665 | __lsx_vsrl_w(a, b) | 1665 | unsafe { __lsx_vsrl_w(a, b) } |
| 1666 | } | 1666 | } |
| 1667 | 1667 | ||
| 1668 | #[inline] | 1668 | #[inline] |
| 1669 | #[target_feature(enable = "lsx")] | 1669 | #[target_feature(enable = "lsx")] |
| 1670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1671 | pub unsafe fn lsx_vsrl_d(a: v2i64, b: v2i64) -> v2i64 { | 1671 | pub fn lsx_vsrl_d(a: v2i64, b: v2i64) -> v2i64 { |
| 1672 | __lsx_vsrl_d(a, b) | 1672 | unsafe { __lsx_vsrl_d(a, b) } |
| 1673 | } | 1673 | } |
| 1674 | 1674 | ||
| 1675 | #[inline] | 1675 | #[inline] |
| 1676 | #[target_feature(enable = "lsx")] | 1676 | #[target_feature(enable = "lsx")] |
| 1677 | #[rustc_legacy_const_generics(1)] | 1677 | #[rustc_legacy_const_generics(1)] |
| 1678 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1678 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1679 | pub unsafe fn lsx_vsrli_b<const IMM3: u32>(a: v16i8) -> v16i8 { | 1679 | pub fn lsx_vsrli_b<const IMM3: u32>(a: v16i8) -> v16i8 { |
| 1680 | static_assert_uimm_bits!(IMM3, 3); | 1680 | static_assert_uimm_bits!(IMM3, 3); |
| 1681 | __lsx_vsrli_b(a, IMM3) | 1681 | unsafe { __lsx_vsrli_b(a, IMM3) } |
| 1682 | } | 1682 | } |
| 1683 | 1683 | ||
| 1684 | #[inline] | 1684 | #[inline] |
| 1685 | #[target_feature(enable = "lsx")] | 1685 | #[target_feature(enable = "lsx")] |
| 1686 | #[rustc_legacy_const_generics(1)] | 1686 | #[rustc_legacy_const_generics(1)] |
| 1687 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1687 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1688 | pub unsafe fn lsx_vsrli_h<const IMM4: u32>(a: v8i16) -> v8i16 { | 1688 | pub fn lsx_vsrli_h<const IMM4: u32>(a: v8i16) -> v8i16 { |
| 1689 | static_assert_uimm_bits!(IMM4, 4); | 1689 | static_assert_uimm_bits!(IMM4, 4); |
| 1690 | __lsx_vsrli_h(a, IMM4) | 1690 | unsafe { __lsx_vsrli_h(a, IMM4) } |
| 1691 | } | 1691 | } |
| 1692 | 1692 | ||
| 1693 | #[inline] | 1693 | #[inline] |
| 1694 | #[target_feature(enable = "lsx")] | 1694 | #[target_feature(enable = "lsx")] |
| 1695 | #[rustc_legacy_const_generics(1)] | 1695 | #[rustc_legacy_const_generics(1)] |
| 1696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1697 | pub unsafe fn lsx_vsrli_w<const IMM5: u32>(a: v4i32) -> v4i32 { | 1697 | pub fn lsx_vsrli_w<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 1698 | static_assert_uimm_bits!(IMM5, 5); | 1698 | static_assert_uimm_bits!(IMM5, 5); |
| 1699 | __lsx_vsrli_w(a, IMM5) | 1699 | unsafe { __lsx_vsrli_w(a, IMM5) } |
| 1700 | } | 1700 | } |
| 1701 | 1701 | ||
| 1702 | #[inline] | 1702 | #[inline] |
| 1703 | #[target_feature(enable = "lsx")] | 1703 | #[target_feature(enable = "lsx")] |
| 1704 | #[rustc_legacy_const_generics(1)] | 1704 | #[rustc_legacy_const_generics(1)] |
| 1705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1706 | pub unsafe fn lsx_vsrli_d<const IMM6: u32>(a: v2i64) -> v2i64 { | 1706 | pub fn lsx_vsrli_d<const IMM6: u32>(a: v2i64) -> v2i64 { |
| 1707 | static_assert_uimm_bits!(IMM6, 6); | 1707 | static_assert_uimm_bits!(IMM6, 6); |
| 1708 | __lsx_vsrli_d(a, IMM6) | 1708 | unsafe { __lsx_vsrli_d(a, IMM6) } |
| 1709 | } | 1709 | } |
| 1710 | 1710 | ||
| 1711 | #[inline] | 1711 | #[inline] |
| 1712 | #[target_feature(enable = "lsx")] | 1712 | #[target_feature(enable = "lsx")] |
| 1713 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1713 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1714 | pub unsafe fn lsx_vsrlr_b(a: v16i8, b: v16i8) -> v16i8 { | 1714 | pub fn lsx_vsrlr_b(a: v16i8, b: v16i8) -> v16i8 { |
| 1715 | __lsx_vsrlr_b(a, b) | 1715 | unsafe { __lsx_vsrlr_b(a, b) } |
| 1716 | } | 1716 | } |
| 1717 | 1717 | ||
| 1718 | #[inline] | 1718 | #[inline] |
| 1719 | #[target_feature(enable = "lsx")] | 1719 | #[target_feature(enable = "lsx")] |
| 1720 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1720 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1721 | pub unsafe fn lsx_vsrlr_h(a: v8i16, b: v8i16) -> v8i16 { | 1721 | pub fn lsx_vsrlr_h(a: v8i16, b: v8i16) -> v8i16 { |
| 1722 | __lsx_vsrlr_h(a, b) | 1722 | unsafe { __lsx_vsrlr_h(a, b) } |
| 1723 | } | 1723 | } |
| 1724 | 1724 | ||
| 1725 | #[inline] | 1725 | #[inline] |
| 1726 | #[target_feature(enable = "lsx")] | 1726 | #[target_feature(enable = "lsx")] |
| 1727 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1727 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1728 | pub unsafe fn lsx_vsrlr_w(a: v4i32, b: v4i32) -> v4i32 { | 1728 | pub fn lsx_vsrlr_w(a: v4i32, b: v4i32) -> v4i32 { |
| 1729 | __lsx_vsrlr_w(a, b) | 1729 | unsafe { __lsx_vsrlr_w(a, b) } |
| 1730 | } | 1730 | } |
| 1731 | 1731 | ||
| 1732 | #[inline] | 1732 | #[inline] |
| 1733 | #[target_feature(enable = "lsx")] | 1733 | #[target_feature(enable = "lsx")] |
| 1734 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1734 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1735 | pub unsafe fn lsx_vsrlr_d(a: v2i64, b: v2i64) -> v2i64 { | 1735 | pub fn lsx_vsrlr_d(a: v2i64, b: v2i64) -> v2i64 { |
| 1736 | __lsx_vsrlr_d(a, b) | 1736 | unsafe { __lsx_vsrlr_d(a, b) } |
| 1737 | } | 1737 | } |
| 1738 | 1738 | ||
| 1739 | #[inline] | 1739 | #[inline] |
| 1740 | #[target_feature(enable = "lsx")] | 1740 | #[target_feature(enable = "lsx")] |
| 1741 | #[rustc_legacy_const_generics(1)] | 1741 | #[rustc_legacy_const_generics(1)] |
| 1742 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1742 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1743 | pub unsafe fn lsx_vsrlri_b<const IMM3: u32>(a: v16i8) -> v16i8 { | 1743 | pub fn lsx_vsrlri_b<const IMM3: u32>(a: v16i8) -> v16i8 { |
| 1744 | static_assert_uimm_bits!(IMM3, 3); | 1744 | static_assert_uimm_bits!(IMM3, 3); |
| 1745 | __lsx_vsrlri_b(a, IMM3) | 1745 | unsafe { __lsx_vsrlri_b(a, IMM3) } |
| 1746 | } | 1746 | } |
| 1747 | 1747 | ||
| 1748 | #[inline] | 1748 | #[inline] |
| 1749 | #[target_feature(enable = "lsx")] | 1749 | #[target_feature(enable = "lsx")] |
| 1750 | #[rustc_legacy_const_generics(1)] | 1750 | #[rustc_legacy_const_generics(1)] |
| 1751 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1751 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1752 | pub unsafe fn lsx_vsrlri_h<const IMM4: u32>(a: v8i16) -> v8i16 { | 1752 | pub fn lsx_vsrlri_h<const IMM4: u32>(a: v8i16) -> v8i16 { |
| 1753 | static_assert_uimm_bits!(IMM4, 4); | 1753 | static_assert_uimm_bits!(IMM4, 4); |
| 1754 | __lsx_vsrlri_h(a, IMM4) | 1754 | unsafe { __lsx_vsrlri_h(a, IMM4) } |
| 1755 | } | 1755 | } |
| 1756 | 1756 | ||
| 1757 | #[inline] | 1757 | #[inline] |
| 1758 | #[target_feature(enable = "lsx")] | 1758 | #[target_feature(enable = "lsx")] |
| 1759 | #[rustc_legacy_const_generics(1)] | 1759 | #[rustc_legacy_const_generics(1)] |
| 1760 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1760 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1761 | pub unsafe fn lsx_vsrlri_w<const IMM5: u32>(a: v4i32) -> v4i32 { | 1761 | pub fn lsx_vsrlri_w<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 1762 | static_assert_uimm_bits!(IMM5, 5); | 1762 | static_assert_uimm_bits!(IMM5, 5); |
| 1763 | __lsx_vsrlri_w(a, IMM5) | 1763 | unsafe { __lsx_vsrlri_w(a, IMM5) } |
| 1764 | } | 1764 | } |
| 1765 | 1765 | ||
| 1766 | #[inline] | 1766 | #[inline] |
| 1767 | #[target_feature(enable = "lsx")] | 1767 | #[target_feature(enable = "lsx")] |
| 1768 | #[rustc_legacy_const_generics(1)] | 1768 | #[rustc_legacy_const_generics(1)] |
| 1769 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1769 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1770 | pub unsafe fn lsx_vsrlri_d<const IMM6: u32>(a: v2i64) -> v2i64 { | 1770 | pub fn lsx_vsrlri_d<const IMM6: u32>(a: v2i64) -> v2i64 { |
| 1771 | static_assert_uimm_bits!(IMM6, 6); | 1771 | static_assert_uimm_bits!(IMM6, 6); |
| 1772 | __lsx_vsrlri_d(a, IMM6) | 1772 | unsafe { __lsx_vsrlri_d(a, IMM6) } |
| 1773 | } | 1773 | } |
| 1774 | 1774 | ||
| 1775 | #[inline] | 1775 | #[inline] |
| 1776 | #[target_feature(enable = "lsx")] | 1776 | #[target_feature(enable = "lsx")] |
| 1777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1778 | pub unsafe fn lsx_vbitclr_b(a: v16u8, b: v16u8) -> v16u8 { | 1778 | pub fn lsx_vbitclr_b(a: v16u8, b: v16u8) -> v16u8 { |
| 1779 | __lsx_vbitclr_b(a, b) | 1779 | unsafe { __lsx_vbitclr_b(a, b) } |
| 1780 | } | 1780 | } |
| 1781 | 1781 | ||
| 1782 | #[inline] | 1782 | #[inline] |
| 1783 | #[target_feature(enable = "lsx")] | 1783 | #[target_feature(enable = "lsx")] |
| 1784 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1784 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1785 | pub unsafe fn lsx_vbitclr_h(a: v8u16, b: v8u16) -> v8u16 { | 1785 | pub fn lsx_vbitclr_h(a: v8u16, b: v8u16) -> v8u16 { |
| 1786 | __lsx_vbitclr_h(a, b) | 1786 | unsafe { __lsx_vbitclr_h(a, b) } |
| 1787 | } | 1787 | } |
| 1788 | 1788 | ||
| 1789 | #[inline] | 1789 | #[inline] |
| 1790 | #[target_feature(enable = "lsx")] | 1790 | #[target_feature(enable = "lsx")] |
| 1791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1792 | pub unsafe fn lsx_vbitclr_w(a: v4u32, b: v4u32) -> v4u32 { | 1792 | pub fn lsx_vbitclr_w(a: v4u32, b: v4u32) -> v4u32 { |
| 1793 | __lsx_vbitclr_w(a, b) | 1793 | unsafe { __lsx_vbitclr_w(a, b) } |
| 1794 | } | 1794 | } |
| 1795 | 1795 | ||
| 1796 | #[inline] | 1796 | #[inline] |
| 1797 | #[target_feature(enable = "lsx")] | 1797 | #[target_feature(enable = "lsx")] |
| 1798 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1798 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1799 | pub unsafe fn lsx_vbitclr_d(a: v2u64, b: v2u64) -> v2u64 { | 1799 | pub fn lsx_vbitclr_d(a: v2u64, b: v2u64) -> v2u64 { |
| 1800 | __lsx_vbitclr_d(a, b) | 1800 | unsafe { __lsx_vbitclr_d(a, b) } |
| 1801 | } | 1801 | } |
| 1802 | 1802 | ||
| 1803 | #[inline] | 1803 | #[inline] |
| 1804 | #[target_feature(enable = "lsx")] | 1804 | #[target_feature(enable = "lsx")] |
| 1805 | #[rustc_legacy_const_generics(1)] | 1805 | #[rustc_legacy_const_generics(1)] |
| 1806 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1806 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1807 | pub unsafe fn lsx_vbitclri_b<const IMM3: u32>(a: v16u8) -> v16u8 { | 1807 | pub fn lsx_vbitclri_b<const IMM3: u32>(a: v16u8) -> v16u8 { |
| 1808 | static_assert_uimm_bits!(IMM3, 3); | 1808 | static_assert_uimm_bits!(IMM3, 3); |
| 1809 | __lsx_vbitclri_b(a, IMM3) | 1809 | unsafe { __lsx_vbitclri_b(a, IMM3) } |
| 1810 | } | 1810 | } |
| 1811 | 1811 | ||
| 1812 | #[inline] | 1812 | #[inline] |
| 1813 | #[target_feature(enable = "lsx")] | 1813 | #[target_feature(enable = "lsx")] |
| 1814 | #[rustc_legacy_const_generics(1)] | 1814 | #[rustc_legacy_const_generics(1)] |
| 1815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1816 | pub unsafe fn lsx_vbitclri_h<const IMM4: u32>(a: v8u16) -> v8u16 { | 1816 | pub fn lsx_vbitclri_h<const IMM4: u32>(a: v8u16) -> v8u16 { |
| 1817 | static_assert_uimm_bits!(IMM4, 4); | 1817 | static_assert_uimm_bits!(IMM4, 4); |
| 1818 | __lsx_vbitclri_h(a, IMM4) | 1818 | unsafe { __lsx_vbitclri_h(a, IMM4) } |
| 1819 | } | 1819 | } |
| 1820 | 1820 | ||
| 1821 | #[inline] | 1821 | #[inline] |
| 1822 | #[target_feature(enable = "lsx")] | 1822 | #[target_feature(enable = "lsx")] |
| 1823 | #[rustc_legacy_const_generics(1)] | 1823 | #[rustc_legacy_const_generics(1)] |
| 1824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1825 | pub unsafe fn lsx_vbitclri_w<const IMM5: u32>(a: v4u32) -> v4u32 { | 1825 | pub fn lsx_vbitclri_w<const IMM5: u32>(a: v4u32) -> v4u32 { |
| 1826 | static_assert_uimm_bits!(IMM5, 5); | 1826 | static_assert_uimm_bits!(IMM5, 5); |
| 1827 | __lsx_vbitclri_w(a, IMM5) | 1827 | unsafe { __lsx_vbitclri_w(a, IMM5) } |
| 1828 | } | 1828 | } |
| 1829 | 1829 | ||
| 1830 | #[inline] | 1830 | #[inline] |
| 1831 | #[target_feature(enable = "lsx")] | 1831 | #[target_feature(enable = "lsx")] |
| 1832 | #[rustc_legacy_const_generics(1)] | 1832 | #[rustc_legacy_const_generics(1)] |
| 1833 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1833 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1834 | pub unsafe fn lsx_vbitclri_d<const IMM6: u32>(a: v2u64) -> v2u64 { | 1834 | pub fn lsx_vbitclri_d<const IMM6: u32>(a: v2u64) -> v2u64 { |
| 1835 | static_assert_uimm_bits!(IMM6, 6); | 1835 | static_assert_uimm_bits!(IMM6, 6); |
| 1836 | __lsx_vbitclri_d(a, IMM6) | 1836 | unsafe { __lsx_vbitclri_d(a, IMM6) } |
| 1837 | } | 1837 | } |
| 1838 | 1838 | ||
| 1839 | #[inline] | 1839 | #[inline] |
| 1840 | #[target_feature(enable = "lsx")] | 1840 | #[target_feature(enable = "lsx")] |
| 1841 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1841 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1842 | pub unsafe fn lsx_vbitset_b(a: v16u8, b: v16u8) -> v16u8 { | 1842 | pub fn lsx_vbitset_b(a: v16u8, b: v16u8) -> v16u8 { |
| 1843 | __lsx_vbitset_b(a, b) | 1843 | unsafe { __lsx_vbitset_b(a, b) } |
| 1844 | } | 1844 | } |
| 1845 | 1845 | ||
| 1846 | #[inline] | 1846 | #[inline] |
| 1847 | #[target_feature(enable = "lsx")] | 1847 | #[target_feature(enable = "lsx")] |
| 1848 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1848 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1849 | pub unsafe fn lsx_vbitset_h(a: v8u16, b: v8u16) -> v8u16 { | 1849 | pub fn lsx_vbitset_h(a: v8u16, b: v8u16) -> v8u16 { |
| 1850 | __lsx_vbitset_h(a, b) | 1850 | unsafe { __lsx_vbitset_h(a, b) } |
| 1851 | } | 1851 | } |
| 1852 | 1852 | ||
| 1853 | #[inline] | 1853 | #[inline] |
| 1854 | #[target_feature(enable = "lsx")] | 1854 | #[target_feature(enable = "lsx")] |
| 1855 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1855 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1856 | pub unsafe fn lsx_vbitset_w(a: v4u32, b: v4u32) -> v4u32 { | 1856 | pub fn lsx_vbitset_w(a: v4u32, b: v4u32) -> v4u32 { |
| 1857 | __lsx_vbitset_w(a, b) | 1857 | unsafe { __lsx_vbitset_w(a, b) } |
| 1858 | } | 1858 | } |
| 1859 | 1859 | ||
| 1860 | #[inline] | 1860 | #[inline] |
| 1861 | #[target_feature(enable = "lsx")] | 1861 | #[target_feature(enable = "lsx")] |
| 1862 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1862 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1863 | pub unsafe fn lsx_vbitset_d(a: v2u64, b: v2u64) -> v2u64 { | 1863 | pub fn lsx_vbitset_d(a: v2u64, b: v2u64) -> v2u64 { |
| 1864 | __lsx_vbitset_d(a, b) | 1864 | unsafe { __lsx_vbitset_d(a, b) } |
| 1865 | } | 1865 | } |
| 1866 | 1866 | ||
| 1867 | #[inline] | 1867 | #[inline] |
| 1868 | #[target_feature(enable = "lsx")] | 1868 | #[target_feature(enable = "lsx")] |
| 1869 | #[rustc_legacy_const_generics(1)] | 1869 | #[rustc_legacy_const_generics(1)] |
| 1870 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1870 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1871 | pub unsafe fn lsx_vbitseti_b<const IMM3: u32>(a: v16u8) -> v16u8 { | 1871 | pub fn lsx_vbitseti_b<const IMM3: u32>(a: v16u8) -> v16u8 { |
| 1872 | static_assert_uimm_bits!(IMM3, 3); | 1872 | static_assert_uimm_bits!(IMM3, 3); |
| 1873 | __lsx_vbitseti_b(a, IMM3) | 1873 | unsafe { __lsx_vbitseti_b(a, IMM3) } |
| 1874 | } | 1874 | } |
| 1875 | 1875 | ||
| 1876 | #[inline] | 1876 | #[inline] |
| 1877 | #[target_feature(enable = "lsx")] | 1877 | #[target_feature(enable = "lsx")] |
| 1878 | #[rustc_legacy_const_generics(1)] | 1878 | #[rustc_legacy_const_generics(1)] |
| 1879 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1879 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1880 | pub unsafe fn lsx_vbitseti_h<const IMM4: u32>(a: v8u16) -> v8u16 { | 1880 | pub fn lsx_vbitseti_h<const IMM4: u32>(a: v8u16) -> v8u16 { |
| 1881 | static_assert_uimm_bits!(IMM4, 4); | 1881 | static_assert_uimm_bits!(IMM4, 4); |
| 1882 | __lsx_vbitseti_h(a, IMM4) | 1882 | unsafe { __lsx_vbitseti_h(a, IMM4) } |
| 1883 | } | 1883 | } |
| 1884 | 1884 | ||
| 1885 | #[inline] | 1885 | #[inline] |
| 1886 | #[target_feature(enable = "lsx")] | 1886 | #[target_feature(enable = "lsx")] |
| 1887 | #[rustc_legacy_const_generics(1)] | 1887 | #[rustc_legacy_const_generics(1)] |
| 1888 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1888 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1889 | pub unsafe fn lsx_vbitseti_w<const IMM5: u32>(a: v4u32) -> v4u32 { | 1889 | pub fn lsx_vbitseti_w<const IMM5: u32>(a: v4u32) -> v4u32 { |
| 1890 | static_assert_uimm_bits!(IMM5, 5); | 1890 | static_assert_uimm_bits!(IMM5, 5); |
| 1891 | __lsx_vbitseti_w(a, IMM5) | 1891 | unsafe { __lsx_vbitseti_w(a, IMM5) } |
| 1892 | } | 1892 | } |
| 1893 | 1893 | ||
| 1894 | #[inline] | 1894 | #[inline] |
| 1895 | #[target_feature(enable = "lsx")] | 1895 | #[target_feature(enable = "lsx")] |
| 1896 | #[rustc_legacy_const_generics(1)] | 1896 | #[rustc_legacy_const_generics(1)] |
| 1897 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1897 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1898 | pub unsafe fn lsx_vbitseti_d<const IMM6: u32>(a: v2u64) -> v2u64 { | 1898 | pub fn lsx_vbitseti_d<const IMM6: u32>(a: v2u64) -> v2u64 { |
| 1899 | static_assert_uimm_bits!(IMM6, 6); | 1899 | static_assert_uimm_bits!(IMM6, 6); |
| 1900 | __lsx_vbitseti_d(a, IMM6) | 1900 | unsafe { __lsx_vbitseti_d(a, IMM6) } |
| 1901 | } | 1901 | } |
| 1902 | 1902 | ||
| 1903 | #[inline] | 1903 | #[inline] |
| 1904 | #[target_feature(enable = "lsx")] | 1904 | #[target_feature(enable = "lsx")] |
| 1905 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1905 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1906 | pub unsafe fn lsx_vbitrev_b(a: v16u8, b: v16u8) -> v16u8 { | 1906 | pub fn lsx_vbitrev_b(a: v16u8, b: v16u8) -> v16u8 { |
| 1907 | __lsx_vbitrev_b(a, b) | 1907 | unsafe { __lsx_vbitrev_b(a, b) } |
| 1908 | } | 1908 | } |
| 1909 | 1909 | ||
| 1910 | #[inline] | 1910 | #[inline] |
| 1911 | #[target_feature(enable = "lsx")] | 1911 | #[target_feature(enable = "lsx")] |
| 1912 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1912 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1913 | pub unsafe fn lsx_vbitrev_h(a: v8u16, b: v8u16) -> v8u16 { | 1913 | pub fn lsx_vbitrev_h(a: v8u16, b: v8u16) -> v8u16 { |
| 1914 | __lsx_vbitrev_h(a, b) | 1914 | unsafe { __lsx_vbitrev_h(a, b) } |
| 1915 | } | 1915 | } |
| 1916 | 1916 | ||
| 1917 | #[inline] | 1917 | #[inline] |
| 1918 | #[target_feature(enable = "lsx")] | 1918 | #[target_feature(enable = "lsx")] |
| 1919 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1919 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1920 | pub unsafe fn lsx_vbitrev_w(a: v4u32, b: v4u32) -> v4u32 { | 1920 | pub fn lsx_vbitrev_w(a: v4u32, b: v4u32) -> v4u32 { |
| 1921 | __lsx_vbitrev_w(a, b) | 1921 | unsafe { __lsx_vbitrev_w(a, b) } |
| 1922 | } | 1922 | } |
| 1923 | 1923 | ||
| 1924 | #[inline] | 1924 | #[inline] |
| 1925 | #[target_feature(enable = "lsx")] | 1925 | #[target_feature(enable = "lsx")] |
| 1926 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1926 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1927 | pub unsafe fn lsx_vbitrev_d(a: v2u64, b: v2u64) -> v2u64 { | 1927 | pub fn lsx_vbitrev_d(a: v2u64, b: v2u64) -> v2u64 { |
| 1928 | __lsx_vbitrev_d(a, b) | 1928 | unsafe { __lsx_vbitrev_d(a, b) } |
| 1929 | } | 1929 | } |
| 1930 | 1930 | ||
| 1931 | #[inline] | 1931 | #[inline] |
| 1932 | #[target_feature(enable = "lsx")] | 1932 | #[target_feature(enable = "lsx")] |
| 1933 | #[rustc_legacy_const_generics(1)] | 1933 | #[rustc_legacy_const_generics(1)] |
| 1934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1935 | pub unsafe fn lsx_vbitrevi_b<const IMM3: u32>(a: v16u8) -> v16u8 { | 1935 | pub fn lsx_vbitrevi_b<const IMM3: u32>(a: v16u8) -> v16u8 { |
| 1936 | static_assert_uimm_bits!(IMM3, 3); | 1936 | static_assert_uimm_bits!(IMM3, 3); |
| 1937 | __lsx_vbitrevi_b(a, IMM3) | 1937 | unsafe { __lsx_vbitrevi_b(a, IMM3) } |
| 1938 | } | 1938 | } |
| 1939 | 1939 | ||
| 1940 | #[inline] | 1940 | #[inline] |
| 1941 | #[target_feature(enable = "lsx")] | 1941 | #[target_feature(enable = "lsx")] |
| 1942 | #[rustc_legacy_const_generics(1)] | 1942 | #[rustc_legacy_const_generics(1)] |
| 1943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1944 | pub unsafe fn lsx_vbitrevi_h<const IMM4: u32>(a: v8u16) -> v8u16 { | 1944 | pub fn lsx_vbitrevi_h<const IMM4: u32>(a: v8u16) -> v8u16 { |
| 1945 | static_assert_uimm_bits!(IMM4, 4); | 1945 | static_assert_uimm_bits!(IMM4, 4); |
| 1946 | __lsx_vbitrevi_h(a, IMM4) | 1946 | unsafe { __lsx_vbitrevi_h(a, IMM4) } |
| 1947 | } | 1947 | } |
| 1948 | 1948 | ||
| 1949 | #[inline] | 1949 | #[inline] |
| 1950 | #[target_feature(enable = "lsx")] | 1950 | #[target_feature(enable = "lsx")] |
| 1951 | #[rustc_legacy_const_generics(1)] | 1951 | #[rustc_legacy_const_generics(1)] |
| 1952 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1952 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1953 | pub unsafe fn lsx_vbitrevi_w<const IMM5: u32>(a: v4u32) -> v4u32 { | 1953 | pub fn lsx_vbitrevi_w<const IMM5: u32>(a: v4u32) -> v4u32 { |
| 1954 | static_assert_uimm_bits!(IMM5, 5); | 1954 | static_assert_uimm_bits!(IMM5, 5); |
| 1955 | __lsx_vbitrevi_w(a, IMM5) | 1955 | unsafe { __lsx_vbitrevi_w(a, IMM5) } |
| 1956 | } | 1956 | } |
| 1957 | 1957 | ||
| 1958 | #[inline] | 1958 | #[inline] |
| 1959 | #[target_feature(enable = "lsx")] | 1959 | #[target_feature(enable = "lsx")] |
| 1960 | #[rustc_legacy_const_generics(1)] | 1960 | #[rustc_legacy_const_generics(1)] |
| 1961 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1961 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1962 | pub unsafe fn lsx_vbitrevi_d<const IMM6: u32>(a: v2u64) -> v2u64 { | 1962 | pub fn lsx_vbitrevi_d<const IMM6: u32>(a: v2u64) -> v2u64 { |
| 1963 | static_assert_uimm_bits!(IMM6, 6); | 1963 | static_assert_uimm_bits!(IMM6, 6); |
| 1964 | __lsx_vbitrevi_d(a, IMM6) | 1964 | unsafe { __lsx_vbitrevi_d(a, IMM6) } |
| 1965 | } | 1965 | } |
| 1966 | 1966 | ||
| 1967 | #[inline] | 1967 | #[inline] |
| 1968 | #[target_feature(enable = "lsx")] | 1968 | #[target_feature(enable = "lsx")] |
| 1969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1970 | pub unsafe fn lsx_vadd_b(a: v16i8, b: v16i8) -> v16i8 { | 1970 | pub fn lsx_vadd_b(a: v16i8, b: v16i8) -> v16i8 { |
| 1971 | __lsx_vadd_b(a, b) | 1971 | unsafe { __lsx_vadd_b(a, b) } |
| 1972 | } | 1972 | } |
| 1973 | 1973 | ||
| 1974 | #[inline] | 1974 | #[inline] |
| 1975 | #[target_feature(enable = "lsx")] | 1975 | #[target_feature(enable = "lsx")] |
| 1976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1977 | pub unsafe fn lsx_vadd_h(a: v8i16, b: v8i16) -> v8i16 { | 1977 | pub fn lsx_vadd_h(a: v8i16, b: v8i16) -> v8i16 { |
| 1978 | __lsx_vadd_h(a, b) | 1978 | unsafe { __lsx_vadd_h(a, b) } |
| 1979 | } | 1979 | } |
| 1980 | 1980 | ||
| 1981 | #[inline] | 1981 | #[inline] |
| 1982 | #[target_feature(enable = "lsx")] | 1982 | #[target_feature(enable = "lsx")] |
| 1983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1984 | pub unsafe fn lsx_vadd_w(a: v4i32, b: v4i32) -> v4i32 { | 1984 | pub fn lsx_vadd_w(a: v4i32, b: v4i32) -> v4i32 { |
| 1985 | __lsx_vadd_w(a, b) | 1985 | unsafe { __lsx_vadd_w(a, b) } |
| 1986 | } | 1986 | } |
| 1987 | 1987 | ||
| 1988 | #[inline] | 1988 | #[inline] |
| 1989 | #[target_feature(enable = "lsx")] | 1989 | #[target_feature(enable = "lsx")] |
| 1990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1991 | pub unsafe fn lsx_vadd_d(a: v2i64, b: v2i64) -> v2i64 { | 1991 | pub fn lsx_vadd_d(a: v2i64, b: v2i64) -> v2i64 { |
| 1992 | __lsx_vadd_d(a, b) | 1992 | unsafe { __lsx_vadd_d(a, b) } |
| 1993 | } | 1993 | } |
| 1994 | 1994 | ||
| 1995 | #[inline] | 1995 | #[inline] |
| 1996 | #[target_feature(enable = "lsx")] | 1996 | #[target_feature(enable = "lsx")] |
| 1997 | #[rustc_legacy_const_generics(1)] | 1997 | #[rustc_legacy_const_generics(1)] |
| 1998 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 1998 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 1999 | pub unsafe fn lsx_vaddi_bu<const IMM5: u32>(a: v16i8) -> v16i8 { | 1999 | pub fn lsx_vaddi_bu<const IMM5: u32>(a: v16i8) -> v16i8 { |
| 2000 | static_assert_uimm_bits!(IMM5, 5); | 2000 | static_assert_uimm_bits!(IMM5, 5); |
| 2001 | __lsx_vaddi_bu(a, IMM5) | 2001 | unsafe { __lsx_vaddi_bu(a, IMM5) } |
| 2002 | } | 2002 | } |
| 2003 | 2003 | ||
| 2004 | #[inline] | 2004 | #[inline] |
| 2005 | #[target_feature(enable = "lsx")] | 2005 | #[target_feature(enable = "lsx")] |
| 2006 | #[rustc_legacy_const_generics(1)] | 2006 | #[rustc_legacy_const_generics(1)] |
| 2007 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2007 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2008 | pub unsafe fn lsx_vaddi_hu<const IMM5: u32>(a: v8i16) -> v8i16 { | 2008 | pub fn lsx_vaddi_hu<const IMM5: u32>(a: v8i16) -> v8i16 { |
| 2009 | static_assert_uimm_bits!(IMM5, 5); | 2009 | static_assert_uimm_bits!(IMM5, 5); |
| 2010 | __lsx_vaddi_hu(a, IMM5) | 2010 | unsafe { __lsx_vaddi_hu(a, IMM5) } |
| 2011 | } | 2011 | } |
| 2012 | 2012 | ||
| 2013 | #[inline] | 2013 | #[inline] |
| 2014 | #[target_feature(enable = "lsx")] | 2014 | #[target_feature(enable = "lsx")] |
| 2015 | #[rustc_legacy_const_generics(1)] | 2015 | #[rustc_legacy_const_generics(1)] |
| 2016 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2016 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2017 | pub unsafe fn lsx_vaddi_wu<const IMM5: u32>(a: v4i32) -> v4i32 { | 2017 | pub fn lsx_vaddi_wu<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 2018 | static_assert_uimm_bits!(IMM5, 5); | 2018 | static_assert_uimm_bits!(IMM5, 5); |
| 2019 | __lsx_vaddi_wu(a, IMM5) | 2019 | unsafe { __lsx_vaddi_wu(a, IMM5) } |
| 2020 | } | 2020 | } |
| 2021 | 2021 | ||
| 2022 | #[inline] | 2022 | #[inline] |
| 2023 | #[target_feature(enable = "lsx")] | 2023 | #[target_feature(enable = "lsx")] |
| 2024 | #[rustc_legacy_const_generics(1)] | 2024 | #[rustc_legacy_const_generics(1)] |
| 2025 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2025 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2026 | pub unsafe fn lsx_vaddi_du<const IMM5: u32>(a: v2i64) -> v2i64 { | 2026 | pub fn lsx_vaddi_du<const IMM5: u32>(a: v2i64) -> v2i64 { |
| 2027 | static_assert_uimm_bits!(IMM5, 5); | 2027 | static_assert_uimm_bits!(IMM5, 5); |
| 2028 | __lsx_vaddi_du(a, IMM5) | 2028 | unsafe { __lsx_vaddi_du(a, IMM5) } |
| 2029 | } | 2029 | } |
| 2030 | 2030 | ||
| 2031 | #[inline] | 2031 | #[inline] |
| 2032 | #[target_feature(enable = "lsx")] | 2032 | #[target_feature(enable = "lsx")] |
| 2033 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2033 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2034 | pub unsafe fn lsx_vsub_b(a: v16i8, b: v16i8) -> v16i8 { | 2034 | pub fn lsx_vsub_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2035 | __lsx_vsub_b(a, b) | 2035 | unsafe { __lsx_vsub_b(a, b) } |
| 2036 | } | 2036 | } |
| 2037 | 2037 | ||
| 2038 | #[inline] | 2038 | #[inline] |
| 2039 | #[target_feature(enable = "lsx")] | 2039 | #[target_feature(enable = "lsx")] |
| 2040 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2040 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2041 | pub unsafe fn lsx_vsub_h(a: v8i16, b: v8i16) -> v8i16 { | 2041 | pub fn lsx_vsub_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2042 | __lsx_vsub_h(a, b) | 2042 | unsafe { __lsx_vsub_h(a, b) } |
| 2043 | } | 2043 | } |
| 2044 | 2044 | ||
| 2045 | #[inline] | 2045 | #[inline] |
| 2046 | #[target_feature(enable = "lsx")] | 2046 | #[target_feature(enable = "lsx")] |
| 2047 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2047 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2048 | pub unsafe fn lsx_vsub_w(a: v4i32, b: v4i32) -> v4i32 { | 2048 | pub fn lsx_vsub_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2049 | __lsx_vsub_w(a, b) | 2049 | unsafe { __lsx_vsub_w(a, b) } |
| 2050 | } | 2050 | } |
| 2051 | 2051 | ||
| 2052 | #[inline] | 2052 | #[inline] |
| 2053 | #[target_feature(enable = "lsx")] | 2053 | #[target_feature(enable = "lsx")] |
| 2054 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2054 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2055 | pub unsafe fn lsx_vsub_d(a: v2i64, b: v2i64) -> v2i64 { | 2055 | pub fn lsx_vsub_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2056 | __lsx_vsub_d(a, b) | 2056 | unsafe { __lsx_vsub_d(a, b) } |
| 2057 | } | 2057 | } |
| 2058 | 2058 | ||
| 2059 | #[inline] | 2059 | #[inline] |
| 2060 | #[target_feature(enable = "lsx")] | 2060 | #[target_feature(enable = "lsx")] |
| 2061 | #[rustc_legacy_const_generics(1)] | 2061 | #[rustc_legacy_const_generics(1)] |
| 2062 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2062 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2063 | pub unsafe fn lsx_vsubi_bu<const IMM5: u32>(a: v16i8) -> v16i8 { | 2063 | pub fn lsx_vsubi_bu<const IMM5: u32>(a: v16i8) -> v16i8 { |
| 2064 | static_assert_uimm_bits!(IMM5, 5); | 2064 | static_assert_uimm_bits!(IMM5, 5); |
| 2065 | __lsx_vsubi_bu(a, IMM5) | 2065 | unsafe { __lsx_vsubi_bu(a, IMM5) } |
| 2066 | } | 2066 | } |
| 2067 | 2067 | ||
| 2068 | #[inline] | 2068 | #[inline] |
| 2069 | #[target_feature(enable = "lsx")] | 2069 | #[target_feature(enable = "lsx")] |
| 2070 | #[rustc_legacy_const_generics(1)] | 2070 | #[rustc_legacy_const_generics(1)] |
| 2071 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2071 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2072 | pub unsafe fn lsx_vsubi_hu<const IMM5: u32>(a: v8i16) -> v8i16 { | 2072 | pub fn lsx_vsubi_hu<const IMM5: u32>(a: v8i16) -> v8i16 { |
| 2073 | static_assert_uimm_bits!(IMM5, 5); | 2073 | static_assert_uimm_bits!(IMM5, 5); |
| 2074 | __lsx_vsubi_hu(a, IMM5) | 2074 | unsafe { __lsx_vsubi_hu(a, IMM5) } |
| 2075 | } | 2075 | } |
| 2076 | 2076 | ||
| 2077 | #[inline] | 2077 | #[inline] |
| 2078 | #[target_feature(enable = "lsx")] | 2078 | #[target_feature(enable = "lsx")] |
| 2079 | #[rustc_legacy_const_generics(1)] | 2079 | #[rustc_legacy_const_generics(1)] |
| 2080 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2080 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2081 | pub unsafe fn lsx_vsubi_wu<const IMM5: u32>(a: v4i32) -> v4i32 { | 2081 | pub fn lsx_vsubi_wu<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 2082 | static_assert_uimm_bits!(IMM5, 5); | 2082 | static_assert_uimm_bits!(IMM5, 5); |
| 2083 | __lsx_vsubi_wu(a, IMM5) | 2083 | unsafe { __lsx_vsubi_wu(a, IMM5) } |
| 2084 | } | 2084 | } |
| 2085 | 2085 | ||
| 2086 | #[inline] | 2086 | #[inline] |
| 2087 | #[target_feature(enable = "lsx")] | 2087 | #[target_feature(enable = "lsx")] |
| 2088 | #[rustc_legacy_const_generics(1)] | 2088 | #[rustc_legacy_const_generics(1)] |
| 2089 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2089 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2090 | pub unsafe fn lsx_vsubi_du<const IMM5: u32>(a: v2i64) -> v2i64 { | 2090 | pub fn lsx_vsubi_du<const IMM5: u32>(a: v2i64) -> v2i64 { |
| 2091 | static_assert_uimm_bits!(IMM5, 5); | 2091 | static_assert_uimm_bits!(IMM5, 5); |
| 2092 | __lsx_vsubi_du(a, IMM5) | 2092 | unsafe { __lsx_vsubi_du(a, IMM5) } |
| 2093 | } | 2093 | } |
| 2094 | 2094 | ||
| 2095 | #[inline] | 2095 | #[inline] |
| 2096 | #[target_feature(enable = "lsx")] | 2096 | #[target_feature(enable = "lsx")] |
| 2097 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2097 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2098 | pub unsafe fn lsx_vmax_b(a: v16i8, b: v16i8) -> v16i8 { | 2098 | pub fn lsx_vmax_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2099 | __lsx_vmax_b(a, b) | 2099 | unsafe { __lsx_vmax_b(a, b) } |
| 2100 | } | 2100 | } |
| 2101 | 2101 | ||
| 2102 | #[inline] | 2102 | #[inline] |
| 2103 | #[target_feature(enable = "lsx")] | 2103 | #[target_feature(enable = "lsx")] |
| 2104 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2104 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2105 | pub unsafe fn lsx_vmax_h(a: v8i16, b: v8i16) -> v8i16 { | 2105 | pub fn lsx_vmax_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2106 | __lsx_vmax_h(a, b) | 2106 | unsafe { __lsx_vmax_h(a, b) } |
| 2107 | } | 2107 | } |
| 2108 | 2108 | ||
| 2109 | #[inline] | 2109 | #[inline] |
| 2110 | #[target_feature(enable = "lsx")] | 2110 | #[target_feature(enable = "lsx")] |
| 2111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2111 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2112 | pub unsafe fn lsx_vmax_w(a: v4i32, b: v4i32) -> v4i32 { | 2112 | pub fn lsx_vmax_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2113 | __lsx_vmax_w(a, b) | 2113 | unsafe { __lsx_vmax_w(a, b) } |
| 2114 | } | 2114 | } |
| 2115 | 2115 | ||
| 2116 | #[inline] | 2116 | #[inline] |
| 2117 | #[target_feature(enable = "lsx")] | 2117 | #[target_feature(enable = "lsx")] |
| 2118 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2118 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2119 | pub unsafe fn lsx_vmax_d(a: v2i64, b: v2i64) -> v2i64 { | 2119 | pub fn lsx_vmax_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2120 | __lsx_vmax_d(a, b) | 2120 | unsafe { __lsx_vmax_d(a, b) } |
| 2121 | } | 2121 | } |
| 2122 | 2122 | ||
| 2123 | #[inline] | 2123 | #[inline] |
| 2124 | #[target_feature(enable = "lsx")] | 2124 | #[target_feature(enable = "lsx")] |
| 2125 | #[rustc_legacy_const_generics(1)] | 2125 | #[rustc_legacy_const_generics(1)] |
| 2126 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2126 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2127 | pub unsafe fn lsx_vmaxi_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { | 2127 | pub fn lsx_vmaxi_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { |
| 2128 | static_assert_simm_bits!(IMM_S5, 5); | 2128 | static_assert_simm_bits!(IMM_S5, 5); |
| 2129 | __lsx_vmaxi_b(a, IMM_S5) | 2129 | unsafe { __lsx_vmaxi_b(a, IMM_S5) } |
| 2130 | } | 2130 | } |
| 2131 | 2131 | ||
| 2132 | #[inline] | 2132 | #[inline] |
| 2133 | #[target_feature(enable = "lsx")] | 2133 | #[target_feature(enable = "lsx")] |
| 2134 | #[rustc_legacy_const_generics(1)] | 2134 | #[rustc_legacy_const_generics(1)] |
| 2135 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2135 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2136 | pub unsafe fn lsx_vmaxi_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { | 2136 | pub fn lsx_vmaxi_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { |
| 2137 | static_assert_simm_bits!(IMM_S5, 5); | 2137 | static_assert_simm_bits!(IMM_S5, 5); |
| 2138 | __lsx_vmaxi_h(a, IMM_S5) | 2138 | unsafe { __lsx_vmaxi_h(a, IMM_S5) } |
| 2139 | } | 2139 | } |
| 2140 | 2140 | ||
| 2141 | #[inline] | 2141 | #[inline] |
| 2142 | #[target_feature(enable = "lsx")] | 2142 | #[target_feature(enable = "lsx")] |
| 2143 | #[rustc_legacy_const_generics(1)] | 2143 | #[rustc_legacy_const_generics(1)] |
| 2144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2145 | pub unsafe fn lsx_vmaxi_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { | 2145 | pub fn lsx_vmaxi_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { |
| 2146 | static_assert_simm_bits!(IMM_S5, 5); | 2146 | static_assert_simm_bits!(IMM_S5, 5); |
| 2147 | __lsx_vmaxi_w(a, IMM_S5) | 2147 | unsafe { __lsx_vmaxi_w(a, IMM_S5) } |
| 2148 | } | 2148 | } |
| 2149 | 2149 | ||
| 2150 | #[inline] | 2150 | #[inline] |
| 2151 | #[target_feature(enable = "lsx")] | 2151 | #[target_feature(enable = "lsx")] |
| 2152 | #[rustc_legacy_const_generics(1)] | 2152 | #[rustc_legacy_const_generics(1)] |
| 2153 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2153 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2154 | pub unsafe fn lsx_vmaxi_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { | 2154 | pub fn lsx_vmaxi_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { |
| 2155 | static_assert_simm_bits!(IMM_S5, 5); | 2155 | static_assert_simm_bits!(IMM_S5, 5); |
| 2156 | __lsx_vmaxi_d(a, IMM_S5) | 2156 | unsafe { __lsx_vmaxi_d(a, IMM_S5) } |
| 2157 | } | 2157 | } |
| 2158 | 2158 | ||
| 2159 | #[inline] | 2159 | #[inline] |
| 2160 | #[target_feature(enable = "lsx")] | 2160 | #[target_feature(enable = "lsx")] |
| 2161 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2161 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2162 | pub unsafe fn lsx_vmax_bu(a: v16u8, b: v16u8) -> v16u8 { | 2162 | pub fn lsx_vmax_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 2163 | __lsx_vmax_bu(a, b) | 2163 | unsafe { __lsx_vmax_bu(a, b) } |
| 2164 | } | 2164 | } |
| 2165 | 2165 | ||
| 2166 | #[inline] | 2166 | #[inline] |
| 2167 | #[target_feature(enable = "lsx")] | 2167 | #[target_feature(enable = "lsx")] |
| 2168 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2168 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2169 | pub unsafe fn lsx_vmax_hu(a: v8u16, b: v8u16) -> v8u16 { | 2169 | pub fn lsx_vmax_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 2170 | __lsx_vmax_hu(a, b) | 2170 | unsafe { __lsx_vmax_hu(a, b) } |
| 2171 | } | 2171 | } |
| 2172 | 2172 | ||
| 2173 | #[inline] | 2173 | #[inline] |
| 2174 | #[target_feature(enable = "lsx")] | 2174 | #[target_feature(enable = "lsx")] |
| 2175 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2175 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2176 | pub unsafe fn lsx_vmax_wu(a: v4u32, b: v4u32) -> v4u32 { | 2176 | pub fn lsx_vmax_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 2177 | __lsx_vmax_wu(a, b) | 2177 | unsafe { __lsx_vmax_wu(a, b) } |
| 2178 | } | 2178 | } |
| 2179 | 2179 | ||
| 2180 | #[inline] | 2180 | #[inline] |
| 2181 | #[target_feature(enable = "lsx")] | 2181 | #[target_feature(enable = "lsx")] |
| 2182 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2182 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2183 | pub unsafe fn lsx_vmax_du(a: v2u64, b: v2u64) -> v2u64 { | 2183 | pub fn lsx_vmax_du(a: v2u64, b: v2u64) -> v2u64 { |
| 2184 | __lsx_vmax_du(a, b) | 2184 | unsafe { __lsx_vmax_du(a, b) } |
| 2185 | } | 2185 | } |
| 2186 | 2186 | ||
| 2187 | #[inline] | 2187 | #[inline] |
| 2188 | #[target_feature(enable = "lsx")] | 2188 | #[target_feature(enable = "lsx")] |
| 2189 | #[rustc_legacy_const_generics(1)] | 2189 | #[rustc_legacy_const_generics(1)] |
| 2190 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2190 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2191 | pub unsafe fn lsx_vmaxi_bu<const IMM5: u32>(a: v16u8) -> v16u8 { | 2191 | pub fn lsx_vmaxi_bu<const IMM5: u32>(a: v16u8) -> v16u8 { |
| 2192 | static_assert_uimm_bits!(IMM5, 5); | 2192 | static_assert_uimm_bits!(IMM5, 5); |
| 2193 | __lsx_vmaxi_bu(a, IMM5) | 2193 | unsafe { __lsx_vmaxi_bu(a, IMM5) } |
| 2194 | } | 2194 | } |
| 2195 | 2195 | ||
| 2196 | #[inline] | 2196 | #[inline] |
| 2197 | #[target_feature(enable = "lsx")] | 2197 | #[target_feature(enable = "lsx")] |
| 2198 | #[rustc_legacy_const_generics(1)] | 2198 | #[rustc_legacy_const_generics(1)] |
| 2199 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2199 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2200 | pub unsafe fn lsx_vmaxi_hu<const IMM5: u32>(a: v8u16) -> v8u16 { | 2200 | pub fn lsx_vmaxi_hu<const IMM5: u32>(a: v8u16) -> v8u16 { |
| 2201 | static_assert_uimm_bits!(IMM5, 5); | 2201 | static_assert_uimm_bits!(IMM5, 5); |
| 2202 | __lsx_vmaxi_hu(a, IMM5) | 2202 | unsafe { __lsx_vmaxi_hu(a, IMM5) } |
| 2203 | } | 2203 | } |
| 2204 | 2204 | ||
| 2205 | #[inline] | 2205 | #[inline] |
| 2206 | #[target_feature(enable = "lsx")] | 2206 | #[target_feature(enable = "lsx")] |
| 2207 | #[rustc_legacy_const_generics(1)] | 2207 | #[rustc_legacy_const_generics(1)] |
| 2208 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2208 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2209 | pub unsafe fn lsx_vmaxi_wu<const IMM5: u32>(a: v4u32) -> v4u32 { | 2209 | pub fn lsx_vmaxi_wu<const IMM5: u32>(a: v4u32) -> v4u32 { |
| 2210 | static_assert_uimm_bits!(IMM5, 5); | 2210 | static_assert_uimm_bits!(IMM5, 5); |
| 2211 | __lsx_vmaxi_wu(a, IMM5) | 2211 | unsafe { __lsx_vmaxi_wu(a, IMM5) } |
| 2212 | } | 2212 | } |
| 2213 | 2213 | ||
| 2214 | #[inline] | 2214 | #[inline] |
| 2215 | #[target_feature(enable = "lsx")] | 2215 | #[target_feature(enable = "lsx")] |
| 2216 | #[rustc_legacy_const_generics(1)] | 2216 | #[rustc_legacy_const_generics(1)] |
| 2217 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2217 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2218 | pub unsafe fn lsx_vmaxi_du<const IMM5: u32>(a: v2u64) -> v2u64 { | 2218 | pub fn lsx_vmaxi_du<const IMM5: u32>(a: v2u64) -> v2u64 { |
| 2219 | static_assert_uimm_bits!(IMM5, 5); | 2219 | static_assert_uimm_bits!(IMM5, 5); |
| 2220 | __lsx_vmaxi_du(a, IMM5) | 2220 | unsafe { __lsx_vmaxi_du(a, IMM5) } |
| 2221 | } | 2221 | } |
| 2222 | 2222 | ||
| 2223 | #[inline] | 2223 | #[inline] |
| 2224 | #[target_feature(enable = "lsx")] | 2224 | #[target_feature(enable = "lsx")] |
| 2225 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2225 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2226 | pub unsafe fn lsx_vmin_b(a: v16i8, b: v16i8) -> v16i8 { | 2226 | pub fn lsx_vmin_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2227 | __lsx_vmin_b(a, b) | 2227 | unsafe { __lsx_vmin_b(a, b) } |
| 2228 | } | 2228 | } |
| 2229 | 2229 | ||
| 2230 | #[inline] | 2230 | #[inline] |
| 2231 | #[target_feature(enable = "lsx")] | 2231 | #[target_feature(enable = "lsx")] |
| 2232 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2232 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2233 | pub unsafe fn lsx_vmin_h(a: v8i16, b: v8i16) -> v8i16 { | 2233 | pub fn lsx_vmin_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2234 | __lsx_vmin_h(a, b) | 2234 | unsafe { __lsx_vmin_h(a, b) } |
| 2235 | } | 2235 | } |
| 2236 | 2236 | ||
| 2237 | #[inline] | 2237 | #[inline] |
| 2238 | #[target_feature(enable = "lsx")] | 2238 | #[target_feature(enable = "lsx")] |
| 2239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2240 | pub unsafe fn lsx_vmin_w(a: v4i32, b: v4i32) -> v4i32 { | 2240 | pub fn lsx_vmin_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2241 | __lsx_vmin_w(a, b) | 2241 | unsafe { __lsx_vmin_w(a, b) } |
| 2242 | } | 2242 | } |
| 2243 | 2243 | ||
| 2244 | #[inline] | 2244 | #[inline] |
| 2245 | #[target_feature(enable = "lsx")] | 2245 | #[target_feature(enable = "lsx")] |
| 2246 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2246 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2247 | pub unsafe fn lsx_vmin_d(a: v2i64, b: v2i64) -> v2i64 { | 2247 | pub fn lsx_vmin_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2248 | __lsx_vmin_d(a, b) | 2248 | unsafe { __lsx_vmin_d(a, b) } |
| 2249 | } | 2249 | } |
| 2250 | 2250 | ||
| 2251 | #[inline] | 2251 | #[inline] |
| 2252 | #[target_feature(enable = "lsx")] | 2252 | #[target_feature(enable = "lsx")] |
| 2253 | #[rustc_legacy_const_generics(1)] | 2253 | #[rustc_legacy_const_generics(1)] |
| 2254 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2254 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2255 | pub unsafe fn lsx_vmini_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { | 2255 | pub fn lsx_vmini_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { |
| 2256 | static_assert_simm_bits!(IMM_S5, 5); | 2256 | static_assert_simm_bits!(IMM_S5, 5); |
| 2257 | __lsx_vmini_b(a, IMM_S5) | 2257 | unsafe { __lsx_vmini_b(a, IMM_S5) } |
| 2258 | } | 2258 | } |
| 2259 | 2259 | ||
| 2260 | #[inline] | 2260 | #[inline] |
| 2261 | #[target_feature(enable = "lsx")] | 2261 | #[target_feature(enable = "lsx")] |
| 2262 | #[rustc_legacy_const_generics(1)] | 2262 | #[rustc_legacy_const_generics(1)] |
| 2263 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2263 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2264 | pub unsafe fn lsx_vmini_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { | 2264 | pub fn lsx_vmini_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { |
| 2265 | static_assert_simm_bits!(IMM_S5, 5); | 2265 | static_assert_simm_bits!(IMM_S5, 5); |
| 2266 | __lsx_vmini_h(a, IMM_S5) | 2266 | unsafe { __lsx_vmini_h(a, IMM_S5) } |
| 2267 | } | 2267 | } |
| 2268 | 2268 | ||
| 2269 | #[inline] | 2269 | #[inline] |
| 2270 | #[target_feature(enable = "lsx")] | 2270 | #[target_feature(enable = "lsx")] |
| 2271 | #[rustc_legacy_const_generics(1)] | 2271 | #[rustc_legacy_const_generics(1)] |
| 2272 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2272 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2273 | pub unsafe fn lsx_vmini_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { | 2273 | pub fn lsx_vmini_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { |
| 2274 | static_assert_simm_bits!(IMM_S5, 5); | 2274 | static_assert_simm_bits!(IMM_S5, 5); |
| 2275 | __lsx_vmini_w(a, IMM_S5) | 2275 | unsafe { __lsx_vmini_w(a, IMM_S5) } |
| 2276 | } | 2276 | } |
| 2277 | 2277 | ||
| 2278 | #[inline] | 2278 | #[inline] |
| 2279 | #[target_feature(enable = "lsx")] | 2279 | #[target_feature(enable = "lsx")] |
| 2280 | #[rustc_legacy_const_generics(1)] | 2280 | #[rustc_legacy_const_generics(1)] |
| 2281 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2281 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2282 | pub unsafe fn lsx_vmini_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { | 2282 | pub fn lsx_vmini_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { |
| 2283 | static_assert_simm_bits!(IMM_S5, 5); | 2283 | static_assert_simm_bits!(IMM_S5, 5); |
| 2284 | __lsx_vmini_d(a, IMM_S5) | 2284 | unsafe { __lsx_vmini_d(a, IMM_S5) } |
| 2285 | } | 2285 | } |
| 2286 | 2286 | ||
| 2287 | #[inline] | 2287 | #[inline] |
| 2288 | #[target_feature(enable = "lsx")] | 2288 | #[target_feature(enable = "lsx")] |
| 2289 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2289 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2290 | pub unsafe fn lsx_vmin_bu(a: v16u8, b: v16u8) -> v16u8 { | 2290 | pub fn lsx_vmin_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 2291 | __lsx_vmin_bu(a, b) | 2291 | unsafe { __lsx_vmin_bu(a, b) } |
| 2292 | } | 2292 | } |
| 2293 | 2293 | ||
| 2294 | #[inline] | 2294 | #[inline] |
| 2295 | #[target_feature(enable = "lsx")] | 2295 | #[target_feature(enable = "lsx")] |
| 2296 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2296 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2297 | pub unsafe fn lsx_vmin_hu(a: v8u16, b: v8u16) -> v8u16 { | 2297 | pub fn lsx_vmin_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 2298 | __lsx_vmin_hu(a, b) | 2298 | unsafe { __lsx_vmin_hu(a, b) } |
| 2299 | } | 2299 | } |
| 2300 | 2300 | ||
| 2301 | #[inline] | 2301 | #[inline] |
| 2302 | #[target_feature(enable = "lsx")] | 2302 | #[target_feature(enable = "lsx")] |
| 2303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2304 | pub unsafe fn lsx_vmin_wu(a: v4u32, b: v4u32) -> v4u32 { | 2304 | pub fn lsx_vmin_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 2305 | __lsx_vmin_wu(a, b) | 2305 | unsafe { __lsx_vmin_wu(a, b) } |
| 2306 | } | 2306 | } |
| 2307 | 2307 | ||
| 2308 | #[inline] | 2308 | #[inline] |
| 2309 | #[target_feature(enable = "lsx")] | 2309 | #[target_feature(enable = "lsx")] |
| 2310 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2310 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2311 | pub unsafe fn lsx_vmin_du(a: v2u64, b: v2u64) -> v2u64 { | 2311 | pub fn lsx_vmin_du(a: v2u64, b: v2u64) -> v2u64 { |
| 2312 | __lsx_vmin_du(a, b) | 2312 | unsafe { __lsx_vmin_du(a, b) } |
| 2313 | } | 2313 | } |
| 2314 | 2314 | ||
| 2315 | #[inline] | 2315 | #[inline] |
| 2316 | #[target_feature(enable = "lsx")] | 2316 | #[target_feature(enable = "lsx")] |
| 2317 | #[rustc_legacy_const_generics(1)] | 2317 | #[rustc_legacy_const_generics(1)] |
| 2318 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2318 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2319 | pub unsafe fn lsx_vmini_bu<const IMM5: u32>(a: v16u8) -> v16u8 { | 2319 | pub fn lsx_vmini_bu<const IMM5: u32>(a: v16u8) -> v16u8 { |
| 2320 | static_assert_uimm_bits!(IMM5, 5); | 2320 | static_assert_uimm_bits!(IMM5, 5); |
| 2321 | __lsx_vmini_bu(a, IMM5) | 2321 | unsafe { __lsx_vmini_bu(a, IMM5) } |
| 2322 | } | 2322 | } |
| 2323 | 2323 | ||
| 2324 | #[inline] | 2324 | #[inline] |
| 2325 | #[target_feature(enable = "lsx")] | 2325 | #[target_feature(enable = "lsx")] |
| 2326 | #[rustc_legacy_const_generics(1)] | 2326 | #[rustc_legacy_const_generics(1)] |
| 2327 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2327 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2328 | pub unsafe fn lsx_vmini_hu<const IMM5: u32>(a: v8u16) -> v8u16 { | 2328 | pub fn lsx_vmini_hu<const IMM5: u32>(a: v8u16) -> v8u16 { |
| 2329 | static_assert_uimm_bits!(IMM5, 5); | 2329 | static_assert_uimm_bits!(IMM5, 5); |
| 2330 | __lsx_vmini_hu(a, IMM5) | 2330 | unsafe { __lsx_vmini_hu(a, IMM5) } |
| 2331 | } | 2331 | } |
| 2332 | 2332 | ||
| 2333 | #[inline] | 2333 | #[inline] |
| 2334 | #[target_feature(enable = "lsx")] | 2334 | #[target_feature(enable = "lsx")] |
| 2335 | #[rustc_legacy_const_generics(1)] | 2335 | #[rustc_legacy_const_generics(1)] |
| 2336 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2336 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2337 | pub unsafe fn lsx_vmini_wu<const IMM5: u32>(a: v4u32) -> v4u32 { | 2337 | pub fn lsx_vmini_wu<const IMM5: u32>(a: v4u32) -> v4u32 { |
| 2338 | static_assert_uimm_bits!(IMM5, 5); | 2338 | static_assert_uimm_bits!(IMM5, 5); |
| 2339 | __lsx_vmini_wu(a, IMM5) | 2339 | unsafe { __lsx_vmini_wu(a, IMM5) } |
| 2340 | } | 2340 | } |
| 2341 | 2341 | ||
| 2342 | #[inline] | 2342 | #[inline] |
| 2343 | #[target_feature(enable = "lsx")] | 2343 | #[target_feature(enable = "lsx")] |
| 2344 | #[rustc_legacy_const_generics(1)] | 2344 | #[rustc_legacy_const_generics(1)] |
| 2345 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2345 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2346 | pub unsafe fn lsx_vmini_du<const IMM5: u32>(a: v2u64) -> v2u64 { | 2346 | pub fn lsx_vmini_du<const IMM5: u32>(a: v2u64) -> v2u64 { |
| 2347 | static_assert_uimm_bits!(IMM5, 5); | 2347 | static_assert_uimm_bits!(IMM5, 5); |
| 2348 | __lsx_vmini_du(a, IMM5) | 2348 | unsafe { __lsx_vmini_du(a, IMM5) } |
| 2349 | } | 2349 | } |
| 2350 | 2350 | ||
| 2351 | #[inline] | 2351 | #[inline] |
| 2352 | #[target_feature(enable = "lsx")] | 2352 | #[target_feature(enable = "lsx")] |
| 2353 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2353 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2354 | pub unsafe fn lsx_vseq_b(a: v16i8, b: v16i8) -> v16i8 { | 2354 | pub fn lsx_vseq_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2355 | __lsx_vseq_b(a, b) | 2355 | unsafe { __lsx_vseq_b(a, b) } |
| 2356 | } | 2356 | } |
| 2357 | 2357 | ||
| 2358 | #[inline] | 2358 | #[inline] |
| 2359 | #[target_feature(enable = "lsx")] | 2359 | #[target_feature(enable = "lsx")] |
| 2360 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2360 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2361 | pub unsafe fn lsx_vseq_h(a: v8i16, b: v8i16) -> v8i16 { | 2361 | pub fn lsx_vseq_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2362 | __lsx_vseq_h(a, b) | 2362 | unsafe { __lsx_vseq_h(a, b) } |
| 2363 | } | 2363 | } |
| 2364 | 2364 | ||
| 2365 | #[inline] | 2365 | #[inline] |
| 2366 | #[target_feature(enable = "lsx")] | 2366 | #[target_feature(enable = "lsx")] |
| 2367 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2367 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2368 | pub unsafe fn lsx_vseq_w(a: v4i32, b: v4i32) -> v4i32 { | 2368 | pub fn lsx_vseq_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2369 | __lsx_vseq_w(a, b) | 2369 | unsafe { __lsx_vseq_w(a, b) } |
| 2370 | } | 2370 | } |
| 2371 | 2371 | ||
| 2372 | #[inline] | 2372 | #[inline] |
| 2373 | #[target_feature(enable = "lsx")] | 2373 | #[target_feature(enable = "lsx")] |
| 2374 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2374 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2375 | pub unsafe fn lsx_vseq_d(a: v2i64, b: v2i64) -> v2i64 { | 2375 | pub fn lsx_vseq_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2376 | __lsx_vseq_d(a, b) | 2376 | unsafe { __lsx_vseq_d(a, b) } |
| 2377 | } | 2377 | } |
| 2378 | 2378 | ||
| 2379 | #[inline] | 2379 | #[inline] |
| 2380 | #[target_feature(enable = "lsx")] | 2380 | #[target_feature(enable = "lsx")] |
| 2381 | #[rustc_legacy_const_generics(1)] | 2381 | #[rustc_legacy_const_generics(1)] |
| 2382 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2382 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2383 | pub unsafe fn lsx_vseqi_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { | 2383 | pub fn lsx_vseqi_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { |
| 2384 | static_assert_simm_bits!(IMM_S5, 5); | 2384 | static_assert_simm_bits!(IMM_S5, 5); |
| 2385 | __lsx_vseqi_b(a, IMM_S5) | 2385 | unsafe { __lsx_vseqi_b(a, IMM_S5) } |
| 2386 | } | 2386 | } |
| 2387 | 2387 | ||
| 2388 | #[inline] | 2388 | #[inline] |
| 2389 | #[target_feature(enable = "lsx")] | 2389 | #[target_feature(enable = "lsx")] |
| 2390 | #[rustc_legacy_const_generics(1)] | 2390 | #[rustc_legacy_const_generics(1)] |
| 2391 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2391 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2392 | pub unsafe fn lsx_vseqi_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { | 2392 | pub fn lsx_vseqi_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { |
| 2393 | static_assert_simm_bits!(IMM_S5, 5); | 2393 | static_assert_simm_bits!(IMM_S5, 5); |
| 2394 | __lsx_vseqi_h(a, IMM_S5) | 2394 | unsafe { __lsx_vseqi_h(a, IMM_S5) } |
| 2395 | } | 2395 | } |
| 2396 | 2396 | ||
| 2397 | #[inline] | 2397 | #[inline] |
| 2398 | #[target_feature(enable = "lsx")] | 2398 | #[target_feature(enable = "lsx")] |
| 2399 | #[rustc_legacy_const_generics(1)] | 2399 | #[rustc_legacy_const_generics(1)] |
| 2400 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2400 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2401 | pub unsafe fn lsx_vseqi_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { | 2401 | pub fn lsx_vseqi_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { |
| 2402 | static_assert_simm_bits!(IMM_S5, 5); | 2402 | static_assert_simm_bits!(IMM_S5, 5); |
| 2403 | __lsx_vseqi_w(a, IMM_S5) | 2403 | unsafe { __lsx_vseqi_w(a, IMM_S5) } |
| 2404 | } | 2404 | } |
| 2405 | 2405 | ||
| 2406 | #[inline] | 2406 | #[inline] |
| 2407 | #[target_feature(enable = "lsx")] | 2407 | #[target_feature(enable = "lsx")] |
| 2408 | #[rustc_legacy_const_generics(1)] | 2408 | #[rustc_legacy_const_generics(1)] |
| 2409 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2409 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2410 | pub unsafe fn lsx_vseqi_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { | 2410 | pub fn lsx_vseqi_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { |
| 2411 | static_assert_simm_bits!(IMM_S5, 5); | 2411 | static_assert_simm_bits!(IMM_S5, 5); |
| 2412 | __lsx_vseqi_d(a, IMM_S5) | 2412 | unsafe { __lsx_vseqi_d(a, IMM_S5) } |
| 2413 | } | 2413 | } |
| 2414 | 2414 | ||
| 2415 | #[inline] | 2415 | #[inline] |
| 2416 | #[target_feature(enable = "lsx")] | 2416 | #[target_feature(enable = "lsx")] |
| 2417 | #[rustc_legacy_const_generics(1)] | 2417 | #[rustc_legacy_const_generics(1)] |
| 2418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2419 | pub unsafe fn lsx_vslti_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { | 2419 | pub fn lsx_vslti_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { |
| 2420 | static_assert_simm_bits!(IMM_S5, 5); | 2420 | static_assert_simm_bits!(IMM_S5, 5); |
| 2421 | __lsx_vslti_b(a, IMM_S5) | 2421 | unsafe { __lsx_vslti_b(a, IMM_S5) } |
| 2422 | } | 2422 | } |
| 2423 | 2423 | ||
| 2424 | #[inline] | 2424 | #[inline] |
| 2425 | #[target_feature(enable = "lsx")] | 2425 | #[target_feature(enable = "lsx")] |
| 2426 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2426 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2427 | pub unsafe fn lsx_vslt_b(a: v16i8, b: v16i8) -> v16i8 { | 2427 | pub fn lsx_vslt_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2428 | __lsx_vslt_b(a, b) | 2428 | unsafe { __lsx_vslt_b(a, b) } |
| 2429 | } | 2429 | } |
| 2430 | 2430 | ||
| 2431 | #[inline] | 2431 | #[inline] |
| 2432 | #[target_feature(enable = "lsx")] | 2432 | #[target_feature(enable = "lsx")] |
| 2433 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2433 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2434 | pub unsafe fn lsx_vslt_h(a: v8i16, b: v8i16) -> v8i16 { | 2434 | pub fn lsx_vslt_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2435 | __lsx_vslt_h(a, b) | 2435 | unsafe { __lsx_vslt_h(a, b) } |
| 2436 | } | 2436 | } |
| 2437 | 2437 | ||
| 2438 | #[inline] | 2438 | #[inline] |
| 2439 | #[target_feature(enable = "lsx")] | 2439 | #[target_feature(enable = "lsx")] |
| 2440 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2440 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2441 | pub unsafe fn lsx_vslt_w(a: v4i32, b: v4i32) -> v4i32 { | 2441 | pub fn lsx_vslt_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2442 | __lsx_vslt_w(a, b) | 2442 | unsafe { __lsx_vslt_w(a, b) } |
| 2443 | } | 2443 | } |
| 2444 | 2444 | ||
| 2445 | #[inline] | 2445 | #[inline] |
| 2446 | #[target_feature(enable = "lsx")] | 2446 | #[target_feature(enable = "lsx")] |
| 2447 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2447 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2448 | pub unsafe fn lsx_vslt_d(a: v2i64, b: v2i64) -> v2i64 { | 2448 | pub fn lsx_vslt_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2449 | __lsx_vslt_d(a, b) | 2449 | unsafe { __lsx_vslt_d(a, b) } |
| 2450 | } | 2450 | } |
| 2451 | 2451 | ||
| 2452 | #[inline] | 2452 | #[inline] |
| 2453 | #[target_feature(enable = "lsx")] | 2453 | #[target_feature(enable = "lsx")] |
| 2454 | #[rustc_legacy_const_generics(1)] | 2454 | #[rustc_legacy_const_generics(1)] |
| 2455 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2455 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2456 | pub unsafe fn lsx_vslti_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { | 2456 | pub fn lsx_vslti_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { |
| 2457 | static_assert_simm_bits!(IMM_S5, 5); | 2457 | static_assert_simm_bits!(IMM_S5, 5); |
| 2458 | __lsx_vslti_h(a, IMM_S5) | 2458 | unsafe { __lsx_vslti_h(a, IMM_S5) } |
| 2459 | } | 2459 | } |
| 2460 | 2460 | ||
| 2461 | #[inline] | 2461 | #[inline] |
| 2462 | #[target_feature(enable = "lsx")] | 2462 | #[target_feature(enable = "lsx")] |
| 2463 | #[rustc_legacy_const_generics(1)] | 2463 | #[rustc_legacy_const_generics(1)] |
| 2464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2465 | pub unsafe fn lsx_vslti_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { | 2465 | pub fn lsx_vslti_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { |
| 2466 | static_assert_simm_bits!(IMM_S5, 5); | 2466 | static_assert_simm_bits!(IMM_S5, 5); |
| 2467 | __lsx_vslti_w(a, IMM_S5) | 2467 | unsafe { __lsx_vslti_w(a, IMM_S5) } |
| 2468 | } | 2468 | } |
| 2469 | 2469 | ||
| 2470 | #[inline] | 2470 | #[inline] |
| 2471 | #[target_feature(enable = "lsx")] | 2471 | #[target_feature(enable = "lsx")] |
| 2472 | #[rustc_legacy_const_generics(1)] | 2472 | #[rustc_legacy_const_generics(1)] |
| 2473 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2473 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2474 | pub unsafe fn lsx_vslti_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { | 2474 | pub fn lsx_vslti_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { |
| 2475 | static_assert_simm_bits!(IMM_S5, 5); | 2475 | static_assert_simm_bits!(IMM_S5, 5); |
| 2476 | __lsx_vslti_d(a, IMM_S5) | 2476 | unsafe { __lsx_vslti_d(a, IMM_S5) } |
| 2477 | } | 2477 | } |
| 2478 | 2478 | ||
| 2479 | #[inline] | 2479 | #[inline] |
| 2480 | #[target_feature(enable = "lsx")] | 2480 | #[target_feature(enable = "lsx")] |
| 2481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2482 | pub unsafe fn lsx_vslt_bu(a: v16u8, b: v16u8) -> v16i8 { | 2482 | pub fn lsx_vslt_bu(a: v16u8, b: v16u8) -> v16i8 { |
| 2483 | __lsx_vslt_bu(a, b) | 2483 | unsafe { __lsx_vslt_bu(a, b) } |
| 2484 | } | 2484 | } |
| 2485 | 2485 | ||
| 2486 | #[inline] | 2486 | #[inline] |
| 2487 | #[target_feature(enable = "lsx")] | 2487 | #[target_feature(enable = "lsx")] |
| 2488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2489 | pub unsafe fn lsx_vslt_hu(a: v8u16, b: v8u16) -> v8i16 { | 2489 | pub fn lsx_vslt_hu(a: v8u16, b: v8u16) -> v8i16 { |
| 2490 | __lsx_vslt_hu(a, b) | 2490 | unsafe { __lsx_vslt_hu(a, b) } |
| 2491 | } | 2491 | } |
| 2492 | 2492 | ||
| 2493 | #[inline] | 2493 | #[inline] |
| 2494 | #[target_feature(enable = "lsx")] | 2494 | #[target_feature(enable = "lsx")] |
| 2495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2496 | pub unsafe fn lsx_vslt_wu(a: v4u32, b: v4u32) -> v4i32 { | 2496 | pub fn lsx_vslt_wu(a: v4u32, b: v4u32) -> v4i32 { |
| 2497 | __lsx_vslt_wu(a, b) | 2497 | unsafe { __lsx_vslt_wu(a, b) } |
| 2498 | } | 2498 | } |
| 2499 | 2499 | ||
| 2500 | #[inline] | 2500 | #[inline] |
| 2501 | #[target_feature(enable = "lsx")] | 2501 | #[target_feature(enable = "lsx")] |
| 2502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2503 | pub unsafe fn lsx_vslt_du(a: v2u64, b: v2u64) -> v2i64 { | 2503 | pub fn lsx_vslt_du(a: v2u64, b: v2u64) -> v2i64 { |
| 2504 | __lsx_vslt_du(a, b) | 2504 | unsafe { __lsx_vslt_du(a, b) } |
| 2505 | } | 2505 | } |
| 2506 | 2506 | ||
| 2507 | #[inline] | 2507 | #[inline] |
| 2508 | #[target_feature(enable = "lsx")] | 2508 | #[target_feature(enable = "lsx")] |
| 2509 | #[rustc_legacy_const_generics(1)] | 2509 | #[rustc_legacy_const_generics(1)] |
| 2510 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2510 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2511 | pub unsafe fn lsx_vslti_bu<const IMM5: u32>(a: v16u8) -> v16i8 { | 2511 | pub fn lsx_vslti_bu<const IMM5: u32>(a: v16u8) -> v16i8 { |
| 2512 | static_assert_uimm_bits!(IMM5, 5); | 2512 | static_assert_uimm_bits!(IMM5, 5); |
| 2513 | __lsx_vslti_bu(a, IMM5) | 2513 | unsafe { __lsx_vslti_bu(a, IMM5) } |
| 2514 | } | 2514 | } |
| 2515 | 2515 | ||
| 2516 | #[inline] | 2516 | #[inline] |
| 2517 | #[target_feature(enable = "lsx")] | 2517 | #[target_feature(enable = "lsx")] |
| 2518 | #[rustc_legacy_const_generics(1)] | 2518 | #[rustc_legacy_const_generics(1)] |
| 2519 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2519 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2520 | pub unsafe fn lsx_vslti_hu<const IMM5: u32>(a: v8u16) -> v8i16 { | 2520 | pub fn lsx_vslti_hu<const IMM5: u32>(a: v8u16) -> v8i16 { |
| 2521 | static_assert_uimm_bits!(IMM5, 5); | 2521 | static_assert_uimm_bits!(IMM5, 5); |
| 2522 | __lsx_vslti_hu(a, IMM5) | 2522 | unsafe { __lsx_vslti_hu(a, IMM5) } |
| 2523 | } | 2523 | } |
| 2524 | 2524 | ||
| 2525 | #[inline] | 2525 | #[inline] |
| 2526 | #[target_feature(enable = "lsx")] | 2526 | #[target_feature(enable = "lsx")] |
| 2527 | #[rustc_legacy_const_generics(1)] | 2527 | #[rustc_legacy_const_generics(1)] |
| 2528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2528 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2529 | pub unsafe fn lsx_vslti_wu<const IMM5: u32>(a: v4u32) -> v4i32 { | 2529 | pub fn lsx_vslti_wu<const IMM5: u32>(a: v4u32) -> v4i32 { |
| 2530 | static_assert_uimm_bits!(IMM5, 5); | 2530 | static_assert_uimm_bits!(IMM5, 5); |
| 2531 | __lsx_vslti_wu(a, IMM5) | 2531 | unsafe { __lsx_vslti_wu(a, IMM5) } |
| 2532 | } | 2532 | } |
| 2533 | 2533 | ||
| 2534 | #[inline] | 2534 | #[inline] |
| 2535 | #[target_feature(enable = "lsx")] | 2535 | #[target_feature(enable = "lsx")] |
| 2536 | #[rustc_legacy_const_generics(1)] | 2536 | #[rustc_legacy_const_generics(1)] |
| 2537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2538 | pub unsafe fn lsx_vslti_du<const IMM5: u32>(a: v2u64) -> v2i64 { | 2538 | pub fn lsx_vslti_du<const IMM5: u32>(a: v2u64) -> v2i64 { |
| 2539 | static_assert_uimm_bits!(IMM5, 5); | 2539 | static_assert_uimm_bits!(IMM5, 5); |
| 2540 | __lsx_vslti_du(a, IMM5) | 2540 | unsafe { __lsx_vslti_du(a, IMM5) } |
| 2541 | } | 2541 | } |
| 2542 | 2542 | ||
| 2543 | #[inline] | 2543 | #[inline] |
| 2544 | #[target_feature(enable = "lsx")] | 2544 | #[target_feature(enable = "lsx")] |
| 2545 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2545 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2546 | pub unsafe fn lsx_vsle_b(a: v16i8, b: v16i8) -> v16i8 { | 2546 | pub fn lsx_vsle_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2547 | __lsx_vsle_b(a, b) | 2547 | unsafe { __lsx_vsle_b(a, b) } |
| 2548 | } | 2548 | } |
| 2549 | 2549 | ||
| 2550 | #[inline] | 2550 | #[inline] |
| 2551 | #[target_feature(enable = "lsx")] | 2551 | #[target_feature(enable = "lsx")] |
| 2552 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2552 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2553 | pub unsafe fn lsx_vsle_h(a: v8i16, b: v8i16) -> v8i16 { | 2553 | pub fn lsx_vsle_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2554 | __lsx_vsle_h(a, b) | 2554 | unsafe { __lsx_vsle_h(a, b) } |
| 2555 | } | 2555 | } |
| 2556 | 2556 | ||
| 2557 | #[inline] | 2557 | #[inline] |
| 2558 | #[target_feature(enable = "lsx")] | 2558 | #[target_feature(enable = "lsx")] |
| 2559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2559 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2560 | pub unsafe fn lsx_vsle_w(a: v4i32, b: v4i32) -> v4i32 { | 2560 | pub fn lsx_vsle_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2561 | __lsx_vsle_w(a, b) | 2561 | unsafe { __lsx_vsle_w(a, b) } |
| 2562 | } | 2562 | } |
| 2563 | 2563 | ||
| 2564 | #[inline] | 2564 | #[inline] |
| 2565 | #[target_feature(enable = "lsx")] | 2565 | #[target_feature(enable = "lsx")] |
| 2566 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2566 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2567 | pub unsafe fn lsx_vsle_d(a: v2i64, b: v2i64) -> v2i64 { | 2567 | pub fn lsx_vsle_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2568 | __lsx_vsle_d(a, b) | 2568 | unsafe { __lsx_vsle_d(a, b) } |
| 2569 | } | 2569 | } |
| 2570 | 2570 | ||
| 2571 | #[inline] | 2571 | #[inline] |
| 2572 | #[target_feature(enable = "lsx")] | 2572 | #[target_feature(enable = "lsx")] |
| 2573 | #[rustc_legacy_const_generics(1)] | 2573 | #[rustc_legacy_const_generics(1)] |
| 2574 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2574 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2575 | pub unsafe fn lsx_vslei_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { | 2575 | pub fn lsx_vslei_b<const IMM_S5: i32>(a: v16i8) -> v16i8 { |
| 2576 | static_assert_simm_bits!(IMM_S5, 5); | 2576 | static_assert_simm_bits!(IMM_S5, 5); |
| 2577 | __lsx_vslei_b(a, IMM_S5) | 2577 | unsafe { __lsx_vslei_b(a, IMM_S5) } |
| 2578 | } | 2578 | } |
| 2579 | 2579 | ||
| 2580 | #[inline] | 2580 | #[inline] |
| 2581 | #[target_feature(enable = "lsx")] | 2581 | #[target_feature(enable = "lsx")] |
| 2582 | #[rustc_legacy_const_generics(1)] | 2582 | #[rustc_legacy_const_generics(1)] |
| 2583 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2583 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2584 | pub unsafe fn lsx_vslei_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { | 2584 | pub fn lsx_vslei_h<const IMM_S5: i32>(a: v8i16) -> v8i16 { |
| 2585 | static_assert_simm_bits!(IMM_S5, 5); | 2585 | static_assert_simm_bits!(IMM_S5, 5); |
| 2586 | __lsx_vslei_h(a, IMM_S5) | 2586 | unsafe { __lsx_vslei_h(a, IMM_S5) } |
| 2587 | } | 2587 | } |
| 2588 | 2588 | ||
| 2589 | #[inline] | 2589 | #[inline] |
| 2590 | #[target_feature(enable = "lsx")] | 2590 | #[target_feature(enable = "lsx")] |
| 2591 | #[rustc_legacy_const_generics(1)] | 2591 | #[rustc_legacy_const_generics(1)] |
| 2592 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2592 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2593 | pub unsafe fn lsx_vslei_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { | 2593 | pub fn lsx_vslei_w<const IMM_S5: i32>(a: v4i32) -> v4i32 { |
| 2594 | static_assert_simm_bits!(IMM_S5, 5); | 2594 | static_assert_simm_bits!(IMM_S5, 5); |
| 2595 | __lsx_vslei_w(a, IMM_S5) | 2595 | unsafe { __lsx_vslei_w(a, IMM_S5) } |
| 2596 | } | 2596 | } |
| 2597 | 2597 | ||
| 2598 | #[inline] | 2598 | #[inline] |
| 2599 | #[target_feature(enable = "lsx")] | 2599 | #[target_feature(enable = "lsx")] |
| 2600 | #[rustc_legacy_const_generics(1)] | 2600 | #[rustc_legacy_const_generics(1)] |
| 2601 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2601 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2602 | pub unsafe fn lsx_vslei_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { | 2602 | pub fn lsx_vslei_d<const IMM_S5: i32>(a: v2i64) -> v2i64 { |
| 2603 | static_assert_simm_bits!(IMM_S5, 5); | 2603 | static_assert_simm_bits!(IMM_S5, 5); |
| 2604 | __lsx_vslei_d(a, IMM_S5) | 2604 | unsafe { __lsx_vslei_d(a, IMM_S5) } |
| 2605 | } | 2605 | } |
| 2606 | 2606 | ||
| 2607 | #[inline] | 2607 | #[inline] |
| 2608 | #[target_feature(enable = "lsx")] | 2608 | #[target_feature(enable = "lsx")] |
| 2609 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2609 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2610 | pub unsafe fn lsx_vsle_bu(a: v16u8, b: v16u8) -> v16i8 { | 2610 | pub fn lsx_vsle_bu(a: v16u8, b: v16u8) -> v16i8 { |
| 2611 | __lsx_vsle_bu(a, b) | 2611 | unsafe { __lsx_vsle_bu(a, b) } |
| 2612 | } | 2612 | } |
| 2613 | 2613 | ||
| 2614 | #[inline] | 2614 | #[inline] |
| 2615 | #[target_feature(enable = "lsx")] | 2615 | #[target_feature(enable = "lsx")] |
| 2616 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2616 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2617 | pub unsafe fn lsx_vsle_hu(a: v8u16, b: v8u16) -> v8i16 { | 2617 | pub fn lsx_vsle_hu(a: v8u16, b: v8u16) -> v8i16 { |
| 2618 | __lsx_vsle_hu(a, b) | 2618 | unsafe { __lsx_vsle_hu(a, b) } |
| 2619 | } | 2619 | } |
| 2620 | 2620 | ||
| 2621 | #[inline] | 2621 | #[inline] |
| 2622 | #[target_feature(enable = "lsx")] | 2622 | #[target_feature(enable = "lsx")] |
| 2623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2624 | pub unsafe fn lsx_vsle_wu(a: v4u32, b: v4u32) -> v4i32 { | 2624 | pub fn lsx_vsle_wu(a: v4u32, b: v4u32) -> v4i32 { |
| 2625 | __lsx_vsle_wu(a, b) | 2625 | unsafe { __lsx_vsle_wu(a, b) } |
| 2626 | } | 2626 | } |
| 2627 | 2627 | ||
| 2628 | #[inline] | 2628 | #[inline] |
| 2629 | #[target_feature(enable = "lsx")] | 2629 | #[target_feature(enable = "lsx")] |
| 2630 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2630 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2631 | pub unsafe fn lsx_vsle_du(a: v2u64, b: v2u64) -> v2i64 { | 2631 | pub fn lsx_vsle_du(a: v2u64, b: v2u64) -> v2i64 { |
| 2632 | __lsx_vsle_du(a, b) | 2632 | unsafe { __lsx_vsle_du(a, b) } |
| 2633 | } | 2633 | } |
| 2634 | 2634 | ||
| 2635 | #[inline] | 2635 | #[inline] |
| 2636 | #[target_feature(enable = "lsx")] | 2636 | #[target_feature(enable = "lsx")] |
| 2637 | #[rustc_legacy_const_generics(1)] | 2637 | #[rustc_legacy_const_generics(1)] |
| 2638 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2638 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2639 | pub unsafe fn lsx_vslei_bu<const IMM5: u32>(a: v16u8) -> v16i8 { | 2639 | pub fn lsx_vslei_bu<const IMM5: u32>(a: v16u8) -> v16i8 { |
| 2640 | static_assert_uimm_bits!(IMM5, 5); | 2640 | static_assert_uimm_bits!(IMM5, 5); |
| 2641 | __lsx_vslei_bu(a, IMM5) | 2641 | unsafe { __lsx_vslei_bu(a, IMM5) } |
| 2642 | } | 2642 | } |
| 2643 | 2643 | ||
| 2644 | #[inline] | 2644 | #[inline] |
| 2645 | #[target_feature(enable = "lsx")] | 2645 | #[target_feature(enable = "lsx")] |
| 2646 | #[rustc_legacy_const_generics(1)] | 2646 | #[rustc_legacy_const_generics(1)] |
| 2647 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2647 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2648 | pub unsafe fn lsx_vslei_hu<const IMM5: u32>(a: v8u16) -> v8i16 { | 2648 | pub fn lsx_vslei_hu<const IMM5: u32>(a: v8u16) -> v8i16 { |
| 2649 | static_assert_uimm_bits!(IMM5, 5); | 2649 | static_assert_uimm_bits!(IMM5, 5); |
| 2650 | __lsx_vslei_hu(a, IMM5) | 2650 | unsafe { __lsx_vslei_hu(a, IMM5) } |
| 2651 | } | 2651 | } |
| 2652 | 2652 | ||
| 2653 | #[inline] | 2653 | #[inline] |
| 2654 | #[target_feature(enable = "lsx")] | 2654 | #[target_feature(enable = "lsx")] |
| 2655 | #[rustc_legacy_const_generics(1)] | 2655 | #[rustc_legacy_const_generics(1)] |
| 2656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2657 | pub unsafe fn lsx_vslei_wu<const IMM5: u32>(a: v4u32) -> v4i32 { | 2657 | pub fn lsx_vslei_wu<const IMM5: u32>(a: v4u32) -> v4i32 { |
| 2658 | static_assert_uimm_bits!(IMM5, 5); | 2658 | static_assert_uimm_bits!(IMM5, 5); |
| 2659 | __lsx_vslei_wu(a, IMM5) | 2659 | unsafe { __lsx_vslei_wu(a, IMM5) } |
| 2660 | } | 2660 | } |
| 2661 | 2661 | ||
| 2662 | #[inline] | 2662 | #[inline] |
| 2663 | #[target_feature(enable = "lsx")] | 2663 | #[target_feature(enable = "lsx")] |
| 2664 | #[rustc_legacy_const_generics(1)] | 2664 | #[rustc_legacy_const_generics(1)] |
| 2665 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2665 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2666 | pub unsafe fn lsx_vslei_du<const IMM5: u32>(a: v2u64) -> v2i64 { | 2666 | pub fn lsx_vslei_du<const IMM5: u32>(a: v2u64) -> v2i64 { |
| 2667 | static_assert_uimm_bits!(IMM5, 5); | 2667 | static_assert_uimm_bits!(IMM5, 5); |
| 2668 | __lsx_vslei_du(a, IMM5) | 2668 | unsafe { __lsx_vslei_du(a, IMM5) } |
| 2669 | } | 2669 | } |
| 2670 | 2670 | ||
| 2671 | #[inline] | 2671 | #[inline] |
| 2672 | #[target_feature(enable = "lsx")] | 2672 | #[target_feature(enable = "lsx")] |
| 2673 | #[rustc_legacy_const_generics(1)] | 2673 | #[rustc_legacy_const_generics(1)] |
| 2674 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2674 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2675 | pub unsafe fn lsx_vsat_b<const IMM3: u32>(a: v16i8) -> v16i8 { | 2675 | pub fn lsx_vsat_b<const IMM3: u32>(a: v16i8) -> v16i8 { |
| 2676 | static_assert_uimm_bits!(IMM3, 3); | 2676 | static_assert_uimm_bits!(IMM3, 3); |
| 2677 | __lsx_vsat_b(a, IMM3) | 2677 | unsafe { __lsx_vsat_b(a, IMM3) } |
| 2678 | } | 2678 | } |
| 2679 | 2679 | ||
| 2680 | #[inline] | 2680 | #[inline] |
| 2681 | #[target_feature(enable = "lsx")] | 2681 | #[target_feature(enable = "lsx")] |
| 2682 | #[rustc_legacy_const_generics(1)] | 2682 | #[rustc_legacy_const_generics(1)] |
| 2683 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2683 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2684 | pub unsafe fn lsx_vsat_h<const IMM4: u32>(a: v8i16) -> v8i16 { | 2684 | pub fn lsx_vsat_h<const IMM4: u32>(a: v8i16) -> v8i16 { |
| 2685 | static_assert_uimm_bits!(IMM4, 4); | 2685 | static_assert_uimm_bits!(IMM4, 4); |
| 2686 | __lsx_vsat_h(a, IMM4) | 2686 | unsafe { __lsx_vsat_h(a, IMM4) } |
| 2687 | } | 2687 | } |
| 2688 | 2688 | ||
| 2689 | #[inline] | 2689 | #[inline] |
| 2690 | #[target_feature(enable = "lsx")] | 2690 | #[target_feature(enable = "lsx")] |
| 2691 | #[rustc_legacy_const_generics(1)] | 2691 | #[rustc_legacy_const_generics(1)] |
| 2692 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2692 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2693 | pub unsafe fn lsx_vsat_w<const IMM5: u32>(a: v4i32) -> v4i32 { | 2693 | pub fn lsx_vsat_w<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 2694 | static_assert_uimm_bits!(IMM5, 5); | 2694 | static_assert_uimm_bits!(IMM5, 5); |
| 2695 | __lsx_vsat_w(a, IMM5) | 2695 | unsafe { __lsx_vsat_w(a, IMM5) } |
| 2696 | } | 2696 | } |
| 2697 | 2697 | ||
| 2698 | #[inline] | 2698 | #[inline] |
| 2699 | #[target_feature(enable = "lsx")] | 2699 | #[target_feature(enable = "lsx")] |
| 2700 | #[rustc_legacy_const_generics(1)] | 2700 | #[rustc_legacy_const_generics(1)] |
| 2701 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2701 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2702 | pub unsafe fn lsx_vsat_d<const IMM6: u32>(a: v2i64) -> v2i64 { | 2702 | pub fn lsx_vsat_d<const IMM6: u32>(a: v2i64) -> v2i64 { |
| 2703 | static_assert_uimm_bits!(IMM6, 6); | 2703 | static_assert_uimm_bits!(IMM6, 6); |
| 2704 | __lsx_vsat_d(a, IMM6) | 2704 | unsafe { __lsx_vsat_d(a, IMM6) } |
| 2705 | } | 2705 | } |
| 2706 | 2706 | ||
| 2707 | #[inline] | 2707 | #[inline] |
| 2708 | #[target_feature(enable = "lsx")] | 2708 | #[target_feature(enable = "lsx")] |
| 2709 | #[rustc_legacy_const_generics(1)] | 2709 | #[rustc_legacy_const_generics(1)] |
| 2710 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2710 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2711 | pub unsafe fn lsx_vsat_bu<const IMM3: u32>(a: v16u8) -> v16u8 { | 2711 | pub fn lsx_vsat_bu<const IMM3: u32>(a: v16u8) -> v16u8 { |
| 2712 | static_assert_uimm_bits!(IMM3, 3); | 2712 | static_assert_uimm_bits!(IMM3, 3); |
| 2713 | __lsx_vsat_bu(a, IMM3) | 2713 | unsafe { __lsx_vsat_bu(a, IMM3) } |
| 2714 | } | 2714 | } |
| 2715 | 2715 | ||
| 2716 | #[inline] | 2716 | #[inline] |
| 2717 | #[target_feature(enable = "lsx")] | 2717 | #[target_feature(enable = "lsx")] |
| 2718 | #[rustc_legacy_const_generics(1)] | 2718 | #[rustc_legacy_const_generics(1)] |
| 2719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2720 | pub unsafe fn lsx_vsat_hu<const IMM4: u32>(a: v8u16) -> v8u16 { | 2720 | pub fn lsx_vsat_hu<const IMM4: u32>(a: v8u16) -> v8u16 { |
| 2721 | static_assert_uimm_bits!(IMM4, 4); | 2721 | static_assert_uimm_bits!(IMM4, 4); |
| 2722 | __lsx_vsat_hu(a, IMM4) | 2722 | unsafe { __lsx_vsat_hu(a, IMM4) } |
| 2723 | } | 2723 | } |
| 2724 | 2724 | ||
| 2725 | #[inline] | 2725 | #[inline] |
| 2726 | #[target_feature(enable = "lsx")] | 2726 | #[target_feature(enable = "lsx")] |
| 2727 | #[rustc_legacy_const_generics(1)] | 2727 | #[rustc_legacy_const_generics(1)] |
| 2728 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2728 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2729 | pub unsafe fn lsx_vsat_wu<const IMM5: u32>(a: v4u32) -> v4u32 { | 2729 | pub fn lsx_vsat_wu<const IMM5: u32>(a: v4u32) -> v4u32 { |
| 2730 | static_assert_uimm_bits!(IMM5, 5); | 2730 | static_assert_uimm_bits!(IMM5, 5); |
| 2731 | __lsx_vsat_wu(a, IMM5) | 2731 | unsafe { __lsx_vsat_wu(a, IMM5) } |
| 2732 | } | 2732 | } |
| 2733 | 2733 | ||
| 2734 | #[inline] | 2734 | #[inline] |
| 2735 | #[target_feature(enable = "lsx")] | 2735 | #[target_feature(enable = "lsx")] |
| 2736 | #[rustc_legacy_const_generics(1)] | 2736 | #[rustc_legacy_const_generics(1)] |
| 2737 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2737 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2738 | pub unsafe fn lsx_vsat_du<const IMM6: u32>(a: v2u64) -> v2u64 { | 2738 | pub fn lsx_vsat_du<const IMM6: u32>(a: v2u64) -> v2u64 { |
| 2739 | static_assert_uimm_bits!(IMM6, 6); | 2739 | static_assert_uimm_bits!(IMM6, 6); |
| 2740 | __lsx_vsat_du(a, IMM6) | 2740 | unsafe { __lsx_vsat_du(a, IMM6) } |
| 2741 | } | 2741 | } |
| 2742 | 2742 | ||
| 2743 | #[inline] | 2743 | #[inline] |
| 2744 | #[target_feature(enable = "lsx")] | 2744 | #[target_feature(enable = "lsx")] |
| 2745 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2745 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2746 | pub unsafe fn lsx_vadda_b(a: v16i8, b: v16i8) -> v16i8 { | 2746 | pub fn lsx_vadda_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2747 | __lsx_vadda_b(a, b) | 2747 | unsafe { __lsx_vadda_b(a, b) } |
| 2748 | } | 2748 | } |
| 2749 | 2749 | ||
| 2750 | #[inline] | 2750 | #[inline] |
| 2751 | #[target_feature(enable = "lsx")] | 2751 | #[target_feature(enable = "lsx")] |
| 2752 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2752 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2753 | pub unsafe fn lsx_vadda_h(a: v8i16, b: v8i16) -> v8i16 { | 2753 | pub fn lsx_vadda_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2754 | __lsx_vadda_h(a, b) | 2754 | unsafe { __lsx_vadda_h(a, b) } |
| 2755 | } | 2755 | } |
| 2756 | 2756 | ||
| 2757 | #[inline] | 2757 | #[inline] |
| 2758 | #[target_feature(enable = "lsx")] | 2758 | #[target_feature(enable = "lsx")] |
| 2759 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2759 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2760 | pub unsafe fn lsx_vadda_w(a: v4i32, b: v4i32) -> v4i32 { | 2760 | pub fn lsx_vadda_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2761 | __lsx_vadda_w(a, b) | 2761 | unsafe { __lsx_vadda_w(a, b) } |
| 2762 | } | 2762 | } |
| 2763 | 2763 | ||
| 2764 | #[inline] | 2764 | #[inline] |
| 2765 | #[target_feature(enable = "lsx")] | 2765 | #[target_feature(enable = "lsx")] |
| 2766 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2766 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2767 | pub unsafe fn lsx_vadda_d(a: v2i64, b: v2i64) -> v2i64 { | 2767 | pub fn lsx_vadda_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2768 | __lsx_vadda_d(a, b) | 2768 | unsafe { __lsx_vadda_d(a, b) } |
| 2769 | } | 2769 | } |
| 2770 | 2770 | ||
| 2771 | #[inline] | 2771 | #[inline] |
| 2772 | #[target_feature(enable = "lsx")] | 2772 | #[target_feature(enable = "lsx")] |
| 2773 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2773 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2774 | pub unsafe fn lsx_vsadd_b(a: v16i8, b: v16i8) -> v16i8 { | 2774 | pub fn lsx_vsadd_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2775 | __lsx_vsadd_b(a, b) | 2775 | unsafe { __lsx_vsadd_b(a, b) } |
| 2776 | } | 2776 | } |
| 2777 | 2777 | ||
| 2778 | #[inline] | 2778 | #[inline] |
| 2779 | #[target_feature(enable = "lsx")] | 2779 | #[target_feature(enable = "lsx")] |
| 2780 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2780 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2781 | pub unsafe fn lsx_vsadd_h(a: v8i16, b: v8i16) -> v8i16 { | 2781 | pub fn lsx_vsadd_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2782 | __lsx_vsadd_h(a, b) | 2782 | unsafe { __lsx_vsadd_h(a, b) } |
| 2783 | } | 2783 | } |
| 2784 | 2784 | ||
| 2785 | #[inline] | 2785 | #[inline] |
| 2786 | #[target_feature(enable = "lsx")] | 2786 | #[target_feature(enable = "lsx")] |
| 2787 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2787 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2788 | pub unsafe fn lsx_vsadd_w(a: v4i32, b: v4i32) -> v4i32 { | 2788 | pub fn lsx_vsadd_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2789 | __lsx_vsadd_w(a, b) | 2789 | unsafe { __lsx_vsadd_w(a, b) } |
| 2790 | } | 2790 | } |
| 2791 | 2791 | ||
| 2792 | #[inline] | 2792 | #[inline] |
| 2793 | #[target_feature(enable = "lsx")] | 2793 | #[target_feature(enable = "lsx")] |
| 2794 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2794 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2795 | pub unsafe fn lsx_vsadd_d(a: v2i64, b: v2i64) -> v2i64 { | 2795 | pub fn lsx_vsadd_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2796 | __lsx_vsadd_d(a, b) | 2796 | unsafe { __lsx_vsadd_d(a, b) } |
| 2797 | } | 2797 | } |
| 2798 | 2798 | ||
| 2799 | #[inline] | 2799 | #[inline] |
| 2800 | #[target_feature(enable = "lsx")] | 2800 | #[target_feature(enable = "lsx")] |
| 2801 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2801 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2802 | pub unsafe fn lsx_vsadd_bu(a: v16u8, b: v16u8) -> v16u8 { | 2802 | pub fn lsx_vsadd_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 2803 | __lsx_vsadd_bu(a, b) | 2803 | unsafe { __lsx_vsadd_bu(a, b) } |
| 2804 | } | 2804 | } |
| 2805 | 2805 | ||
| 2806 | #[inline] | 2806 | #[inline] |
| 2807 | #[target_feature(enable = "lsx")] | 2807 | #[target_feature(enable = "lsx")] |
| 2808 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2808 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2809 | pub unsafe fn lsx_vsadd_hu(a: v8u16, b: v8u16) -> v8u16 { | 2809 | pub fn lsx_vsadd_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 2810 | __lsx_vsadd_hu(a, b) | 2810 | unsafe { __lsx_vsadd_hu(a, b) } |
| 2811 | } | 2811 | } |
| 2812 | 2812 | ||
| 2813 | #[inline] | 2813 | #[inline] |
| 2814 | #[target_feature(enable = "lsx")] | 2814 | #[target_feature(enable = "lsx")] |
| 2815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2816 | pub unsafe fn lsx_vsadd_wu(a: v4u32, b: v4u32) -> v4u32 { | 2816 | pub fn lsx_vsadd_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 2817 | __lsx_vsadd_wu(a, b) | 2817 | unsafe { __lsx_vsadd_wu(a, b) } |
| 2818 | } | 2818 | } |
| 2819 | 2819 | ||
| 2820 | #[inline] | 2820 | #[inline] |
| 2821 | #[target_feature(enable = "lsx")] | 2821 | #[target_feature(enable = "lsx")] |
| 2822 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2822 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2823 | pub unsafe fn lsx_vsadd_du(a: v2u64, b: v2u64) -> v2u64 { | 2823 | pub fn lsx_vsadd_du(a: v2u64, b: v2u64) -> v2u64 { |
| 2824 | __lsx_vsadd_du(a, b) | 2824 | unsafe { __lsx_vsadd_du(a, b) } |
| 2825 | } | 2825 | } |
| 2826 | 2826 | ||
| 2827 | #[inline] | 2827 | #[inline] |
| 2828 | #[target_feature(enable = "lsx")] | 2828 | #[target_feature(enable = "lsx")] |
| 2829 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2829 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2830 | pub unsafe fn lsx_vavg_b(a: v16i8, b: v16i8) -> v16i8 { | 2830 | pub fn lsx_vavg_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2831 | __lsx_vavg_b(a, b) | 2831 | unsafe { __lsx_vavg_b(a, b) } |
| 2832 | } | 2832 | } |
| 2833 | 2833 | ||
| 2834 | #[inline] | 2834 | #[inline] |
| 2835 | #[target_feature(enable = "lsx")] | 2835 | #[target_feature(enable = "lsx")] |
| 2836 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2836 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2837 | pub unsafe fn lsx_vavg_h(a: v8i16, b: v8i16) -> v8i16 { | 2837 | pub fn lsx_vavg_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2838 | __lsx_vavg_h(a, b) | 2838 | unsafe { __lsx_vavg_h(a, b) } |
| 2839 | } | 2839 | } |
| 2840 | 2840 | ||
| 2841 | #[inline] | 2841 | #[inline] |
| 2842 | #[target_feature(enable = "lsx")] | 2842 | #[target_feature(enable = "lsx")] |
| 2843 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2843 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2844 | pub unsafe fn lsx_vavg_w(a: v4i32, b: v4i32) -> v4i32 { | 2844 | pub fn lsx_vavg_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2845 | __lsx_vavg_w(a, b) | 2845 | unsafe { __lsx_vavg_w(a, b) } |
| 2846 | } | 2846 | } |
| 2847 | 2847 | ||
| 2848 | #[inline] | 2848 | #[inline] |
| 2849 | #[target_feature(enable = "lsx")] | 2849 | #[target_feature(enable = "lsx")] |
| 2850 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2850 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2851 | pub unsafe fn lsx_vavg_d(a: v2i64, b: v2i64) -> v2i64 { | 2851 | pub fn lsx_vavg_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2852 | __lsx_vavg_d(a, b) | 2852 | unsafe { __lsx_vavg_d(a, b) } |
| 2853 | } | 2853 | } |
| 2854 | 2854 | ||
| 2855 | #[inline] | 2855 | #[inline] |
| 2856 | #[target_feature(enable = "lsx")] | 2856 | #[target_feature(enable = "lsx")] |
| 2857 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2857 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2858 | pub unsafe fn lsx_vavg_bu(a: v16u8, b: v16u8) -> v16u8 { | 2858 | pub fn lsx_vavg_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 2859 | __lsx_vavg_bu(a, b) | 2859 | unsafe { __lsx_vavg_bu(a, b) } |
| 2860 | } | 2860 | } |
| 2861 | 2861 | ||
| 2862 | #[inline] | 2862 | #[inline] |
| 2863 | #[target_feature(enable = "lsx")] | 2863 | #[target_feature(enable = "lsx")] |
| 2864 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2864 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2865 | pub unsafe fn lsx_vavg_hu(a: v8u16, b: v8u16) -> v8u16 { | 2865 | pub fn lsx_vavg_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 2866 | __lsx_vavg_hu(a, b) | 2866 | unsafe { __lsx_vavg_hu(a, b) } |
| 2867 | } | 2867 | } |
| 2868 | 2868 | ||
| 2869 | #[inline] | 2869 | #[inline] |
| 2870 | #[target_feature(enable = "lsx")] | 2870 | #[target_feature(enable = "lsx")] |
| 2871 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2871 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2872 | pub unsafe fn lsx_vavg_wu(a: v4u32, b: v4u32) -> v4u32 { | 2872 | pub fn lsx_vavg_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 2873 | __lsx_vavg_wu(a, b) | 2873 | unsafe { __lsx_vavg_wu(a, b) } |
| 2874 | } | 2874 | } |
| 2875 | 2875 | ||
| 2876 | #[inline] | 2876 | #[inline] |
| 2877 | #[target_feature(enable = "lsx")] | 2877 | #[target_feature(enable = "lsx")] |
| 2878 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2878 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2879 | pub unsafe fn lsx_vavg_du(a: v2u64, b: v2u64) -> v2u64 { | 2879 | pub fn lsx_vavg_du(a: v2u64, b: v2u64) -> v2u64 { |
| 2880 | __lsx_vavg_du(a, b) | 2880 | unsafe { __lsx_vavg_du(a, b) } |
| 2881 | } | 2881 | } |
| 2882 | 2882 | ||
| 2883 | #[inline] | 2883 | #[inline] |
| 2884 | #[target_feature(enable = "lsx")] | 2884 | #[target_feature(enable = "lsx")] |
| 2885 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2885 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2886 | pub unsafe fn lsx_vavgr_b(a: v16i8, b: v16i8) -> v16i8 { | 2886 | pub fn lsx_vavgr_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2887 | __lsx_vavgr_b(a, b) | 2887 | unsafe { __lsx_vavgr_b(a, b) } |
| 2888 | } | 2888 | } |
| 2889 | 2889 | ||
| 2890 | #[inline] | 2890 | #[inline] |
| 2891 | #[target_feature(enable = "lsx")] | 2891 | #[target_feature(enable = "lsx")] |
| 2892 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2892 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2893 | pub unsafe fn lsx_vavgr_h(a: v8i16, b: v8i16) -> v8i16 { | 2893 | pub fn lsx_vavgr_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2894 | __lsx_vavgr_h(a, b) | 2894 | unsafe { __lsx_vavgr_h(a, b) } |
| 2895 | } | 2895 | } |
| 2896 | 2896 | ||
| 2897 | #[inline] | 2897 | #[inline] |
| 2898 | #[target_feature(enable = "lsx")] | 2898 | #[target_feature(enable = "lsx")] |
| 2899 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2899 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2900 | pub unsafe fn lsx_vavgr_w(a: v4i32, b: v4i32) -> v4i32 { | 2900 | pub fn lsx_vavgr_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2901 | __lsx_vavgr_w(a, b) | 2901 | unsafe { __lsx_vavgr_w(a, b) } |
| 2902 | } | 2902 | } |
| 2903 | 2903 | ||
| 2904 | #[inline] | 2904 | #[inline] |
| 2905 | #[target_feature(enable = "lsx")] | 2905 | #[target_feature(enable = "lsx")] |
| 2906 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2906 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2907 | pub unsafe fn lsx_vavgr_d(a: v2i64, b: v2i64) -> v2i64 { | 2907 | pub fn lsx_vavgr_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2908 | __lsx_vavgr_d(a, b) | 2908 | unsafe { __lsx_vavgr_d(a, b) } |
| 2909 | } | 2909 | } |
| 2910 | 2910 | ||
| 2911 | #[inline] | 2911 | #[inline] |
| 2912 | #[target_feature(enable = "lsx")] | 2912 | #[target_feature(enable = "lsx")] |
| 2913 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2913 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2914 | pub unsafe fn lsx_vavgr_bu(a: v16u8, b: v16u8) -> v16u8 { | 2914 | pub fn lsx_vavgr_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 2915 | __lsx_vavgr_bu(a, b) | 2915 | unsafe { __lsx_vavgr_bu(a, b) } |
| 2916 | } | 2916 | } |
| 2917 | 2917 | ||
| 2918 | #[inline] | 2918 | #[inline] |
| 2919 | #[target_feature(enable = "lsx")] | 2919 | #[target_feature(enable = "lsx")] |
| 2920 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2920 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2921 | pub unsafe fn lsx_vavgr_hu(a: v8u16, b: v8u16) -> v8u16 { | 2921 | pub fn lsx_vavgr_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 2922 | __lsx_vavgr_hu(a, b) | 2922 | unsafe { __lsx_vavgr_hu(a, b) } |
| 2923 | } | 2923 | } |
| 2924 | 2924 | ||
| 2925 | #[inline] | 2925 | #[inline] |
| 2926 | #[target_feature(enable = "lsx")] | 2926 | #[target_feature(enable = "lsx")] |
| 2927 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2927 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2928 | pub unsafe fn lsx_vavgr_wu(a: v4u32, b: v4u32) -> v4u32 { | 2928 | pub fn lsx_vavgr_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 2929 | __lsx_vavgr_wu(a, b) | 2929 | unsafe { __lsx_vavgr_wu(a, b) } |
| 2930 | } | 2930 | } |
| 2931 | 2931 | ||
| 2932 | #[inline] | 2932 | #[inline] |
| 2933 | #[target_feature(enable = "lsx")] | 2933 | #[target_feature(enable = "lsx")] |
| 2934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2935 | pub unsafe fn lsx_vavgr_du(a: v2u64, b: v2u64) -> v2u64 { | 2935 | pub fn lsx_vavgr_du(a: v2u64, b: v2u64) -> v2u64 { |
| 2936 | __lsx_vavgr_du(a, b) | 2936 | unsafe { __lsx_vavgr_du(a, b) } |
| 2937 | } | 2937 | } |
| 2938 | 2938 | ||
| 2939 | #[inline] | 2939 | #[inline] |
| 2940 | #[target_feature(enable = "lsx")] | 2940 | #[target_feature(enable = "lsx")] |
| 2941 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2941 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2942 | pub unsafe fn lsx_vssub_b(a: v16i8, b: v16i8) -> v16i8 { | 2942 | pub fn lsx_vssub_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2943 | __lsx_vssub_b(a, b) | 2943 | unsafe { __lsx_vssub_b(a, b) } |
| 2944 | } | 2944 | } |
| 2945 | 2945 | ||
| 2946 | #[inline] | 2946 | #[inline] |
| 2947 | #[target_feature(enable = "lsx")] | 2947 | #[target_feature(enable = "lsx")] |
| 2948 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2948 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2949 | pub unsafe fn lsx_vssub_h(a: v8i16, b: v8i16) -> v8i16 { | 2949 | pub fn lsx_vssub_h(a: v8i16, b: v8i16) -> v8i16 { |
| 2950 | __lsx_vssub_h(a, b) | 2950 | unsafe { __lsx_vssub_h(a, b) } |
| 2951 | } | 2951 | } |
| 2952 | 2952 | ||
| 2953 | #[inline] | 2953 | #[inline] |
| 2954 | #[target_feature(enable = "lsx")] | 2954 | #[target_feature(enable = "lsx")] |
| 2955 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2955 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2956 | pub unsafe fn lsx_vssub_w(a: v4i32, b: v4i32) -> v4i32 { | 2956 | pub fn lsx_vssub_w(a: v4i32, b: v4i32) -> v4i32 { |
| 2957 | __lsx_vssub_w(a, b) | 2957 | unsafe { __lsx_vssub_w(a, b) } |
| 2958 | } | 2958 | } |
| 2959 | 2959 | ||
| 2960 | #[inline] | 2960 | #[inline] |
| 2961 | #[target_feature(enable = "lsx")] | 2961 | #[target_feature(enable = "lsx")] |
| 2962 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2962 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2963 | pub unsafe fn lsx_vssub_d(a: v2i64, b: v2i64) -> v2i64 { | 2963 | pub fn lsx_vssub_d(a: v2i64, b: v2i64) -> v2i64 { |
| 2964 | __lsx_vssub_d(a, b) | 2964 | unsafe { __lsx_vssub_d(a, b) } |
| 2965 | } | 2965 | } |
| 2966 | 2966 | ||
| 2967 | #[inline] | 2967 | #[inline] |
| 2968 | #[target_feature(enable = "lsx")] | 2968 | #[target_feature(enable = "lsx")] |
| 2969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2970 | pub unsafe fn lsx_vssub_bu(a: v16u8, b: v16u8) -> v16u8 { | 2970 | pub fn lsx_vssub_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 2971 | __lsx_vssub_bu(a, b) | 2971 | unsafe { __lsx_vssub_bu(a, b) } |
| 2972 | } | 2972 | } |
| 2973 | 2973 | ||
| 2974 | #[inline] | 2974 | #[inline] |
| 2975 | #[target_feature(enable = "lsx")] | 2975 | #[target_feature(enable = "lsx")] |
| 2976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2977 | pub unsafe fn lsx_vssub_hu(a: v8u16, b: v8u16) -> v8u16 { | 2977 | pub fn lsx_vssub_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 2978 | __lsx_vssub_hu(a, b) | 2978 | unsafe { __lsx_vssub_hu(a, b) } |
| 2979 | } | 2979 | } |
| 2980 | 2980 | ||
| 2981 | #[inline] | 2981 | #[inline] |
| 2982 | #[target_feature(enable = "lsx")] | 2982 | #[target_feature(enable = "lsx")] |
| 2983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2984 | pub unsafe fn lsx_vssub_wu(a: v4u32, b: v4u32) -> v4u32 { | 2984 | pub fn lsx_vssub_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 2985 | __lsx_vssub_wu(a, b) | 2985 | unsafe { __lsx_vssub_wu(a, b) } |
| 2986 | } | 2986 | } |
| 2987 | 2987 | ||
| 2988 | #[inline] | 2988 | #[inline] |
| 2989 | #[target_feature(enable = "lsx")] | 2989 | #[target_feature(enable = "lsx")] |
| 2990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2991 | pub unsafe fn lsx_vssub_du(a: v2u64, b: v2u64) -> v2u64 { | 2991 | pub fn lsx_vssub_du(a: v2u64, b: v2u64) -> v2u64 { |
| 2992 | __lsx_vssub_du(a, b) | 2992 | unsafe { __lsx_vssub_du(a, b) } |
| 2993 | } | 2993 | } |
| 2994 | 2994 | ||
| 2995 | #[inline] | 2995 | #[inline] |
| 2996 | #[target_feature(enable = "lsx")] | 2996 | #[target_feature(enable = "lsx")] |
| 2997 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 2997 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 2998 | pub unsafe fn lsx_vabsd_b(a: v16i8, b: v16i8) -> v16i8 { | 2998 | pub fn lsx_vabsd_b(a: v16i8, b: v16i8) -> v16i8 { |
| 2999 | __lsx_vabsd_b(a, b) | 2999 | unsafe { __lsx_vabsd_b(a, b) } |
| 3000 | } | 3000 | } |
| 3001 | 3001 | ||
| 3002 | #[inline] | 3002 | #[inline] |
| 3003 | #[target_feature(enable = "lsx")] | 3003 | #[target_feature(enable = "lsx")] |
| 3004 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3004 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3005 | pub unsafe fn lsx_vabsd_h(a: v8i16, b: v8i16) -> v8i16 { | 3005 | pub fn lsx_vabsd_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3006 | __lsx_vabsd_h(a, b) | 3006 | unsafe { __lsx_vabsd_h(a, b) } |
| 3007 | } | 3007 | } |
| 3008 | 3008 | ||
| 3009 | #[inline] | 3009 | #[inline] |
| 3010 | #[target_feature(enable = "lsx")] | 3010 | #[target_feature(enable = "lsx")] |
| 3011 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3011 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3012 | pub unsafe fn lsx_vabsd_w(a: v4i32, b: v4i32) -> v4i32 { | 3012 | pub fn lsx_vabsd_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3013 | __lsx_vabsd_w(a, b) | 3013 | unsafe { __lsx_vabsd_w(a, b) } |
| 3014 | } | 3014 | } |
| 3015 | 3015 | ||
| 3016 | #[inline] | 3016 | #[inline] |
| 3017 | #[target_feature(enable = "lsx")] | 3017 | #[target_feature(enable = "lsx")] |
| 3018 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3018 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3019 | pub unsafe fn lsx_vabsd_d(a: v2i64, b: v2i64) -> v2i64 { | 3019 | pub fn lsx_vabsd_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3020 | __lsx_vabsd_d(a, b) | 3020 | unsafe { __lsx_vabsd_d(a, b) } |
| 3021 | } | 3021 | } |
| 3022 | 3022 | ||
| 3023 | #[inline] | 3023 | #[inline] |
| 3024 | #[target_feature(enable = "lsx")] | 3024 | #[target_feature(enable = "lsx")] |
| 3025 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3025 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3026 | pub unsafe fn lsx_vabsd_bu(a: v16u8, b: v16u8) -> v16u8 { | 3026 | pub fn lsx_vabsd_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 3027 | __lsx_vabsd_bu(a, b) | 3027 | unsafe { __lsx_vabsd_bu(a, b) } |
| 3028 | } | 3028 | } |
| 3029 | 3029 | ||
| 3030 | #[inline] | 3030 | #[inline] |
| 3031 | #[target_feature(enable = "lsx")] | 3031 | #[target_feature(enable = "lsx")] |
| 3032 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3032 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3033 | pub unsafe fn lsx_vabsd_hu(a: v8u16, b: v8u16) -> v8u16 { | 3033 | pub fn lsx_vabsd_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 3034 | __lsx_vabsd_hu(a, b) | 3034 | unsafe { __lsx_vabsd_hu(a, b) } |
| 3035 | } | 3035 | } |
| 3036 | 3036 | ||
| 3037 | #[inline] | 3037 | #[inline] |
| 3038 | #[target_feature(enable = "lsx")] | 3038 | #[target_feature(enable = "lsx")] |
| 3039 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3039 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3040 | pub unsafe fn lsx_vabsd_wu(a: v4u32, b: v4u32) -> v4u32 { | 3040 | pub fn lsx_vabsd_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 3041 | __lsx_vabsd_wu(a, b) | 3041 | unsafe { __lsx_vabsd_wu(a, b) } |
| 3042 | } | 3042 | } |
| 3043 | 3043 | ||
| 3044 | #[inline] | 3044 | #[inline] |
| 3045 | #[target_feature(enable = "lsx")] | 3045 | #[target_feature(enable = "lsx")] |
| 3046 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3046 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3047 | pub unsafe fn lsx_vabsd_du(a: v2u64, b: v2u64) -> v2u64 { | 3047 | pub fn lsx_vabsd_du(a: v2u64, b: v2u64) -> v2u64 { |
| 3048 | __lsx_vabsd_du(a, b) | 3048 | unsafe { __lsx_vabsd_du(a, b) } |
| 3049 | } | 3049 | } |
| 3050 | 3050 | ||
| 3051 | #[inline] | 3051 | #[inline] |
| 3052 | #[target_feature(enable = "lsx")] | 3052 | #[target_feature(enable = "lsx")] |
| 3053 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3053 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3054 | pub unsafe fn lsx_vmul_b(a: v16i8, b: v16i8) -> v16i8 { | 3054 | pub fn lsx_vmul_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3055 | __lsx_vmul_b(a, b) | 3055 | unsafe { __lsx_vmul_b(a, b) } |
| 3056 | } | 3056 | } |
| 3057 | 3057 | ||
| 3058 | #[inline] | 3058 | #[inline] |
| 3059 | #[target_feature(enable = "lsx")] | 3059 | #[target_feature(enable = "lsx")] |
| 3060 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3060 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3061 | pub unsafe fn lsx_vmul_h(a: v8i16, b: v8i16) -> v8i16 { | 3061 | pub fn lsx_vmul_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3062 | __lsx_vmul_h(a, b) | 3062 | unsafe { __lsx_vmul_h(a, b) } |
| 3063 | } | 3063 | } |
| 3064 | 3064 | ||
| 3065 | #[inline] | 3065 | #[inline] |
| 3066 | #[target_feature(enable = "lsx")] | 3066 | #[target_feature(enable = "lsx")] |
| 3067 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3067 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3068 | pub unsafe fn lsx_vmul_w(a: v4i32, b: v4i32) -> v4i32 { | 3068 | pub fn lsx_vmul_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3069 | __lsx_vmul_w(a, b) | 3069 | unsafe { __lsx_vmul_w(a, b) } |
| 3070 | } | 3070 | } |
| 3071 | 3071 | ||
| 3072 | #[inline] | 3072 | #[inline] |
| 3073 | #[target_feature(enable = "lsx")] | 3073 | #[target_feature(enable = "lsx")] |
| 3074 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3074 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3075 | pub unsafe fn lsx_vmul_d(a: v2i64, b: v2i64) -> v2i64 { | 3075 | pub fn lsx_vmul_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3076 | __lsx_vmul_d(a, b) | 3076 | unsafe { __lsx_vmul_d(a, b) } |
| 3077 | } | 3077 | } |
| 3078 | 3078 | ||
| 3079 | #[inline] | 3079 | #[inline] |
| 3080 | #[target_feature(enable = "lsx")] | 3080 | #[target_feature(enable = "lsx")] |
| 3081 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3081 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3082 | pub unsafe fn lsx_vmadd_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { | 3082 | pub fn lsx_vmadd_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { |
| 3083 | __lsx_vmadd_b(a, b, c) | 3083 | unsafe { __lsx_vmadd_b(a, b, c) } |
| 3084 | } | 3084 | } |
| 3085 | 3085 | ||
| 3086 | #[inline] | 3086 | #[inline] |
| 3087 | #[target_feature(enable = "lsx")] | 3087 | #[target_feature(enable = "lsx")] |
| 3088 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3088 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3089 | pub unsafe fn lsx_vmadd_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { | 3089 | pub fn lsx_vmadd_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { |
| 3090 | __lsx_vmadd_h(a, b, c) | 3090 | unsafe { __lsx_vmadd_h(a, b, c) } |
| 3091 | } | 3091 | } |
| 3092 | 3092 | ||
| 3093 | #[inline] | 3093 | #[inline] |
| 3094 | #[target_feature(enable = "lsx")] | 3094 | #[target_feature(enable = "lsx")] |
| 3095 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3095 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3096 | pub unsafe fn lsx_vmadd_w(a: v4i32, b: v4i32, c: v4i32) -> v4i32 { | 3096 | pub fn lsx_vmadd_w(a: v4i32, b: v4i32, c: v4i32) -> v4i32 { |
| 3097 | __lsx_vmadd_w(a, b, c) | 3097 | unsafe { __lsx_vmadd_w(a, b, c) } |
| 3098 | } | 3098 | } |
| 3099 | 3099 | ||
| 3100 | #[inline] | 3100 | #[inline] |
| 3101 | #[target_feature(enable = "lsx")] | 3101 | #[target_feature(enable = "lsx")] |
| 3102 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3102 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3103 | pub unsafe fn lsx_vmadd_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { | 3103 | pub fn lsx_vmadd_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { |
| 3104 | __lsx_vmadd_d(a, b, c) | 3104 | unsafe { __lsx_vmadd_d(a, b, c) } |
| 3105 | } | 3105 | } |
| 3106 | 3106 | ||
| 3107 | #[inline] | 3107 | #[inline] |
| 3108 | #[target_feature(enable = "lsx")] | 3108 | #[target_feature(enable = "lsx")] |
| 3109 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3109 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3110 | pub unsafe fn lsx_vmsub_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { | 3110 | pub fn lsx_vmsub_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { |
| 3111 | __lsx_vmsub_b(a, b, c) | 3111 | unsafe { __lsx_vmsub_b(a, b, c) } |
| 3112 | } | 3112 | } |
| 3113 | 3113 | ||
| 3114 | #[inline] | 3114 | #[inline] |
| 3115 | #[target_feature(enable = "lsx")] | 3115 | #[target_feature(enable = "lsx")] |
| 3116 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3116 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3117 | pub unsafe fn lsx_vmsub_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { | 3117 | pub fn lsx_vmsub_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { |
| 3118 | __lsx_vmsub_h(a, b, c) | 3118 | unsafe { __lsx_vmsub_h(a, b, c) } |
| 3119 | } | 3119 | } |
| 3120 | 3120 | ||
| 3121 | #[inline] | 3121 | #[inline] |
| 3122 | #[target_feature(enable = "lsx")] | 3122 | #[target_feature(enable = "lsx")] |
| 3123 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3123 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3124 | pub unsafe fn lsx_vmsub_w(a: v4i32, b: v4i32, c: v4i32) -> v4i32 { | 3124 | pub fn lsx_vmsub_w(a: v4i32, b: v4i32, c: v4i32) -> v4i32 { |
| 3125 | __lsx_vmsub_w(a, b, c) | 3125 | unsafe { __lsx_vmsub_w(a, b, c) } |
| 3126 | } | 3126 | } |
| 3127 | 3127 | ||
| 3128 | #[inline] | 3128 | #[inline] |
| 3129 | #[target_feature(enable = "lsx")] | 3129 | #[target_feature(enable = "lsx")] |
| 3130 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3130 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3131 | pub unsafe fn lsx_vmsub_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { | 3131 | pub fn lsx_vmsub_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { |
| 3132 | __lsx_vmsub_d(a, b, c) | 3132 | unsafe { __lsx_vmsub_d(a, b, c) } |
| 3133 | } | 3133 | } |
| 3134 | 3134 | ||
| 3135 | #[inline] | 3135 | #[inline] |
| 3136 | #[target_feature(enable = "lsx")] | 3136 | #[target_feature(enable = "lsx")] |
| 3137 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3137 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3138 | pub unsafe fn lsx_vdiv_b(a: v16i8, b: v16i8) -> v16i8 { | 3138 | pub fn lsx_vdiv_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3139 | __lsx_vdiv_b(a, b) | 3139 | unsafe { __lsx_vdiv_b(a, b) } |
| 3140 | } | 3140 | } |
| 3141 | 3141 | ||
| 3142 | #[inline] | 3142 | #[inline] |
| 3143 | #[target_feature(enable = "lsx")] | 3143 | #[target_feature(enable = "lsx")] |
| 3144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3145 | pub unsafe fn lsx_vdiv_h(a: v8i16, b: v8i16) -> v8i16 { | 3145 | pub fn lsx_vdiv_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3146 | __lsx_vdiv_h(a, b) | 3146 | unsafe { __lsx_vdiv_h(a, b) } |
| 3147 | } | 3147 | } |
| 3148 | 3148 | ||
| 3149 | #[inline] | 3149 | #[inline] |
| 3150 | #[target_feature(enable = "lsx")] | 3150 | #[target_feature(enable = "lsx")] |
| 3151 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3151 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3152 | pub unsafe fn lsx_vdiv_w(a: v4i32, b: v4i32) -> v4i32 { | 3152 | pub fn lsx_vdiv_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3153 | __lsx_vdiv_w(a, b) | 3153 | unsafe { __lsx_vdiv_w(a, b) } |
| 3154 | } | 3154 | } |
| 3155 | 3155 | ||
| 3156 | #[inline] | 3156 | #[inline] |
| 3157 | #[target_feature(enable = "lsx")] | 3157 | #[target_feature(enable = "lsx")] |
| 3158 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3158 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3159 | pub unsafe fn lsx_vdiv_d(a: v2i64, b: v2i64) -> v2i64 { | 3159 | pub fn lsx_vdiv_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3160 | __lsx_vdiv_d(a, b) | 3160 | unsafe { __lsx_vdiv_d(a, b) } |
| 3161 | } | 3161 | } |
| 3162 | 3162 | ||
| 3163 | #[inline] | 3163 | #[inline] |
| 3164 | #[target_feature(enable = "lsx")] | 3164 | #[target_feature(enable = "lsx")] |
| 3165 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3165 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3166 | pub unsafe fn lsx_vdiv_bu(a: v16u8, b: v16u8) -> v16u8 { | 3166 | pub fn lsx_vdiv_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 3167 | __lsx_vdiv_bu(a, b) | 3167 | unsafe { __lsx_vdiv_bu(a, b) } |
| 3168 | } | 3168 | } |
| 3169 | 3169 | ||
| 3170 | #[inline] | 3170 | #[inline] |
| 3171 | #[target_feature(enable = "lsx")] | 3171 | #[target_feature(enable = "lsx")] |
| 3172 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3172 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3173 | pub unsafe fn lsx_vdiv_hu(a: v8u16, b: v8u16) -> v8u16 { | 3173 | pub fn lsx_vdiv_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 3174 | __lsx_vdiv_hu(a, b) | 3174 | unsafe { __lsx_vdiv_hu(a, b) } |
| 3175 | } | 3175 | } |
| 3176 | 3176 | ||
| 3177 | #[inline] | 3177 | #[inline] |
| 3178 | #[target_feature(enable = "lsx")] | 3178 | #[target_feature(enable = "lsx")] |
| 3179 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3179 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3180 | pub unsafe fn lsx_vdiv_wu(a: v4u32, b: v4u32) -> v4u32 { | 3180 | pub fn lsx_vdiv_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 3181 | __lsx_vdiv_wu(a, b) | 3181 | unsafe { __lsx_vdiv_wu(a, b) } |
| 3182 | } | 3182 | } |
| 3183 | 3183 | ||
| 3184 | #[inline] | 3184 | #[inline] |
| 3185 | #[target_feature(enable = "lsx")] | 3185 | #[target_feature(enable = "lsx")] |
| 3186 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3186 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3187 | pub unsafe fn lsx_vdiv_du(a: v2u64, b: v2u64) -> v2u64 { | 3187 | pub fn lsx_vdiv_du(a: v2u64, b: v2u64) -> v2u64 { |
| 3188 | __lsx_vdiv_du(a, b) | 3188 | unsafe { __lsx_vdiv_du(a, b) } |
| 3189 | } | 3189 | } |
| 3190 | 3190 | ||
| 3191 | #[inline] | 3191 | #[inline] |
| 3192 | #[target_feature(enable = "lsx")] | 3192 | #[target_feature(enable = "lsx")] |
| 3193 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3193 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3194 | pub unsafe fn lsx_vhaddw_h_b(a: v16i8, b: v16i8) -> v8i16 { | 3194 | pub fn lsx_vhaddw_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 3195 | __lsx_vhaddw_h_b(a, b) | 3195 | unsafe { __lsx_vhaddw_h_b(a, b) } |
| 3196 | } | 3196 | } |
| 3197 | 3197 | ||
| 3198 | #[inline] | 3198 | #[inline] |
| 3199 | #[target_feature(enable = "lsx")] | 3199 | #[target_feature(enable = "lsx")] |
| 3200 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3200 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3201 | pub unsafe fn lsx_vhaddw_w_h(a: v8i16, b: v8i16) -> v4i32 { | 3201 | pub fn lsx_vhaddw_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 3202 | __lsx_vhaddw_w_h(a, b) | 3202 | unsafe { __lsx_vhaddw_w_h(a, b) } |
| 3203 | } | 3203 | } |
| 3204 | 3204 | ||
| 3205 | #[inline] | 3205 | #[inline] |
| 3206 | #[target_feature(enable = "lsx")] | 3206 | #[target_feature(enable = "lsx")] |
| 3207 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3207 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3208 | pub unsafe fn lsx_vhaddw_d_w(a: v4i32, b: v4i32) -> v2i64 { | 3208 | pub fn lsx_vhaddw_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 3209 | __lsx_vhaddw_d_w(a, b) | 3209 | unsafe { __lsx_vhaddw_d_w(a, b) } |
| 3210 | } | 3210 | } |
| 3211 | 3211 | ||
| 3212 | #[inline] | 3212 | #[inline] |
| 3213 | #[target_feature(enable = "lsx")] | 3213 | #[target_feature(enable = "lsx")] |
| 3214 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3214 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3215 | pub unsafe fn lsx_vhaddw_hu_bu(a: v16u8, b: v16u8) -> v8u16 { | 3215 | pub fn lsx_vhaddw_hu_bu(a: v16u8, b: v16u8) -> v8u16 { |
| 3216 | __lsx_vhaddw_hu_bu(a, b) | 3216 | unsafe { __lsx_vhaddw_hu_bu(a, b) } |
| 3217 | } | 3217 | } |
| 3218 | 3218 | ||
| 3219 | #[inline] | 3219 | #[inline] |
| 3220 | #[target_feature(enable = "lsx")] | 3220 | #[target_feature(enable = "lsx")] |
| 3221 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3221 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3222 | pub unsafe fn lsx_vhaddw_wu_hu(a: v8u16, b: v8u16) -> v4u32 { | 3222 | pub fn lsx_vhaddw_wu_hu(a: v8u16, b: v8u16) -> v4u32 { |
| 3223 | __lsx_vhaddw_wu_hu(a, b) | 3223 | unsafe { __lsx_vhaddw_wu_hu(a, b) } |
| 3224 | } | 3224 | } |
| 3225 | 3225 | ||
| 3226 | #[inline] | 3226 | #[inline] |
| 3227 | #[target_feature(enable = "lsx")] | 3227 | #[target_feature(enable = "lsx")] |
| 3228 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3228 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3229 | pub unsafe fn lsx_vhaddw_du_wu(a: v4u32, b: v4u32) -> v2u64 { | 3229 | pub fn lsx_vhaddw_du_wu(a: v4u32, b: v4u32) -> v2u64 { |
| 3230 | __lsx_vhaddw_du_wu(a, b) | 3230 | unsafe { __lsx_vhaddw_du_wu(a, b) } |
| 3231 | } | 3231 | } |
| 3232 | 3232 | ||
| 3233 | #[inline] | 3233 | #[inline] |
| 3234 | #[target_feature(enable = "lsx")] | 3234 | #[target_feature(enable = "lsx")] |
| 3235 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3235 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3236 | pub unsafe fn lsx_vhsubw_h_b(a: v16i8, b: v16i8) -> v8i16 { | 3236 | pub fn lsx_vhsubw_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 3237 | __lsx_vhsubw_h_b(a, b) | 3237 | unsafe { __lsx_vhsubw_h_b(a, b) } |
| 3238 | } | 3238 | } |
| 3239 | 3239 | ||
| 3240 | #[inline] | 3240 | #[inline] |
| 3241 | #[target_feature(enable = "lsx")] | 3241 | #[target_feature(enable = "lsx")] |
| 3242 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3242 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3243 | pub unsafe fn lsx_vhsubw_w_h(a: v8i16, b: v8i16) -> v4i32 { | 3243 | pub fn lsx_vhsubw_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 3244 | __lsx_vhsubw_w_h(a, b) | 3244 | unsafe { __lsx_vhsubw_w_h(a, b) } |
| 3245 | } | 3245 | } |
| 3246 | 3246 | ||
| 3247 | #[inline] | 3247 | #[inline] |
| 3248 | #[target_feature(enable = "lsx")] | 3248 | #[target_feature(enable = "lsx")] |
| 3249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3250 | pub unsafe fn lsx_vhsubw_d_w(a: v4i32, b: v4i32) -> v2i64 { | 3250 | pub fn lsx_vhsubw_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 3251 | __lsx_vhsubw_d_w(a, b) | 3251 | unsafe { __lsx_vhsubw_d_w(a, b) } |
| 3252 | } | 3252 | } |
| 3253 | 3253 | ||
| 3254 | #[inline] | 3254 | #[inline] |
| 3255 | #[target_feature(enable = "lsx")] | 3255 | #[target_feature(enable = "lsx")] |
| 3256 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3256 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3257 | pub unsafe fn lsx_vhsubw_hu_bu(a: v16u8, b: v16u8) -> v8i16 { | 3257 | pub fn lsx_vhsubw_hu_bu(a: v16u8, b: v16u8) -> v8i16 { |
| 3258 | __lsx_vhsubw_hu_bu(a, b) | 3258 | unsafe { __lsx_vhsubw_hu_bu(a, b) } |
| 3259 | } | 3259 | } |
| 3260 | 3260 | ||
| 3261 | #[inline] | 3261 | #[inline] |
| 3262 | #[target_feature(enable = "lsx")] | 3262 | #[target_feature(enable = "lsx")] |
| 3263 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3263 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3264 | pub unsafe fn lsx_vhsubw_wu_hu(a: v8u16, b: v8u16) -> v4i32 { | 3264 | pub fn lsx_vhsubw_wu_hu(a: v8u16, b: v8u16) -> v4i32 { |
| 3265 | __lsx_vhsubw_wu_hu(a, b) | 3265 | unsafe { __lsx_vhsubw_wu_hu(a, b) } |
| 3266 | } | 3266 | } |
| 3267 | 3267 | ||
| 3268 | #[inline] | 3268 | #[inline] |
| 3269 | #[target_feature(enable = "lsx")] | 3269 | #[target_feature(enable = "lsx")] |
| 3270 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3270 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3271 | pub unsafe fn lsx_vhsubw_du_wu(a: v4u32, b: v4u32) -> v2i64 { | 3271 | pub fn lsx_vhsubw_du_wu(a: v4u32, b: v4u32) -> v2i64 { |
| 3272 | __lsx_vhsubw_du_wu(a, b) | 3272 | unsafe { __lsx_vhsubw_du_wu(a, b) } |
| 3273 | } | 3273 | } |
| 3274 | 3274 | ||
| 3275 | #[inline] | 3275 | #[inline] |
| 3276 | #[target_feature(enable = "lsx")] | 3276 | #[target_feature(enable = "lsx")] |
| 3277 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3277 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3278 | pub unsafe fn lsx_vmod_b(a: v16i8, b: v16i8) -> v16i8 { | 3278 | pub fn lsx_vmod_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3279 | __lsx_vmod_b(a, b) | 3279 | unsafe { __lsx_vmod_b(a, b) } |
| 3280 | } | 3280 | } |
| 3281 | 3281 | ||
| 3282 | #[inline] | 3282 | #[inline] |
| 3283 | #[target_feature(enable = "lsx")] | 3283 | #[target_feature(enable = "lsx")] |
| 3284 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3284 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3285 | pub unsafe fn lsx_vmod_h(a: v8i16, b: v8i16) -> v8i16 { | 3285 | pub fn lsx_vmod_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3286 | __lsx_vmod_h(a, b) | 3286 | unsafe { __lsx_vmod_h(a, b) } |
| 3287 | } | 3287 | } |
| 3288 | 3288 | ||
| 3289 | #[inline] | 3289 | #[inline] |
| 3290 | #[target_feature(enable = "lsx")] | 3290 | #[target_feature(enable = "lsx")] |
| 3291 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3291 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3292 | pub unsafe fn lsx_vmod_w(a: v4i32, b: v4i32) -> v4i32 { | 3292 | pub fn lsx_vmod_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3293 | __lsx_vmod_w(a, b) | 3293 | unsafe { __lsx_vmod_w(a, b) } |
| 3294 | } | 3294 | } |
| 3295 | 3295 | ||
| 3296 | #[inline] | 3296 | #[inline] |
| 3297 | #[target_feature(enable = "lsx")] | 3297 | #[target_feature(enable = "lsx")] |
| 3298 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3298 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3299 | pub unsafe fn lsx_vmod_d(a: v2i64, b: v2i64) -> v2i64 { | 3299 | pub fn lsx_vmod_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3300 | __lsx_vmod_d(a, b) | 3300 | unsafe { __lsx_vmod_d(a, b) } |
| 3301 | } | 3301 | } |
| 3302 | 3302 | ||
| 3303 | #[inline] | 3303 | #[inline] |
| 3304 | #[target_feature(enable = "lsx")] | 3304 | #[target_feature(enable = "lsx")] |
| 3305 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3305 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3306 | pub unsafe fn lsx_vmod_bu(a: v16u8, b: v16u8) -> v16u8 { | 3306 | pub fn lsx_vmod_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 3307 | __lsx_vmod_bu(a, b) | 3307 | unsafe { __lsx_vmod_bu(a, b) } |
| 3308 | } | 3308 | } |
| 3309 | 3309 | ||
| 3310 | #[inline] | 3310 | #[inline] |
| 3311 | #[target_feature(enable = "lsx")] | 3311 | #[target_feature(enable = "lsx")] |
| 3312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3313 | pub unsafe fn lsx_vmod_hu(a: v8u16, b: v8u16) -> v8u16 { | 3313 | pub fn lsx_vmod_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 3314 | __lsx_vmod_hu(a, b) | 3314 | unsafe { __lsx_vmod_hu(a, b) } |
| 3315 | } | 3315 | } |
| 3316 | 3316 | ||
| 3317 | #[inline] | 3317 | #[inline] |
| 3318 | #[target_feature(enable = "lsx")] | 3318 | #[target_feature(enable = "lsx")] |
| 3319 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3319 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3320 | pub unsafe fn lsx_vmod_wu(a: v4u32, b: v4u32) -> v4u32 { | 3320 | pub fn lsx_vmod_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 3321 | __lsx_vmod_wu(a, b) | 3321 | unsafe { __lsx_vmod_wu(a, b) } |
| 3322 | } | 3322 | } |
| 3323 | 3323 | ||
| 3324 | #[inline] | 3324 | #[inline] |
| 3325 | #[target_feature(enable = "lsx")] | 3325 | #[target_feature(enable = "lsx")] |
| 3326 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3326 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3327 | pub unsafe fn lsx_vmod_du(a: v2u64, b: v2u64) -> v2u64 { | 3327 | pub fn lsx_vmod_du(a: v2u64, b: v2u64) -> v2u64 { |
| 3328 | __lsx_vmod_du(a, b) | 3328 | unsafe { __lsx_vmod_du(a, b) } |
| 3329 | } | 3329 | } |
| 3330 | 3330 | ||
| 3331 | #[inline] | 3331 | #[inline] |
| 3332 | #[target_feature(enable = "lsx")] | 3332 | #[target_feature(enable = "lsx")] |
| 3333 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3333 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3334 | pub unsafe fn lsx_vreplve_b(a: v16i8, b: i32) -> v16i8 { | 3334 | pub fn lsx_vreplve_b(a: v16i8, b: i32) -> v16i8 { |
| 3335 | __lsx_vreplve_b(a, b) | 3335 | unsafe { __lsx_vreplve_b(a, b) } |
| 3336 | } | 3336 | } |
| 3337 | 3337 | ||
| 3338 | #[inline] | 3338 | #[inline] |
| 3339 | #[target_feature(enable = "lsx")] | 3339 | #[target_feature(enable = "lsx")] |
| 3340 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3340 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3341 | pub unsafe fn lsx_vreplve_h(a: v8i16, b: i32) -> v8i16 { | 3341 | pub fn lsx_vreplve_h(a: v8i16, b: i32) -> v8i16 { |
| 3342 | __lsx_vreplve_h(a, b) | 3342 | unsafe { __lsx_vreplve_h(a, b) } |
| 3343 | } | 3343 | } |
| 3344 | 3344 | ||
| 3345 | #[inline] | 3345 | #[inline] |
| 3346 | #[target_feature(enable = "lsx")] | 3346 | #[target_feature(enable = "lsx")] |
| 3347 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3347 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3348 | pub unsafe fn lsx_vreplve_w(a: v4i32, b: i32) -> v4i32 { | 3348 | pub fn lsx_vreplve_w(a: v4i32, b: i32) -> v4i32 { |
| 3349 | __lsx_vreplve_w(a, b) | 3349 | unsafe { __lsx_vreplve_w(a, b) } |
| 3350 | } | 3350 | } |
| 3351 | 3351 | ||
| 3352 | #[inline] | 3352 | #[inline] |
| 3353 | #[target_feature(enable = "lsx")] | 3353 | #[target_feature(enable = "lsx")] |
| 3354 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3354 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3355 | pub unsafe fn lsx_vreplve_d(a: v2i64, b: i32) -> v2i64 { | 3355 | pub fn lsx_vreplve_d(a: v2i64, b: i32) -> v2i64 { |
| 3356 | __lsx_vreplve_d(a, b) | 3356 | unsafe { __lsx_vreplve_d(a, b) } |
| 3357 | } | 3357 | } |
| 3358 | 3358 | ||
| 3359 | #[inline] | 3359 | #[inline] |
| 3360 | #[target_feature(enable = "lsx")] | 3360 | #[target_feature(enable = "lsx")] |
| 3361 | #[rustc_legacy_const_generics(1)] | 3361 | #[rustc_legacy_const_generics(1)] |
| 3362 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3362 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3363 | pub unsafe fn lsx_vreplvei_b<const IMM4: u32>(a: v16i8) -> v16i8 { | 3363 | pub fn lsx_vreplvei_b<const IMM4: u32>(a: v16i8) -> v16i8 { |
| 3364 | static_assert_uimm_bits!(IMM4, 4); | 3364 | static_assert_uimm_bits!(IMM4, 4); |
| 3365 | __lsx_vreplvei_b(a, IMM4) | 3365 | unsafe { __lsx_vreplvei_b(a, IMM4) } |
| 3366 | } | 3366 | } |
| 3367 | 3367 | ||
| 3368 | #[inline] | 3368 | #[inline] |
| 3369 | #[target_feature(enable = "lsx")] | 3369 | #[target_feature(enable = "lsx")] |
| 3370 | #[rustc_legacy_const_generics(1)] | 3370 | #[rustc_legacy_const_generics(1)] |
| 3371 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3371 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3372 | pub unsafe fn lsx_vreplvei_h<const IMM3: u32>(a: v8i16) -> v8i16 { | 3372 | pub fn lsx_vreplvei_h<const IMM3: u32>(a: v8i16) -> v8i16 { |
| 3373 | static_assert_uimm_bits!(IMM3, 3); | 3373 | static_assert_uimm_bits!(IMM3, 3); |
| 3374 | __lsx_vreplvei_h(a, IMM3) | 3374 | unsafe { __lsx_vreplvei_h(a, IMM3) } |
| 3375 | } | 3375 | } |
| 3376 | 3376 | ||
| 3377 | #[inline] | 3377 | #[inline] |
| 3378 | #[target_feature(enable = "lsx")] | 3378 | #[target_feature(enable = "lsx")] |
| 3379 | #[rustc_legacy_const_generics(1)] | 3379 | #[rustc_legacy_const_generics(1)] |
| 3380 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3380 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3381 | pub unsafe fn lsx_vreplvei_w<const IMM2: u32>(a: v4i32) -> v4i32 { | 3381 | pub fn lsx_vreplvei_w<const IMM2: u32>(a: v4i32) -> v4i32 { |
| 3382 | static_assert_uimm_bits!(IMM2, 2); | 3382 | static_assert_uimm_bits!(IMM2, 2); |
| 3383 | __lsx_vreplvei_w(a, IMM2) | 3383 | unsafe { __lsx_vreplvei_w(a, IMM2) } |
| 3384 | } | 3384 | } |
| 3385 | 3385 | ||
| 3386 | #[inline] | 3386 | #[inline] |
| 3387 | #[target_feature(enable = "lsx")] | 3387 | #[target_feature(enable = "lsx")] |
| 3388 | #[rustc_legacy_const_generics(1)] | 3388 | #[rustc_legacy_const_generics(1)] |
| 3389 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3389 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3390 | pub unsafe fn lsx_vreplvei_d<const IMM1: u32>(a: v2i64) -> v2i64 { | 3390 | pub fn lsx_vreplvei_d<const IMM1: u32>(a: v2i64) -> v2i64 { |
| 3391 | static_assert_uimm_bits!(IMM1, 1); | 3391 | static_assert_uimm_bits!(IMM1, 1); |
| 3392 | __lsx_vreplvei_d(a, IMM1) | 3392 | unsafe { __lsx_vreplvei_d(a, IMM1) } |
| 3393 | } | 3393 | } |
| 3394 | 3394 | ||
| 3395 | #[inline] | 3395 | #[inline] |
| 3396 | #[target_feature(enable = "lsx")] | 3396 | #[target_feature(enable = "lsx")] |
| 3397 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3397 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3398 | pub unsafe fn lsx_vpickev_b(a: v16i8, b: v16i8) -> v16i8 { | 3398 | pub fn lsx_vpickev_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3399 | __lsx_vpickev_b(a, b) | 3399 | unsafe { __lsx_vpickev_b(a, b) } |
| 3400 | } | 3400 | } |
| 3401 | 3401 | ||
| 3402 | #[inline] | 3402 | #[inline] |
| 3403 | #[target_feature(enable = "lsx")] | 3403 | #[target_feature(enable = "lsx")] |
| 3404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3405 | pub unsafe fn lsx_vpickev_h(a: v8i16, b: v8i16) -> v8i16 { | 3405 | pub fn lsx_vpickev_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3406 | __lsx_vpickev_h(a, b) | 3406 | unsafe { __lsx_vpickev_h(a, b) } |
| 3407 | } | 3407 | } |
| 3408 | 3408 | ||
| 3409 | #[inline] | 3409 | #[inline] |
| 3410 | #[target_feature(enable = "lsx")] | 3410 | #[target_feature(enable = "lsx")] |
| 3411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3412 | pub unsafe fn lsx_vpickev_w(a: v4i32, b: v4i32) -> v4i32 { | 3412 | pub fn lsx_vpickev_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3413 | __lsx_vpickev_w(a, b) | 3413 | unsafe { __lsx_vpickev_w(a, b) } |
| 3414 | } | 3414 | } |
| 3415 | 3415 | ||
| 3416 | #[inline] | 3416 | #[inline] |
| 3417 | #[target_feature(enable = "lsx")] | 3417 | #[target_feature(enable = "lsx")] |
| 3418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3419 | pub unsafe fn lsx_vpickev_d(a: v2i64, b: v2i64) -> v2i64 { | 3419 | pub fn lsx_vpickev_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3420 | __lsx_vpickev_d(a, b) | 3420 | unsafe { __lsx_vpickev_d(a, b) } |
| 3421 | } | 3421 | } |
| 3422 | 3422 | ||
| 3423 | #[inline] | 3423 | #[inline] |
| 3424 | #[target_feature(enable = "lsx")] | 3424 | #[target_feature(enable = "lsx")] |
| 3425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3426 | pub unsafe fn lsx_vpickod_b(a: v16i8, b: v16i8) -> v16i8 { | 3426 | pub fn lsx_vpickod_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3427 | __lsx_vpickod_b(a, b) | 3427 | unsafe { __lsx_vpickod_b(a, b) } |
| 3428 | } | 3428 | } |
| 3429 | 3429 | ||
| 3430 | #[inline] | 3430 | #[inline] |
| 3431 | #[target_feature(enable = "lsx")] | 3431 | #[target_feature(enable = "lsx")] |
| 3432 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3432 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3433 | pub unsafe fn lsx_vpickod_h(a: v8i16, b: v8i16) -> v8i16 { | 3433 | pub fn lsx_vpickod_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3434 | __lsx_vpickod_h(a, b) | 3434 | unsafe { __lsx_vpickod_h(a, b) } |
| 3435 | } | 3435 | } |
| 3436 | 3436 | ||
| 3437 | #[inline] | 3437 | #[inline] |
| 3438 | #[target_feature(enable = "lsx")] | 3438 | #[target_feature(enable = "lsx")] |
| 3439 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3439 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3440 | pub unsafe fn lsx_vpickod_w(a: v4i32, b: v4i32) -> v4i32 { | 3440 | pub fn lsx_vpickod_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3441 | __lsx_vpickod_w(a, b) | 3441 | unsafe { __lsx_vpickod_w(a, b) } |
| 3442 | } | 3442 | } |
| 3443 | 3443 | ||
| 3444 | #[inline] | 3444 | #[inline] |
| 3445 | #[target_feature(enable = "lsx")] | 3445 | #[target_feature(enable = "lsx")] |
| 3446 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3446 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3447 | pub unsafe fn lsx_vpickod_d(a: v2i64, b: v2i64) -> v2i64 { | 3447 | pub fn lsx_vpickod_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3448 | __lsx_vpickod_d(a, b) | 3448 | unsafe { __lsx_vpickod_d(a, b) } |
| 3449 | } | 3449 | } |
| 3450 | 3450 | ||
| 3451 | #[inline] | 3451 | #[inline] |
| 3452 | #[target_feature(enable = "lsx")] | 3452 | #[target_feature(enable = "lsx")] |
| 3453 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3453 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3454 | pub unsafe fn lsx_vilvh_b(a: v16i8, b: v16i8) -> v16i8 { | 3454 | pub fn lsx_vilvh_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3455 | __lsx_vilvh_b(a, b) | 3455 | unsafe { __lsx_vilvh_b(a, b) } |
| 3456 | } | 3456 | } |
| 3457 | 3457 | ||
| 3458 | #[inline] | 3458 | #[inline] |
| 3459 | #[target_feature(enable = "lsx")] | 3459 | #[target_feature(enable = "lsx")] |
| 3460 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3460 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3461 | pub unsafe fn lsx_vilvh_h(a: v8i16, b: v8i16) -> v8i16 { | 3461 | pub fn lsx_vilvh_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3462 | __lsx_vilvh_h(a, b) | 3462 | unsafe { __lsx_vilvh_h(a, b) } |
| 3463 | } | 3463 | } |
| 3464 | 3464 | ||
| 3465 | #[inline] | 3465 | #[inline] |
| 3466 | #[target_feature(enable = "lsx")] | 3466 | #[target_feature(enable = "lsx")] |
| 3467 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3467 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3468 | pub unsafe fn lsx_vilvh_w(a: v4i32, b: v4i32) -> v4i32 { | 3468 | pub fn lsx_vilvh_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3469 | __lsx_vilvh_w(a, b) | 3469 | unsafe { __lsx_vilvh_w(a, b) } |
| 3470 | } | 3470 | } |
| 3471 | 3471 | ||
| 3472 | #[inline] | 3472 | #[inline] |
| 3473 | #[target_feature(enable = "lsx")] | 3473 | #[target_feature(enable = "lsx")] |
| 3474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3475 | pub unsafe fn lsx_vilvh_d(a: v2i64, b: v2i64) -> v2i64 { | 3475 | pub fn lsx_vilvh_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3476 | __lsx_vilvh_d(a, b) | 3476 | unsafe { __lsx_vilvh_d(a, b) } |
| 3477 | } | 3477 | } |
| 3478 | 3478 | ||
| 3479 | #[inline] | 3479 | #[inline] |
| 3480 | #[target_feature(enable = "lsx")] | 3480 | #[target_feature(enable = "lsx")] |
| 3481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3482 | pub unsafe fn lsx_vilvl_b(a: v16i8, b: v16i8) -> v16i8 { | 3482 | pub fn lsx_vilvl_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3483 | __lsx_vilvl_b(a, b) | 3483 | unsafe { __lsx_vilvl_b(a, b) } |
| 3484 | } | 3484 | } |
| 3485 | 3485 | ||
| 3486 | #[inline] | 3486 | #[inline] |
| 3487 | #[target_feature(enable = "lsx")] | 3487 | #[target_feature(enable = "lsx")] |
| 3488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3489 | pub unsafe fn lsx_vilvl_h(a: v8i16, b: v8i16) -> v8i16 { | 3489 | pub fn lsx_vilvl_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3490 | __lsx_vilvl_h(a, b) | 3490 | unsafe { __lsx_vilvl_h(a, b) } |
| 3491 | } | 3491 | } |
| 3492 | 3492 | ||
| 3493 | #[inline] | 3493 | #[inline] |
| 3494 | #[target_feature(enable = "lsx")] | 3494 | #[target_feature(enable = "lsx")] |
| 3495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3496 | pub unsafe fn lsx_vilvl_w(a: v4i32, b: v4i32) -> v4i32 { | 3496 | pub fn lsx_vilvl_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3497 | __lsx_vilvl_w(a, b) | 3497 | unsafe { __lsx_vilvl_w(a, b) } |
| 3498 | } | 3498 | } |
| 3499 | 3499 | ||
| 3500 | #[inline] | 3500 | #[inline] |
| 3501 | #[target_feature(enable = "lsx")] | 3501 | #[target_feature(enable = "lsx")] |
| 3502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3503 | pub unsafe fn lsx_vilvl_d(a: v2i64, b: v2i64) -> v2i64 { | 3503 | pub fn lsx_vilvl_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3504 | __lsx_vilvl_d(a, b) | 3504 | unsafe { __lsx_vilvl_d(a, b) } |
| 3505 | } | 3505 | } |
| 3506 | 3506 | ||
| 3507 | #[inline] | 3507 | #[inline] |
| 3508 | #[target_feature(enable = "lsx")] | 3508 | #[target_feature(enable = "lsx")] |
| 3509 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3509 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3510 | pub unsafe fn lsx_vpackev_b(a: v16i8, b: v16i8) -> v16i8 { | 3510 | pub fn lsx_vpackev_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3511 | __lsx_vpackev_b(a, b) | 3511 | unsafe { __lsx_vpackev_b(a, b) } |
| 3512 | } | 3512 | } |
| 3513 | 3513 | ||
| 3514 | #[inline] | 3514 | #[inline] |
| 3515 | #[target_feature(enable = "lsx")] | 3515 | #[target_feature(enable = "lsx")] |
| 3516 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3516 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3517 | pub unsafe fn lsx_vpackev_h(a: v8i16, b: v8i16) -> v8i16 { | 3517 | pub fn lsx_vpackev_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3518 | __lsx_vpackev_h(a, b) | 3518 | unsafe { __lsx_vpackev_h(a, b) } |
| 3519 | } | 3519 | } |
| 3520 | 3520 | ||
| 3521 | #[inline] | 3521 | #[inline] |
| 3522 | #[target_feature(enable = "lsx")] | 3522 | #[target_feature(enable = "lsx")] |
| 3523 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3523 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3524 | pub unsafe fn lsx_vpackev_w(a: v4i32, b: v4i32) -> v4i32 { | 3524 | pub fn lsx_vpackev_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3525 | __lsx_vpackev_w(a, b) | 3525 | unsafe { __lsx_vpackev_w(a, b) } |
| 3526 | } | 3526 | } |
| 3527 | 3527 | ||
| 3528 | #[inline] | 3528 | #[inline] |
| 3529 | #[target_feature(enable = "lsx")] | 3529 | #[target_feature(enable = "lsx")] |
| 3530 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3530 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3531 | pub unsafe fn lsx_vpackev_d(a: v2i64, b: v2i64) -> v2i64 { | 3531 | pub fn lsx_vpackev_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3532 | __lsx_vpackev_d(a, b) | 3532 | unsafe { __lsx_vpackev_d(a, b) } |
| 3533 | } | 3533 | } |
| 3534 | 3534 | ||
| 3535 | #[inline] | 3535 | #[inline] |
| 3536 | #[target_feature(enable = "lsx")] | 3536 | #[target_feature(enable = "lsx")] |
| 3537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3538 | pub unsafe fn lsx_vpackod_b(a: v16i8, b: v16i8) -> v16i8 { | 3538 | pub fn lsx_vpackod_b(a: v16i8, b: v16i8) -> v16i8 { |
| 3539 | __lsx_vpackod_b(a, b) | 3539 | unsafe { __lsx_vpackod_b(a, b) } |
| 3540 | } | 3540 | } |
| 3541 | 3541 | ||
| 3542 | #[inline] | 3542 | #[inline] |
| 3543 | #[target_feature(enable = "lsx")] | 3543 | #[target_feature(enable = "lsx")] |
| 3544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3545 | pub unsafe fn lsx_vpackod_h(a: v8i16, b: v8i16) -> v8i16 { | 3545 | pub fn lsx_vpackod_h(a: v8i16, b: v8i16) -> v8i16 { |
| 3546 | __lsx_vpackod_h(a, b) | 3546 | unsafe { __lsx_vpackod_h(a, b) } |
| 3547 | } | 3547 | } |
| 3548 | 3548 | ||
| 3549 | #[inline] | 3549 | #[inline] |
| 3550 | #[target_feature(enable = "lsx")] | 3550 | #[target_feature(enable = "lsx")] |
| 3551 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3551 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3552 | pub unsafe fn lsx_vpackod_w(a: v4i32, b: v4i32) -> v4i32 { | 3552 | pub fn lsx_vpackod_w(a: v4i32, b: v4i32) -> v4i32 { |
| 3553 | __lsx_vpackod_w(a, b) | 3553 | unsafe { __lsx_vpackod_w(a, b) } |
| 3554 | } | 3554 | } |
| 3555 | 3555 | ||
| 3556 | #[inline] | 3556 | #[inline] |
| 3557 | #[target_feature(enable = "lsx")] | 3557 | #[target_feature(enable = "lsx")] |
| 3558 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3558 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3559 | pub unsafe fn lsx_vpackod_d(a: v2i64, b: v2i64) -> v2i64 { | 3559 | pub fn lsx_vpackod_d(a: v2i64, b: v2i64) -> v2i64 { |
| 3560 | __lsx_vpackod_d(a, b) | 3560 | unsafe { __lsx_vpackod_d(a, b) } |
| 3561 | } | 3561 | } |
| 3562 | 3562 | ||
| 3563 | #[inline] | 3563 | #[inline] |
| 3564 | #[target_feature(enable = "lsx")] | 3564 | #[target_feature(enable = "lsx")] |
| 3565 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3565 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3566 | pub unsafe fn lsx_vshuf_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { | 3566 | pub fn lsx_vshuf_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { |
| 3567 | __lsx_vshuf_h(a, b, c) | 3567 | unsafe { __lsx_vshuf_h(a, b, c) } |
| 3568 | } | 3568 | } |
| 3569 | 3569 | ||
| 3570 | #[inline] | 3570 | #[inline] |
| 3571 | #[target_feature(enable = "lsx")] | 3571 | #[target_feature(enable = "lsx")] |
| 3572 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3572 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3573 | pub unsafe fn lsx_vshuf_w(a: v4i32, b: v4i32, c: v4i32) -> v4i32 { | 3573 | pub fn lsx_vshuf_w(a: v4i32, b: v4i32, c: v4i32) -> v4i32 { |
| 3574 | __lsx_vshuf_w(a, b, c) | 3574 | unsafe { __lsx_vshuf_w(a, b, c) } |
| 3575 | } | 3575 | } |
| 3576 | 3576 | ||
| 3577 | #[inline] | 3577 | #[inline] |
| 3578 | #[target_feature(enable = "lsx")] | 3578 | #[target_feature(enable = "lsx")] |
| 3579 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3579 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3580 | pub unsafe fn lsx_vshuf_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { | 3580 | pub fn lsx_vshuf_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { |
| 3581 | __lsx_vshuf_d(a, b, c) | 3581 | unsafe { __lsx_vshuf_d(a, b, c) } |
| 3582 | } | 3582 | } |
| 3583 | 3583 | ||
| 3584 | #[inline] | 3584 | #[inline] |
| 3585 | #[target_feature(enable = "lsx")] | 3585 | #[target_feature(enable = "lsx")] |
| 3586 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3586 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3587 | pub unsafe fn lsx_vand_v(a: v16u8, b: v16u8) -> v16u8 { | 3587 | pub fn lsx_vand_v(a: v16u8, b: v16u8) -> v16u8 { |
| 3588 | __lsx_vand_v(a, b) | 3588 | unsafe { __lsx_vand_v(a, b) } |
| 3589 | } | 3589 | } |
| 3590 | 3590 | ||
| 3591 | #[inline] | 3591 | #[inline] |
| 3592 | #[target_feature(enable = "lsx")] | 3592 | #[target_feature(enable = "lsx")] |
| 3593 | #[rustc_legacy_const_generics(1)] | 3593 | #[rustc_legacy_const_generics(1)] |
| 3594 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3594 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3595 | pub unsafe fn lsx_vandi_b<const IMM8: u32>(a: v16u8) -> v16u8 { | 3595 | pub fn lsx_vandi_b<const IMM8: u32>(a: v16u8) -> v16u8 { |
| 3596 | static_assert_uimm_bits!(IMM8, 8); | 3596 | static_assert_uimm_bits!(IMM8, 8); |
| 3597 | __lsx_vandi_b(a, IMM8) | 3597 | unsafe { __lsx_vandi_b(a, IMM8) } |
| 3598 | } | 3598 | } |
| 3599 | 3599 | ||
| 3600 | #[inline] | 3600 | #[inline] |
| 3601 | #[target_feature(enable = "lsx")] | 3601 | #[target_feature(enable = "lsx")] |
| 3602 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3602 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3603 | pub unsafe fn lsx_vor_v(a: v16u8, b: v16u8) -> v16u8 { | 3603 | pub fn lsx_vor_v(a: v16u8, b: v16u8) -> v16u8 { |
| 3604 | __lsx_vor_v(a, b) | 3604 | unsafe { __lsx_vor_v(a, b) } |
| 3605 | } | 3605 | } |
| 3606 | 3606 | ||
| 3607 | #[inline] | 3607 | #[inline] |
| 3608 | #[target_feature(enable = "lsx")] | 3608 | #[target_feature(enable = "lsx")] |
| 3609 | #[rustc_legacy_const_generics(1)] | 3609 | #[rustc_legacy_const_generics(1)] |
| 3610 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3610 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3611 | pub unsafe fn lsx_vori_b<const IMM8: u32>(a: v16u8) -> v16u8 { | 3611 | pub fn lsx_vori_b<const IMM8: u32>(a: v16u8) -> v16u8 { |
| 3612 | static_assert_uimm_bits!(IMM8, 8); | 3612 | static_assert_uimm_bits!(IMM8, 8); |
| 3613 | __lsx_vori_b(a, IMM8) | 3613 | unsafe { __lsx_vori_b(a, IMM8) } |
| 3614 | } | 3614 | } |
| 3615 | 3615 | ||
| 3616 | #[inline] | 3616 | #[inline] |
| 3617 | #[target_feature(enable = "lsx")] | 3617 | #[target_feature(enable = "lsx")] |
| 3618 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3618 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3619 | pub unsafe fn lsx_vnor_v(a: v16u8, b: v16u8) -> v16u8 { | 3619 | pub fn lsx_vnor_v(a: v16u8, b: v16u8) -> v16u8 { |
| 3620 | __lsx_vnor_v(a, b) | 3620 | unsafe { __lsx_vnor_v(a, b) } |
| 3621 | } | 3621 | } |
| 3622 | 3622 | ||
| 3623 | #[inline] | 3623 | #[inline] |
| 3624 | #[target_feature(enable = "lsx")] | 3624 | #[target_feature(enable = "lsx")] |
| 3625 | #[rustc_legacy_const_generics(1)] | 3625 | #[rustc_legacy_const_generics(1)] |
| 3626 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3626 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3627 | pub unsafe fn lsx_vnori_b<const IMM8: u32>(a: v16u8) -> v16u8 { | 3627 | pub fn lsx_vnori_b<const IMM8: u32>(a: v16u8) -> v16u8 { |
| 3628 | static_assert_uimm_bits!(IMM8, 8); | 3628 | static_assert_uimm_bits!(IMM8, 8); |
| 3629 | __lsx_vnori_b(a, IMM8) | 3629 | unsafe { __lsx_vnori_b(a, IMM8) } |
| 3630 | } | 3630 | } |
| 3631 | 3631 | ||
| 3632 | #[inline] | 3632 | #[inline] |
| 3633 | #[target_feature(enable = "lsx")] | 3633 | #[target_feature(enable = "lsx")] |
| 3634 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3634 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3635 | pub unsafe fn lsx_vxor_v(a: v16u8, b: v16u8) -> v16u8 { | 3635 | pub fn lsx_vxor_v(a: v16u8, b: v16u8) -> v16u8 { |
| 3636 | __lsx_vxor_v(a, b) | 3636 | unsafe { __lsx_vxor_v(a, b) } |
| 3637 | } | 3637 | } |
| 3638 | 3638 | ||
| 3639 | #[inline] | 3639 | #[inline] |
| 3640 | #[target_feature(enable = "lsx")] | 3640 | #[target_feature(enable = "lsx")] |
| 3641 | #[rustc_legacy_const_generics(1)] | 3641 | #[rustc_legacy_const_generics(1)] |
| 3642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3643 | pub unsafe fn lsx_vxori_b<const IMM8: u32>(a: v16u8) -> v16u8 { | 3643 | pub fn lsx_vxori_b<const IMM8: u32>(a: v16u8) -> v16u8 { |
| 3644 | static_assert_uimm_bits!(IMM8, 8); | 3644 | static_assert_uimm_bits!(IMM8, 8); |
| 3645 | __lsx_vxori_b(a, IMM8) | 3645 | unsafe { __lsx_vxori_b(a, IMM8) } |
| 3646 | } | 3646 | } |
| 3647 | 3647 | ||
| 3648 | #[inline] | 3648 | #[inline] |
| 3649 | #[target_feature(enable = "lsx")] | 3649 | #[target_feature(enable = "lsx")] |
| 3650 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3650 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3651 | pub unsafe fn lsx_vbitsel_v(a: v16u8, b: v16u8, c: v16u8) -> v16u8 { | 3651 | pub fn lsx_vbitsel_v(a: v16u8, b: v16u8, c: v16u8) -> v16u8 { |
| 3652 | __lsx_vbitsel_v(a, b, c) | 3652 | unsafe { __lsx_vbitsel_v(a, b, c) } |
| 3653 | } | 3653 | } |
| 3654 | 3654 | ||
| 3655 | #[inline] | 3655 | #[inline] |
| 3656 | #[target_feature(enable = "lsx")] | 3656 | #[target_feature(enable = "lsx")] |
| 3657 | #[rustc_legacy_const_generics(2)] | 3657 | #[rustc_legacy_const_generics(2)] |
| 3658 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3658 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3659 | pub unsafe fn lsx_vbitseli_b<const IMM8: u32>(a: v16u8, b: v16u8) -> v16u8 { | 3659 | pub fn lsx_vbitseli_b<const IMM8: u32>(a: v16u8, b: v16u8) -> v16u8 { |
| 3660 | static_assert_uimm_bits!(IMM8, 8); | 3660 | static_assert_uimm_bits!(IMM8, 8); |
| 3661 | __lsx_vbitseli_b(a, b, IMM8) | 3661 | unsafe { __lsx_vbitseli_b(a, b, IMM8) } |
| 3662 | } | 3662 | } |
| 3663 | 3663 | ||
| 3664 | #[inline] | 3664 | #[inline] |
| 3665 | #[target_feature(enable = "lsx")] | 3665 | #[target_feature(enable = "lsx")] |
| 3666 | #[rustc_legacy_const_generics(1)] | 3666 | #[rustc_legacy_const_generics(1)] |
| 3667 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3667 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3668 | pub unsafe fn lsx_vshuf4i_b<const IMM8: u32>(a: v16i8) -> v16i8 { | 3668 | pub fn lsx_vshuf4i_b<const IMM8: u32>(a: v16i8) -> v16i8 { |
| 3669 | static_assert_uimm_bits!(IMM8, 8); | 3669 | static_assert_uimm_bits!(IMM8, 8); |
| 3670 | __lsx_vshuf4i_b(a, IMM8) | 3670 | unsafe { __lsx_vshuf4i_b(a, IMM8) } |
| 3671 | } | 3671 | } |
| 3672 | 3672 | ||
| 3673 | #[inline] | 3673 | #[inline] |
| 3674 | #[target_feature(enable = "lsx")] | 3674 | #[target_feature(enable = "lsx")] |
| 3675 | #[rustc_legacy_const_generics(1)] | 3675 | #[rustc_legacy_const_generics(1)] |
| 3676 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3676 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3677 | pub unsafe fn lsx_vshuf4i_h<const IMM8: u32>(a: v8i16) -> v8i16 { | 3677 | pub fn lsx_vshuf4i_h<const IMM8: u32>(a: v8i16) -> v8i16 { |
| 3678 | static_assert_uimm_bits!(IMM8, 8); | 3678 | static_assert_uimm_bits!(IMM8, 8); |
| 3679 | __lsx_vshuf4i_h(a, IMM8) | 3679 | unsafe { __lsx_vshuf4i_h(a, IMM8) } |
| 3680 | } | 3680 | } |
| 3681 | 3681 | ||
| 3682 | #[inline] | 3682 | #[inline] |
| 3683 | #[target_feature(enable = "lsx")] | 3683 | #[target_feature(enable = "lsx")] |
| 3684 | #[rustc_legacy_const_generics(1)] | 3684 | #[rustc_legacy_const_generics(1)] |
| 3685 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3685 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3686 | pub unsafe fn lsx_vshuf4i_w<const IMM8: u32>(a: v4i32) -> v4i32 { | 3686 | pub fn lsx_vshuf4i_w<const IMM8: u32>(a: v4i32) -> v4i32 { |
| 3687 | static_assert_uimm_bits!(IMM8, 8); | 3687 | static_assert_uimm_bits!(IMM8, 8); |
| 3688 | __lsx_vshuf4i_w(a, IMM8) | 3688 | unsafe { __lsx_vshuf4i_w(a, IMM8) } |
| 3689 | } | 3689 | } |
| 3690 | 3690 | ||
| 3691 | #[inline] | 3691 | #[inline] |
| 3692 | #[target_feature(enable = "lsx")] | 3692 | #[target_feature(enable = "lsx")] |
| 3693 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3693 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3694 | pub unsafe fn lsx_vreplgr2vr_b(a: i32) -> v16i8 { | 3694 | pub fn lsx_vreplgr2vr_b(a: i32) -> v16i8 { |
| 3695 | __lsx_vreplgr2vr_b(a) | 3695 | unsafe { __lsx_vreplgr2vr_b(a) } |
| 3696 | } | 3696 | } |
| 3697 | 3697 | ||
| 3698 | #[inline] | 3698 | #[inline] |
| 3699 | #[target_feature(enable = "lsx")] | 3699 | #[target_feature(enable = "lsx")] |
| 3700 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3700 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3701 | pub unsafe fn lsx_vreplgr2vr_h(a: i32) -> v8i16 { | 3701 | pub fn lsx_vreplgr2vr_h(a: i32) -> v8i16 { |
| 3702 | __lsx_vreplgr2vr_h(a) | 3702 | unsafe { __lsx_vreplgr2vr_h(a) } |
| 3703 | } | 3703 | } |
| 3704 | 3704 | ||
| 3705 | #[inline] | 3705 | #[inline] |
| 3706 | #[target_feature(enable = "lsx")] | 3706 | #[target_feature(enable = "lsx")] |
| 3707 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3707 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3708 | pub unsafe fn lsx_vreplgr2vr_w(a: i32) -> v4i32 { | 3708 | pub fn lsx_vreplgr2vr_w(a: i32) -> v4i32 { |
| 3709 | __lsx_vreplgr2vr_w(a) | 3709 | unsafe { __lsx_vreplgr2vr_w(a) } |
| 3710 | } | 3710 | } |
| 3711 | 3711 | ||
| 3712 | #[inline] | 3712 | #[inline] |
| 3713 | #[target_feature(enable = "lsx")] | 3713 | #[target_feature(enable = "lsx")] |
| 3714 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3714 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3715 | pub unsafe fn lsx_vreplgr2vr_d(a: i64) -> v2i64 { | 3715 | pub fn lsx_vreplgr2vr_d(a: i64) -> v2i64 { |
| 3716 | __lsx_vreplgr2vr_d(a) | 3716 | unsafe { __lsx_vreplgr2vr_d(a) } |
| 3717 | } | 3717 | } |
| 3718 | 3718 | ||
| 3719 | #[inline] | 3719 | #[inline] |
| 3720 | #[target_feature(enable = "lsx")] | 3720 | #[target_feature(enable = "lsx")] |
| 3721 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3721 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3722 | pub unsafe fn lsx_vpcnt_b(a: v16i8) -> v16i8 { | 3722 | pub fn lsx_vpcnt_b(a: v16i8) -> v16i8 { |
| 3723 | __lsx_vpcnt_b(a) | 3723 | unsafe { __lsx_vpcnt_b(a) } |
| 3724 | } | 3724 | } |
| 3725 | 3725 | ||
| 3726 | #[inline] | 3726 | #[inline] |
| 3727 | #[target_feature(enable = "lsx")] | 3727 | #[target_feature(enable = "lsx")] |
| 3728 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3728 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3729 | pub unsafe fn lsx_vpcnt_h(a: v8i16) -> v8i16 { | 3729 | pub fn lsx_vpcnt_h(a: v8i16) -> v8i16 { |
| 3730 | __lsx_vpcnt_h(a) | 3730 | unsafe { __lsx_vpcnt_h(a) } |
| 3731 | } | 3731 | } |
| 3732 | 3732 | ||
| 3733 | #[inline] | 3733 | #[inline] |
| 3734 | #[target_feature(enable = "lsx")] | 3734 | #[target_feature(enable = "lsx")] |
| 3735 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3735 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3736 | pub unsafe fn lsx_vpcnt_w(a: v4i32) -> v4i32 { | 3736 | pub fn lsx_vpcnt_w(a: v4i32) -> v4i32 { |
| 3737 | __lsx_vpcnt_w(a) | 3737 | unsafe { __lsx_vpcnt_w(a) } |
| 3738 | } | 3738 | } |
| 3739 | 3739 | ||
| 3740 | #[inline] | 3740 | #[inline] |
| 3741 | #[target_feature(enable = "lsx")] | 3741 | #[target_feature(enable = "lsx")] |
| 3742 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3742 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3743 | pub unsafe fn lsx_vpcnt_d(a: v2i64) -> v2i64 { | 3743 | pub fn lsx_vpcnt_d(a: v2i64) -> v2i64 { |
| 3744 | __lsx_vpcnt_d(a) | 3744 | unsafe { __lsx_vpcnt_d(a) } |
| 3745 | } | 3745 | } |
| 3746 | 3746 | ||
| 3747 | #[inline] | 3747 | #[inline] |
| 3748 | #[target_feature(enable = "lsx")] | 3748 | #[target_feature(enable = "lsx")] |
| 3749 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3749 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3750 | pub unsafe fn lsx_vclo_b(a: v16i8) -> v16i8 { | 3750 | pub fn lsx_vclo_b(a: v16i8) -> v16i8 { |
| 3751 | __lsx_vclo_b(a) | 3751 | unsafe { __lsx_vclo_b(a) } |
| 3752 | } | 3752 | } |
| 3753 | 3753 | ||
| 3754 | #[inline] | 3754 | #[inline] |
| 3755 | #[target_feature(enable = "lsx")] | 3755 | #[target_feature(enable = "lsx")] |
| 3756 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3756 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3757 | pub unsafe fn lsx_vclo_h(a: v8i16) -> v8i16 { | 3757 | pub fn lsx_vclo_h(a: v8i16) -> v8i16 { |
| 3758 | __lsx_vclo_h(a) | 3758 | unsafe { __lsx_vclo_h(a) } |
| 3759 | } | 3759 | } |
| 3760 | 3760 | ||
| 3761 | #[inline] | 3761 | #[inline] |
| 3762 | #[target_feature(enable = "lsx")] | 3762 | #[target_feature(enable = "lsx")] |
| 3763 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3763 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3764 | pub unsafe fn lsx_vclo_w(a: v4i32) -> v4i32 { | 3764 | pub fn lsx_vclo_w(a: v4i32) -> v4i32 { |
| 3765 | __lsx_vclo_w(a) | 3765 | unsafe { __lsx_vclo_w(a) } |
| 3766 | } | 3766 | } |
| 3767 | 3767 | ||
| 3768 | #[inline] | 3768 | #[inline] |
| 3769 | #[target_feature(enable = "lsx")] | 3769 | #[target_feature(enable = "lsx")] |
| 3770 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3770 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3771 | pub unsafe fn lsx_vclo_d(a: v2i64) -> v2i64 { | 3771 | pub fn lsx_vclo_d(a: v2i64) -> v2i64 { |
| 3772 | __lsx_vclo_d(a) | 3772 | unsafe { __lsx_vclo_d(a) } |
| 3773 | } | 3773 | } |
| 3774 | 3774 | ||
| 3775 | #[inline] | 3775 | #[inline] |
| 3776 | #[target_feature(enable = "lsx")] | 3776 | #[target_feature(enable = "lsx")] |
| 3777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3778 | pub unsafe fn lsx_vclz_b(a: v16i8) -> v16i8 { | 3778 | pub fn lsx_vclz_b(a: v16i8) -> v16i8 { |
| 3779 | __lsx_vclz_b(a) | 3779 | unsafe { __lsx_vclz_b(a) } |
| 3780 | } | 3780 | } |
| 3781 | 3781 | ||
| 3782 | #[inline] | 3782 | #[inline] |
| 3783 | #[target_feature(enable = "lsx")] | 3783 | #[target_feature(enable = "lsx")] |
| 3784 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3784 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3785 | pub unsafe fn lsx_vclz_h(a: v8i16) -> v8i16 { | 3785 | pub fn lsx_vclz_h(a: v8i16) -> v8i16 { |
| 3786 | __lsx_vclz_h(a) | 3786 | unsafe { __lsx_vclz_h(a) } |
| 3787 | } | 3787 | } |
| 3788 | 3788 | ||
| 3789 | #[inline] | 3789 | #[inline] |
| 3790 | #[target_feature(enable = "lsx")] | 3790 | #[target_feature(enable = "lsx")] |
| 3791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3792 | pub unsafe fn lsx_vclz_w(a: v4i32) -> v4i32 { | 3792 | pub fn lsx_vclz_w(a: v4i32) -> v4i32 { |
| 3793 | __lsx_vclz_w(a) | 3793 | unsafe { __lsx_vclz_w(a) } |
| 3794 | } | 3794 | } |
| 3795 | 3795 | ||
| 3796 | #[inline] | 3796 | #[inline] |
| 3797 | #[target_feature(enable = "lsx")] | 3797 | #[target_feature(enable = "lsx")] |
| 3798 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3798 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3799 | pub unsafe fn lsx_vclz_d(a: v2i64) -> v2i64 { | 3799 | pub fn lsx_vclz_d(a: v2i64) -> v2i64 { |
| 3800 | __lsx_vclz_d(a) | 3800 | unsafe { __lsx_vclz_d(a) } |
| 3801 | } | 3801 | } |
| 3802 | 3802 | ||
| 3803 | #[inline] | 3803 | #[inline] |
| 3804 | #[target_feature(enable = "lsx")] | 3804 | #[target_feature(enable = "lsx")] |
| 3805 | #[rustc_legacy_const_generics(1)] | 3805 | #[rustc_legacy_const_generics(1)] |
| 3806 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3806 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3807 | pub unsafe fn lsx_vpickve2gr_b<const IMM4: u32>(a: v16i8) -> i32 { | 3807 | pub fn lsx_vpickve2gr_b<const IMM4: u32>(a: v16i8) -> i32 { |
| 3808 | static_assert_uimm_bits!(IMM4, 4); | 3808 | static_assert_uimm_bits!(IMM4, 4); |
| 3809 | __lsx_vpickve2gr_b(a, IMM4) | 3809 | unsafe { __lsx_vpickve2gr_b(a, IMM4) } |
| 3810 | } | 3810 | } |
| 3811 | 3811 | ||
| 3812 | #[inline] | 3812 | #[inline] |
| 3813 | #[target_feature(enable = "lsx")] | 3813 | #[target_feature(enable = "lsx")] |
| 3814 | #[rustc_legacy_const_generics(1)] | 3814 | #[rustc_legacy_const_generics(1)] |
| 3815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3815 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3816 | pub unsafe fn lsx_vpickve2gr_h<const IMM3: u32>(a: v8i16) -> i32 { | 3816 | pub fn lsx_vpickve2gr_h<const IMM3: u32>(a: v8i16) -> i32 { |
| 3817 | static_assert_uimm_bits!(IMM3, 3); | 3817 | static_assert_uimm_bits!(IMM3, 3); |
| 3818 | __lsx_vpickve2gr_h(a, IMM3) | 3818 | unsafe { __lsx_vpickve2gr_h(a, IMM3) } |
| 3819 | } | 3819 | } |
| 3820 | 3820 | ||
| 3821 | #[inline] | 3821 | #[inline] |
| 3822 | #[target_feature(enable = "lsx")] | 3822 | #[target_feature(enable = "lsx")] |
| 3823 | #[rustc_legacy_const_generics(1)] | 3823 | #[rustc_legacy_const_generics(1)] |
| 3824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3824 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3825 | pub unsafe fn lsx_vpickve2gr_w<const IMM2: u32>(a: v4i32) -> i32 { | 3825 | pub fn lsx_vpickve2gr_w<const IMM2: u32>(a: v4i32) -> i32 { |
| 3826 | static_assert_uimm_bits!(IMM2, 2); | 3826 | static_assert_uimm_bits!(IMM2, 2); |
| 3827 | __lsx_vpickve2gr_w(a, IMM2) | 3827 | unsafe { __lsx_vpickve2gr_w(a, IMM2) } |
| 3828 | } | 3828 | } |
| 3829 | 3829 | ||
| 3830 | #[inline] | 3830 | #[inline] |
| 3831 | #[target_feature(enable = "lsx")] | 3831 | #[target_feature(enable = "lsx")] |
| 3832 | #[rustc_legacy_const_generics(1)] | 3832 | #[rustc_legacy_const_generics(1)] |
| 3833 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3833 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3834 | pub unsafe fn lsx_vpickve2gr_d<const IMM1: u32>(a: v2i64) -> i64 { | 3834 | pub fn lsx_vpickve2gr_d<const IMM1: u32>(a: v2i64) -> i64 { |
| 3835 | static_assert_uimm_bits!(IMM1, 1); | 3835 | static_assert_uimm_bits!(IMM1, 1); |
| 3836 | __lsx_vpickve2gr_d(a, IMM1) | 3836 | unsafe { __lsx_vpickve2gr_d(a, IMM1) } |
| 3837 | } | 3837 | } |
| 3838 | 3838 | ||
| 3839 | #[inline] | 3839 | #[inline] |
| 3840 | #[target_feature(enable = "lsx")] | 3840 | #[target_feature(enable = "lsx")] |
| 3841 | #[rustc_legacy_const_generics(1)] | 3841 | #[rustc_legacy_const_generics(1)] |
| 3842 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3842 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3843 | pub unsafe fn lsx_vpickve2gr_bu<const IMM4: u32>(a: v16i8) -> u32 { | 3843 | pub fn lsx_vpickve2gr_bu<const IMM4: u32>(a: v16i8) -> u32 { |
| 3844 | static_assert_uimm_bits!(IMM4, 4); | 3844 | static_assert_uimm_bits!(IMM4, 4); |
| 3845 | __lsx_vpickve2gr_bu(a, IMM4) | 3845 | unsafe { __lsx_vpickve2gr_bu(a, IMM4) } |
| 3846 | } | 3846 | } |
| 3847 | 3847 | ||
| 3848 | #[inline] | 3848 | #[inline] |
| 3849 | #[target_feature(enable = "lsx")] | 3849 | #[target_feature(enable = "lsx")] |
| 3850 | #[rustc_legacy_const_generics(1)] | 3850 | #[rustc_legacy_const_generics(1)] |
| 3851 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3851 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3852 | pub unsafe fn lsx_vpickve2gr_hu<const IMM3: u32>(a: v8i16) -> u32 { | 3852 | pub fn lsx_vpickve2gr_hu<const IMM3: u32>(a: v8i16) -> u32 { |
| 3853 | static_assert_uimm_bits!(IMM3, 3); | 3853 | static_assert_uimm_bits!(IMM3, 3); |
| 3854 | __lsx_vpickve2gr_hu(a, IMM3) | 3854 | unsafe { __lsx_vpickve2gr_hu(a, IMM3) } |
| 3855 | } | 3855 | } |
| 3856 | 3856 | ||
| 3857 | #[inline] | 3857 | #[inline] |
| 3858 | #[target_feature(enable = "lsx")] | 3858 | #[target_feature(enable = "lsx")] |
| 3859 | #[rustc_legacy_const_generics(1)] | 3859 | #[rustc_legacy_const_generics(1)] |
| 3860 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3860 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3861 | pub unsafe fn lsx_vpickve2gr_wu<const IMM2: u32>(a: v4i32) -> u32 { | 3861 | pub fn lsx_vpickve2gr_wu<const IMM2: u32>(a: v4i32) -> u32 { |
| 3862 | static_assert_uimm_bits!(IMM2, 2); | 3862 | static_assert_uimm_bits!(IMM2, 2); |
| 3863 | __lsx_vpickve2gr_wu(a, IMM2) | 3863 | unsafe { __lsx_vpickve2gr_wu(a, IMM2) } |
| 3864 | } | 3864 | } |
| 3865 | 3865 | ||
| 3866 | #[inline] | 3866 | #[inline] |
| 3867 | #[target_feature(enable = "lsx")] | 3867 | #[target_feature(enable = "lsx")] |
| 3868 | #[rustc_legacy_const_generics(1)] | 3868 | #[rustc_legacy_const_generics(1)] |
| 3869 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3869 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3870 | pub unsafe fn lsx_vpickve2gr_du<const IMM1: u32>(a: v2i64) -> u64 { | 3870 | pub fn lsx_vpickve2gr_du<const IMM1: u32>(a: v2i64) -> u64 { |
| 3871 | static_assert_uimm_bits!(IMM1, 1); | 3871 | static_assert_uimm_bits!(IMM1, 1); |
| 3872 | __lsx_vpickve2gr_du(a, IMM1) | 3872 | unsafe { __lsx_vpickve2gr_du(a, IMM1) } |
| 3873 | } | 3873 | } |
| 3874 | 3874 | ||
| 3875 | #[inline] | 3875 | #[inline] |
| 3876 | #[target_feature(enable = "lsx")] | 3876 | #[target_feature(enable = "lsx")] |
| 3877 | #[rustc_legacy_const_generics(2)] | 3877 | #[rustc_legacy_const_generics(2)] |
| 3878 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3878 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3879 | pub unsafe fn lsx_vinsgr2vr_b<const IMM4: u32>(a: v16i8, b: i32) -> v16i8 { | 3879 | pub fn lsx_vinsgr2vr_b<const IMM4: u32>(a: v16i8, b: i32) -> v16i8 { |
| 3880 | static_assert_uimm_bits!(IMM4, 4); | 3880 | static_assert_uimm_bits!(IMM4, 4); |
| 3881 | __lsx_vinsgr2vr_b(a, b, IMM4) | 3881 | unsafe { __lsx_vinsgr2vr_b(a, b, IMM4) } |
| 3882 | } | 3882 | } |
| 3883 | 3883 | ||
| 3884 | #[inline] | 3884 | #[inline] |
| 3885 | #[target_feature(enable = "lsx")] | 3885 | #[target_feature(enable = "lsx")] |
| 3886 | #[rustc_legacy_const_generics(2)] | 3886 | #[rustc_legacy_const_generics(2)] |
| 3887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3887 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3888 | pub unsafe fn lsx_vinsgr2vr_h<const IMM3: u32>(a: v8i16, b: i32) -> v8i16 { | 3888 | pub fn lsx_vinsgr2vr_h<const IMM3: u32>(a: v8i16, b: i32) -> v8i16 { |
| 3889 | static_assert_uimm_bits!(IMM3, 3); | 3889 | static_assert_uimm_bits!(IMM3, 3); |
| 3890 | __lsx_vinsgr2vr_h(a, b, IMM3) | 3890 | unsafe { __lsx_vinsgr2vr_h(a, b, IMM3) } |
| 3891 | } | 3891 | } |
| 3892 | 3892 | ||
| 3893 | #[inline] | 3893 | #[inline] |
| 3894 | #[target_feature(enable = "lsx")] | 3894 | #[target_feature(enable = "lsx")] |
| 3895 | #[rustc_legacy_const_generics(2)] | 3895 | #[rustc_legacy_const_generics(2)] |
| 3896 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3896 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3897 | pub unsafe fn lsx_vinsgr2vr_w<const IMM2: u32>(a: v4i32, b: i32) -> v4i32 { | 3897 | pub fn lsx_vinsgr2vr_w<const IMM2: u32>(a: v4i32, b: i32) -> v4i32 { |
| 3898 | static_assert_uimm_bits!(IMM2, 2); | 3898 | static_assert_uimm_bits!(IMM2, 2); |
| 3899 | __lsx_vinsgr2vr_w(a, b, IMM2) | 3899 | unsafe { __lsx_vinsgr2vr_w(a, b, IMM2) } |
| 3900 | } | 3900 | } |
| 3901 | 3901 | ||
| 3902 | #[inline] | 3902 | #[inline] |
| 3903 | #[target_feature(enable = "lsx")] | 3903 | #[target_feature(enable = "lsx")] |
| 3904 | #[rustc_legacy_const_generics(2)] | 3904 | #[rustc_legacy_const_generics(2)] |
| 3905 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3905 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3906 | pub unsafe fn lsx_vinsgr2vr_d<const IMM1: u32>(a: v2i64, b: i64) -> v2i64 { | 3906 | pub fn lsx_vinsgr2vr_d<const IMM1: u32>(a: v2i64, b: i64) -> v2i64 { |
| 3907 | static_assert_uimm_bits!(IMM1, 1); | 3907 | static_assert_uimm_bits!(IMM1, 1); |
| 3908 | __lsx_vinsgr2vr_d(a, b, IMM1) | 3908 | unsafe { __lsx_vinsgr2vr_d(a, b, IMM1) } |
| 3909 | } | 3909 | } |
| 3910 | 3910 | ||
| 3911 | #[inline] | 3911 | #[inline] |
| 3912 | #[target_feature(enable = "lsx")] | 3912 | #[target_feature(enable = "lsx")] |
| 3913 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3913 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3914 | pub unsafe fn lsx_vfadd_s(a: v4f32, b: v4f32) -> v4f32 { | 3914 | pub fn lsx_vfadd_s(a: v4f32, b: v4f32) -> v4f32 { |
| 3915 | __lsx_vfadd_s(a, b) | 3915 | unsafe { __lsx_vfadd_s(a, b) } |
| 3916 | } | 3916 | } |
| 3917 | 3917 | ||
| 3918 | #[inline] | 3918 | #[inline] |
| 3919 | #[target_feature(enable = "lsx")] | 3919 | #[target_feature(enable = "lsx")] |
| 3920 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3920 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3921 | pub unsafe fn lsx_vfadd_d(a: v2f64, b: v2f64) -> v2f64 { | 3921 | pub fn lsx_vfadd_d(a: v2f64, b: v2f64) -> v2f64 { |
| 3922 | __lsx_vfadd_d(a, b) | 3922 | unsafe { __lsx_vfadd_d(a, b) } |
| 3923 | } | 3923 | } |
| 3924 | 3924 | ||
| 3925 | #[inline] | 3925 | #[inline] |
| 3926 | #[target_feature(enable = "lsx")] | 3926 | #[target_feature(enable = "lsx")] |
| 3927 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3927 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3928 | pub unsafe fn lsx_vfsub_s(a: v4f32, b: v4f32) -> v4f32 { | 3928 | pub fn lsx_vfsub_s(a: v4f32, b: v4f32) -> v4f32 { |
| 3929 | __lsx_vfsub_s(a, b) | 3929 | unsafe { __lsx_vfsub_s(a, b) } |
| 3930 | } | 3930 | } |
| 3931 | 3931 | ||
| 3932 | #[inline] | 3932 | #[inline] |
| 3933 | #[target_feature(enable = "lsx")] | 3933 | #[target_feature(enable = "lsx")] |
| 3934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3935 | pub unsafe fn lsx_vfsub_d(a: v2f64, b: v2f64) -> v2f64 { | 3935 | pub fn lsx_vfsub_d(a: v2f64, b: v2f64) -> v2f64 { |
| 3936 | __lsx_vfsub_d(a, b) | 3936 | unsafe { __lsx_vfsub_d(a, b) } |
| 3937 | } | 3937 | } |
| 3938 | 3938 | ||
| 3939 | #[inline] | 3939 | #[inline] |
| 3940 | #[target_feature(enable = "lsx")] | 3940 | #[target_feature(enable = "lsx")] |
| 3941 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3941 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3942 | pub unsafe fn lsx_vfmul_s(a: v4f32, b: v4f32) -> v4f32 { | 3942 | pub fn lsx_vfmul_s(a: v4f32, b: v4f32) -> v4f32 { |
| 3943 | __lsx_vfmul_s(a, b) | 3943 | unsafe { __lsx_vfmul_s(a, b) } |
| 3944 | } | 3944 | } |
| 3945 | 3945 | ||
| 3946 | #[inline] | 3946 | #[inline] |
| 3947 | #[target_feature(enable = "lsx")] | 3947 | #[target_feature(enable = "lsx")] |
| 3948 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3948 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3949 | pub unsafe fn lsx_vfmul_d(a: v2f64, b: v2f64) -> v2f64 { | 3949 | pub fn lsx_vfmul_d(a: v2f64, b: v2f64) -> v2f64 { |
| 3950 | __lsx_vfmul_d(a, b) | 3950 | unsafe { __lsx_vfmul_d(a, b) } |
| 3951 | } | 3951 | } |
| 3952 | 3952 | ||
| 3953 | #[inline] | 3953 | #[inline] |
| 3954 | #[target_feature(enable = "lsx")] | 3954 | #[target_feature(enable = "lsx")] |
| 3955 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3955 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3956 | pub unsafe fn lsx_vfdiv_s(a: v4f32, b: v4f32) -> v4f32 { | 3956 | pub fn lsx_vfdiv_s(a: v4f32, b: v4f32) -> v4f32 { |
| 3957 | __lsx_vfdiv_s(a, b) | 3957 | unsafe { __lsx_vfdiv_s(a, b) } |
| 3958 | } | 3958 | } |
| 3959 | 3959 | ||
| 3960 | #[inline] | 3960 | #[inline] |
| 3961 | #[target_feature(enable = "lsx")] | 3961 | #[target_feature(enable = "lsx")] |
| 3962 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3962 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3963 | pub unsafe fn lsx_vfdiv_d(a: v2f64, b: v2f64) -> v2f64 { | 3963 | pub fn lsx_vfdiv_d(a: v2f64, b: v2f64) -> v2f64 { |
| 3964 | __lsx_vfdiv_d(a, b) | 3964 | unsafe { __lsx_vfdiv_d(a, b) } |
| 3965 | } | 3965 | } |
| 3966 | 3966 | ||
| 3967 | #[inline] | 3967 | #[inline] |
| 3968 | #[target_feature(enable = "lsx")] | 3968 | #[target_feature(enable = "lsx")] |
| 3969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3969 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3970 | pub unsafe fn lsx_vfcvt_h_s(a: v4f32, b: v4f32) -> v8i16 { | 3970 | pub fn lsx_vfcvt_h_s(a: v4f32, b: v4f32) -> v8i16 { |
| 3971 | __lsx_vfcvt_h_s(a, b) | 3971 | unsafe { __lsx_vfcvt_h_s(a, b) } |
| 3972 | } | 3972 | } |
| 3973 | 3973 | ||
| 3974 | #[inline] | 3974 | #[inline] |
| 3975 | #[target_feature(enable = "lsx")] | 3975 | #[target_feature(enable = "lsx")] |
| 3976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3976 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3977 | pub unsafe fn lsx_vfcvt_s_d(a: v2f64, b: v2f64) -> v4f32 { | 3977 | pub fn lsx_vfcvt_s_d(a: v2f64, b: v2f64) -> v4f32 { |
| 3978 | __lsx_vfcvt_s_d(a, b) | 3978 | unsafe { __lsx_vfcvt_s_d(a, b) } |
| 3979 | } | 3979 | } |
| 3980 | 3980 | ||
| 3981 | #[inline] | 3981 | #[inline] |
| 3982 | #[target_feature(enable = "lsx")] | 3982 | #[target_feature(enable = "lsx")] |
| 3983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3983 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3984 | pub unsafe fn lsx_vfmin_s(a: v4f32, b: v4f32) -> v4f32 { | 3984 | pub fn lsx_vfmin_s(a: v4f32, b: v4f32) -> v4f32 { |
| 3985 | __lsx_vfmin_s(a, b) | 3985 | unsafe { __lsx_vfmin_s(a, b) } |
| 3986 | } | 3986 | } |
| 3987 | 3987 | ||
| 3988 | #[inline] | 3988 | #[inline] |
| 3989 | #[target_feature(enable = "lsx")] | 3989 | #[target_feature(enable = "lsx")] |
| 3990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3990 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3991 | pub unsafe fn lsx_vfmin_d(a: v2f64, b: v2f64) -> v2f64 { | 3991 | pub fn lsx_vfmin_d(a: v2f64, b: v2f64) -> v2f64 { |
| 3992 | __lsx_vfmin_d(a, b) | 3992 | unsafe { __lsx_vfmin_d(a, b) } |
| 3993 | } | 3993 | } |
| 3994 | 3994 | ||
| 3995 | #[inline] | 3995 | #[inline] |
| 3996 | #[target_feature(enable = "lsx")] | 3996 | #[target_feature(enable = "lsx")] |
| 3997 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 3997 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 3998 | pub unsafe fn lsx_vfmina_s(a: v4f32, b: v4f32) -> v4f32 { | 3998 | pub fn lsx_vfmina_s(a: v4f32, b: v4f32) -> v4f32 { |
| 3999 | __lsx_vfmina_s(a, b) | 3999 | unsafe { __lsx_vfmina_s(a, b) } |
| 4000 | } | 4000 | } |
| 4001 | 4001 | ||
| 4002 | #[inline] | 4002 | #[inline] |
| 4003 | #[target_feature(enable = "lsx")] | 4003 | #[target_feature(enable = "lsx")] |
| 4004 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4004 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4005 | pub unsafe fn lsx_vfmina_d(a: v2f64, b: v2f64) -> v2f64 { | 4005 | pub fn lsx_vfmina_d(a: v2f64, b: v2f64) -> v2f64 { |
| 4006 | __lsx_vfmina_d(a, b) | 4006 | unsafe { __lsx_vfmina_d(a, b) } |
| 4007 | } | 4007 | } |
| 4008 | 4008 | ||
| 4009 | #[inline] | 4009 | #[inline] |
| 4010 | #[target_feature(enable = "lsx")] | 4010 | #[target_feature(enable = "lsx")] |
| 4011 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4011 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4012 | pub unsafe fn lsx_vfmax_s(a: v4f32, b: v4f32) -> v4f32 { | 4012 | pub fn lsx_vfmax_s(a: v4f32, b: v4f32) -> v4f32 { |
| 4013 | __lsx_vfmax_s(a, b) | 4013 | unsafe { __lsx_vfmax_s(a, b) } |
| 4014 | } | 4014 | } |
| 4015 | 4015 | ||
| 4016 | #[inline] | 4016 | #[inline] |
| 4017 | #[target_feature(enable = "lsx")] | 4017 | #[target_feature(enable = "lsx")] |
| 4018 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4018 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4019 | pub unsafe fn lsx_vfmax_d(a: v2f64, b: v2f64) -> v2f64 { | 4019 | pub fn lsx_vfmax_d(a: v2f64, b: v2f64) -> v2f64 { |
| 4020 | __lsx_vfmax_d(a, b) | 4020 | unsafe { __lsx_vfmax_d(a, b) } |
| 4021 | } | 4021 | } |
| 4022 | 4022 | ||
| 4023 | #[inline] | 4023 | #[inline] |
| 4024 | #[target_feature(enable = "lsx")] | 4024 | #[target_feature(enable = "lsx")] |
| 4025 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4025 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4026 | pub unsafe fn lsx_vfmaxa_s(a: v4f32, b: v4f32) -> v4f32 { | 4026 | pub fn lsx_vfmaxa_s(a: v4f32, b: v4f32) -> v4f32 { |
| 4027 | __lsx_vfmaxa_s(a, b) | 4027 | unsafe { __lsx_vfmaxa_s(a, b) } |
| 4028 | } | 4028 | } |
| 4029 | 4029 | ||
| 4030 | #[inline] | 4030 | #[inline] |
| 4031 | #[target_feature(enable = "lsx")] | 4031 | #[target_feature(enable = "lsx")] |
| 4032 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4032 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4033 | pub unsafe fn lsx_vfmaxa_d(a: v2f64, b: v2f64) -> v2f64 { | 4033 | pub fn lsx_vfmaxa_d(a: v2f64, b: v2f64) -> v2f64 { |
| 4034 | __lsx_vfmaxa_d(a, b) | 4034 | unsafe { __lsx_vfmaxa_d(a, b) } |
| 4035 | } | 4035 | } |
| 4036 | 4036 | ||
| 4037 | #[inline] | 4037 | #[inline] |
| 4038 | #[target_feature(enable = "lsx")] | 4038 | #[target_feature(enable = "lsx")] |
| 4039 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4039 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4040 | pub unsafe fn lsx_vfclass_s(a: v4f32) -> v4i32 { | 4040 | pub fn lsx_vfclass_s(a: v4f32) -> v4i32 { |
| 4041 | __lsx_vfclass_s(a) | 4041 | unsafe { __lsx_vfclass_s(a) } |
| 4042 | } | 4042 | } |
| 4043 | 4043 | ||
| 4044 | #[inline] | 4044 | #[inline] |
| 4045 | #[target_feature(enable = "lsx")] | 4045 | #[target_feature(enable = "lsx")] |
| 4046 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4046 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4047 | pub unsafe fn lsx_vfclass_d(a: v2f64) -> v2i64 { | 4047 | pub fn lsx_vfclass_d(a: v2f64) -> v2i64 { |
| 4048 | __lsx_vfclass_d(a) | 4048 | unsafe { __lsx_vfclass_d(a) } |
| 4049 | } | 4049 | } |
| 4050 | 4050 | ||
| 4051 | #[inline] | 4051 | #[inline] |
| 4052 | #[target_feature(enable = "lsx")] | 4052 | #[target_feature(enable = "lsx")] |
| 4053 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4053 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4054 | pub unsafe fn lsx_vfsqrt_s(a: v4f32) -> v4f32 { | 4054 | pub fn lsx_vfsqrt_s(a: v4f32) -> v4f32 { |
| 4055 | __lsx_vfsqrt_s(a) | 4055 | unsafe { __lsx_vfsqrt_s(a) } |
| 4056 | } | 4056 | } |
| 4057 | 4057 | ||
| 4058 | #[inline] | 4058 | #[inline] |
| 4059 | #[target_feature(enable = "lsx")] | 4059 | #[target_feature(enable = "lsx")] |
| 4060 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4060 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4061 | pub unsafe fn lsx_vfsqrt_d(a: v2f64) -> v2f64 { | 4061 | pub fn lsx_vfsqrt_d(a: v2f64) -> v2f64 { |
| 4062 | __lsx_vfsqrt_d(a) | 4062 | unsafe { __lsx_vfsqrt_d(a) } |
| 4063 | } | 4063 | } |
| 4064 | 4064 | ||
| 4065 | #[inline] | 4065 | #[inline] |
| 4066 | #[target_feature(enable = "lsx")] | 4066 | #[target_feature(enable = "lsx")] |
| 4067 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4067 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4068 | pub unsafe fn lsx_vfrecip_s(a: v4f32) -> v4f32 { | 4068 | pub fn lsx_vfrecip_s(a: v4f32) -> v4f32 { |
| 4069 | __lsx_vfrecip_s(a) | 4069 | unsafe { __lsx_vfrecip_s(a) } |
| 4070 | } | 4070 | } |
| 4071 | 4071 | ||
| 4072 | #[inline] | 4072 | #[inline] |
| 4073 | #[target_feature(enable = "lsx")] | 4073 | #[target_feature(enable = "lsx")] |
| 4074 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4074 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4075 | pub unsafe fn lsx_vfrecip_d(a: v2f64) -> v2f64 { | 4075 | pub fn lsx_vfrecip_d(a: v2f64) -> v2f64 { |
| 4076 | __lsx_vfrecip_d(a) | 4076 | unsafe { __lsx_vfrecip_d(a) } |
| 4077 | } | 4077 | } |
| 4078 | 4078 | ||
| 4079 | #[inline] | 4079 | #[inline] |
| 4080 | #[target_feature(enable = "lsx,frecipe")] | 4080 | #[target_feature(enable = "lsx,frecipe")] |
| 4081 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4081 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4082 | pub unsafe fn lsx_vfrecipe_s(a: v4f32) -> v4f32 { | 4082 | pub fn lsx_vfrecipe_s(a: v4f32) -> v4f32 { |
| 4083 | __lsx_vfrecipe_s(a) | 4083 | unsafe { __lsx_vfrecipe_s(a) } |
| 4084 | } | 4084 | } |
| 4085 | 4085 | ||
| 4086 | #[inline] | 4086 | #[inline] |
| 4087 | #[target_feature(enable = "lsx,frecipe")] | 4087 | #[target_feature(enable = "lsx,frecipe")] |
| 4088 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4088 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4089 | pub unsafe fn lsx_vfrecipe_d(a: v2f64) -> v2f64 { | 4089 | pub fn lsx_vfrecipe_d(a: v2f64) -> v2f64 { |
| 4090 | __lsx_vfrecipe_d(a) | 4090 | unsafe { __lsx_vfrecipe_d(a) } |
| 4091 | } | 4091 | } |
| 4092 | 4092 | ||
| 4093 | #[inline] | 4093 | #[inline] |
| 4094 | #[target_feature(enable = "lsx,frecipe")] | 4094 | #[target_feature(enable = "lsx,frecipe")] |
| 4095 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4095 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4096 | pub unsafe fn lsx_vfrsqrte_s(a: v4f32) -> v4f32 { | 4096 | pub fn lsx_vfrsqrte_s(a: v4f32) -> v4f32 { |
| 4097 | __lsx_vfrsqrte_s(a) | 4097 | unsafe { __lsx_vfrsqrte_s(a) } |
| 4098 | } | 4098 | } |
| 4099 | 4099 | ||
| 4100 | #[inline] | 4100 | #[inline] |
| 4101 | #[target_feature(enable = "lsx,frecipe")] | 4101 | #[target_feature(enable = "lsx,frecipe")] |
| 4102 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4102 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4103 | pub unsafe fn lsx_vfrsqrte_d(a: v2f64) -> v2f64 { | 4103 | pub fn lsx_vfrsqrte_d(a: v2f64) -> v2f64 { |
| 4104 | __lsx_vfrsqrte_d(a) | 4104 | unsafe { __lsx_vfrsqrte_d(a) } |
| 4105 | } | 4105 | } |
| 4106 | 4106 | ||
| 4107 | #[inline] | 4107 | #[inline] |
| 4108 | #[target_feature(enable = "lsx")] | 4108 | #[target_feature(enable = "lsx")] |
| 4109 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4109 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4110 | pub unsafe fn lsx_vfrint_s(a: v4f32) -> v4f32 { | 4110 | pub fn lsx_vfrint_s(a: v4f32) -> v4f32 { |
| 4111 | __lsx_vfrint_s(a) | 4111 | unsafe { __lsx_vfrint_s(a) } |
| 4112 | } | 4112 | } |
| 4113 | 4113 | ||
| 4114 | #[inline] | 4114 | #[inline] |
| 4115 | #[target_feature(enable = "lsx")] | 4115 | #[target_feature(enable = "lsx")] |
| 4116 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4116 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4117 | pub unsafe fn lsx_vfrint_d(a: v2f64) -> v2f64 { | 4117 | pub fn lsx_vfrint_d(a: v2f64) -> v2f64 { |
| 4118 | __lsx_vfrint_d(a) | 4118 | unsafe { __lsx_vfrint_d(a) } |
| 4119 | } | 4119 | } |
| 4120 | 4120 | ||
| 4121 | #[inline] | 4121 | #[inline] |
| 4122 | #[target_feature(enable = "lsx")] | 4122 | #[target_feature(enable = "lsx")] |
| 4123 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4123 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4124 | pub unsafe fn lsx_vfrsqrt_s(a: v4f32) -> v4f32 { | 4124 | pub fn lsx_vfrsqrt_s(a: v4f32) -> v4f32 { |
| 4125 | __lsx_vfrsqrt_s(a) | 4125 | unsafe { __lsx_vfrsqrt_s(a) } |
| 4126 | } | 4126 | } |
| 4127 | 4127 | ||
| 4128 | #[inline] | 4128 | #[inline] |
| 4129 | #[target_feature(enable = "lsx")] | 4129 | #[target_feature(enable = "lsx")] |
| 4130 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4130 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4131 | pub unsafe fn lsx_vfrsqrt_d(a: v2f64) -> v2f64 { | 4131 | pub fn lsx_vfrsqrt_d(a: v2f64) -> v2f64 { |
| 4132 | __lsx_vfrsqrt_d(a) | 4132 | unsafe { __lsx_vfrsqrt_d(a) } |
| 4133 | } | 4133 | } |
| 4134 | 4134 | ||
| 4135 | #[inline] | 4135 | #[inline] |
| 4136 | #[target_feature(enable = "lsx")] | 4136 | #[target_feature(enable = "lsx")] |
| 4137 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4137 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4138 | pub unsafe fn lsx_vflogb_s(a: v4f32) -> v4f32 { | 4138 | pub fn lsx_vflogb_s(a: v4f32) -> v4f32 { |
| 4139 | __lsx_vflogb_s(a) | 4139 | unsafe { __lsx_vflogb_s(a) } |
| 4140 | } | 4140 | } |
| 4141 | 4141 | ||
| 4142 | #[inline] | 4142 | #[inline] |
| 4143 | #[target_feature(enable = "lsx")] | 4143 | #[target_feature(enable = "lsx")] |
| 4144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4144 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4145 | pub unsafe fn lsx_vflogb_d(a: v2f64) -> v2f64 { | 4145 | pub fn lsx_vflogb_d(a: v2f64) -> v2f64 { |
| 4146 | __lsx_vflogb_d(a) | 4146 | unsafe { __lsx_vflogb_d(a) } |
| 4147 | } | 4147 | } |
| 4148 | 4148 | ||
| 4149 | #[inline] | 4149 | #[inline] |
| 4150 | #[target_feature(enable = "lsx")] | 4150 | #[target_feature(enable = "lsx")] |
| 4151 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4151 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4152 | pub unsafe fn lsx_vfcvth_s_h(a: v8i16) -> v4f32 { | 4152 | pub fn lsx_vfcvth_s_h(a: v8i16) -> v4f32 { |
| 4153 | __lsx_vfcvth_s_h(a) | 4153 | unsafe { __lsx_vfcvth_s_h(a) } |
| 4154 | } | 4154 | } |
| 4155 | 4155 | ||
| 4156 | #[inline] | 4156 | #[inline] |
| 4157 | #[target_feature(enable = "lsx")] | 4157 | #[target_feature(enable = "lsx")] |
| 4158 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4158 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4159 | pub unsafe fn lsx_vfcvth_d_s(a: v4f32) -> v2f64 { | 4159 | pub fn lsx_vfcvth_d_s(a: v4f32) -> v2f64 { |
| 4160 | __lsx_vfcvth_d_s(a) | 4160 | unsafe { __lsx_vfcvth_d_s(a) } |
| 4161 | } | 4161 | } |
| 4162 | 4162 | ||
| 4163 | #[inline] | 4163 | #[inline] |
| 4164 | #[target_feature(enable = "lsx")] | 4164 | #[target_feature(enable = "lsx")] |
| 4165 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4165 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4166 | pub unsafe fn lsx_vfcvtl_s_h(a: v8i16) -> v4f32 { | 4166 | pub fn lsx_vfcvtl_s_h(a: v8i16) -> v4f32 { |
| 4167 | __lsx_vfcvtl_s_h(a) | 4167 | unsafe { __lsx_vfcvtl_s_h(a) } |
| 4168 | } | 4168 | } |
| 4169 | 4169 | ||
| 4170 | #[inline] | 4170 | #[inline] |
| 4171 | #[target_feature(enable = "lsx")] | 4171 | #[target_feature(enable = "lsx")] |
| 4172 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4172 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4173 | pub unsafe fn lsx_vfcvtl_d_s(a: v4f32) -> v2f64 { | 4173 | pub fn lsx_vfcvtl_d_s(a: v4f32) -> v2f64 { |
| 4174 | __lsx_vfcvtl_d_s(a) | 4174 | unsafe { __lsx_vfcvtl_d_s(a) } |
| 4175 | } | 4175 | } |
| 4176 | 4176 | ||
| 4177 | #[inline] | 4177 | #[inline] |
| 4178 | #[target_feature(enable = "lsx")] | 4178 | #[target_feature(enable = "lsx")] |
| 4179 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4179 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4180 | pub unsafe fn lsx_vftint_w_s(a: v4f32) -> v4i32 { | 4180 | pub fn lsx_vftint_w_s(a: v4f32) -> v4i32 { |
| 4181 | __lsx_vftint_w_s(a) | 4181 | unsafe { __lsx_vftint_w_s(a) } |
| 4182 | } | 4182 | } |
| 4183 | 4183 | ||
| 4184 | #[inline] | 4184 | #[inline] |
| 4185 | #[target_feature(enable = "lsx")] | 4185 | #[target_feature(enable = "lsx")] |
| 4186 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4186 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4187 | pub unsafe fn lsx_vftint_l_d(a: v2f64) -> v2i64 { | 4187 | pub fn lsx_vftint_l_d(a: v2f64) -> v2i64 { |
| 4188 | __lsx_vftint_l_d(a) | 4188 | unsafe { __lsx_vftint_l_d(a) } |
| 4189 | } | 4189 | } |
| 4190 | 4190 | ||
| 4191 | #[inline] | 4191 | #[inline] |
| 4192 | #[target_feature(enable = "lsx")] | 4192 | #[target_feature(enable = "lsx")] |
| 4193 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4193 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4194 | pub unsafe fn lsx_vftint_wu_s(a: v4f32) -> v4u32 { | 4194 | pub fn lsx_vftint_wu_s(a: v4f32) -> v4u32 { |
| 4195 | __lsx_vftint_wu_s(a) | 4195 | unsafe { __lsx_vftint_wu_s(a) } |
| 4196 | } | 4196 | } |
| 4197 | 4197 | ||
| 4198 | #[inline] | 4198 | #[inline] |
| 4199 | #[target_feature(enable = "lsx")] | 4199 | #[target_feature(enable = "lsx")] |
| 4200 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4200 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4201 | pub unsafe fn lsx_vftint_lu_d(a: v2f64) -> v2u64 { | 4201 | pub fn lsx_vftint_lu_d(a: v2f64) -> v2u64 { |
| 4202 | __lsx_vftint_lu_d(a) | 4202 | unsafe { __lsx_vftint_lu_d(a) } |
| 4203 | } | 4203 | } |
| 4204 | 4204 | ||
| 4205 | #[inline] | 4205 | #[inline] |
| 4206 | #[target_feature(enable = "lsx")] | 4206 | #[target_feature(enable = "lsx")] |
| 4207 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4207 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4208 | pub unsafe fn lsx_vftintrz_w_s(a: v4f32) -> v4i32 { | 4208 | pub fn lsx_vftintrz_w_s(a: v4f32) -> v4i32 { |
| 4209 | __lsx_vftintrz_w_s(a) | 4209 | unsafe { __lsx_vftintrz_w_s(a) } |
| 4210 | } | 4210 | } |
| 4211 | 4211 | ||
| 4212 | #[inline] | 4212 | #[inline] |
| 4213 | #[target_feature(enable = "lsx")] | 4213 | #[target_feature(enable = "lsx")] |
| 4214 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4214 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4215 | pub unsafe fn lsx_vftintrz_l_d(a: v2f64) -> v2i64 { | 4215 | pub fn lsx_vftintrz_l_d(a: v2f64) -> v2i64 { |
| 4216 | __lsx_vftintrz_l_d(a) | 4216 | unsafe { __lsx_vftintrz_l_d(a) } |
| 4217 | } | 4217 | } |
| 4218 | 4218 | ||
| 4219 | #[inline] | 4219 | #[inline] |
| 4220 | #[target_feature(enable = "lsx")] | 4220 | #[target_feature(enable = "lsx")] |
| 4221 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4221 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4222 | pub unsafe fn lsx_vftintrz_wu_s(a: v4f32) -> v4u32 { | 4222 | pub fn lsx_vftintrz_wu_s(a: v4f32) -> v4u32 { |
| 4223 | __lsx_vftintrz_wu_s(a) | 4223 | unsafe { __lsx_vftintrz_wu_s(a) } |
| 4224 | } | 4224 | } |
| 4225 | 4225 | ||
| 4226 | #[inline] | 4226 | #[inline] |
| 4227 | #[target_feature(enable = "lsx")] | 4227 | #[target_feature(enable = "lsx")] |
| 4228 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4228 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4229 | pub unsafe fn lsx_vftintrz_lu_d(a: v2f64) -> v2u64 { | 4229 | pub fn lsx_vftintrz_lu_d(a: v2f64) -> v2u64 { |
| 4230 | __lsx_vftintrz_lu_d(a) | 4230 | unsafe { __lsx_vftintrz_lu_d(a) } |
| 4231 | } | 4231 | } |
| 4232 | 4232 | ||
| 4233 | #[inline] | 4233 | #[inline] |
| 4234 | #[target_feature(enable = "lsx")] | 4234 | #[target_feature(enable = "lsx")] |
| 4235 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4235 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4236 | pub unsafe fn lsx_vffint_s_w(a: v4i32) -> v4f32 { | 4236 | pub fn lsx_vffint_s_w(a: v4i32) -> v4f32 { |
| 4237 | __lsx_vffint_s_w(a) | 4237 | unsafe { __lsx_vffint_s_w(a) } |
| 4238 | } | 4238 | } |
| 4239 | 4239 | ||
| 4240 | #[inline] | 4240 | #[inline] |
| 4241 | #[target_feature(enable = "lsx")] | 4241 | #[target_feature(enable = "lsx")] |
| 4242 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4242 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4243 | pub unsafe fn lsx_vffint_d_l(a: v2i64) -> v2f64 { | 4243 | pub fn lsx_vffint_d_l(a: v2i64) -> v2f64 { |
| 4244 | __lsx_vffint_d_l(a) | 4244 | unsafe { __lsx_vffint_d_l(a) } |
| 4245 | } | 4245 | } |
| 4246 | 4246 | ||
| 4247 | #[inline] | 4247 | #[inline] |
| 4248 | #[target_feature(enable = "lsx")] | 4248 | #[target_feature(enable = "lsx")] |
| 4249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4250 | pub unsafe fn lsx_vffint_s_wu(a: v4u32) -> v4f32 { | 4250 | pub fn lsx_vffint_s_wu(a: v4u32) -> v4f32 { |
| 4251 | __lsx_vffint_s_wu(a) | 4251 | unsafe { __lsx_vffint_s_wu(a) } |
| 4252 | } | 4252 | } |
| 4253 | 4253 | ||
| 4254 | #[inline] | 4254 | #[inline] |
| 4255 | #[target_feature(enable = "lsx")] | 4255 | #[target_feature(enable = "lsx")] |
| 4256 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4256 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4257 | pub unsafe fn lsx_vffint_d_lu(a: v2u64) -> v2f64 { | 4257 | pub fn lsx_vffint_d_lu(a: v2u64) -> v2f64 { |
| 4258 | __lsx_vffint_d_lu(a) | 4258 | unsafe { __lsx_vffint_d_lu(a) } |
| 4259 | } | 4259 | } |
| 4260 | 4260 | ||
| 4261 | #[inline] | 4261 | #[inline] |
| 4262 | #[target_feature(enable = "lsx")] | 4262 | #[target_feature(enable = "lsx")] |
| 4263 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4263 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4264 | pub unsafe fn lsx_vandn_v(a: v16u8, b: v16u8) -> v16u8 { | 4264 | pub fn lsx_vandn_v(a: v16u8, b: v16u8) -> v16u8 { |
| 4265 | __lsx_vandn_v(a, b) | 4265 | unsafe { __lsx_vandn_v(a, b) } |
| 4266 | } | 4266 | } |
| 4267 | 4267 | ||
| 4268 | #[inline] | 4268 | #[inline] |
| 4269 | #[target_feature(enable = "lsx")] | 4269 | #[target_feature(enable = "lsx")] |
| 4270 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4270 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4271 | pub unsafe fn lsx_vneg_b(a: v16i8) -> v16i8 { | 4271 | pub fn lsx_vneg_b(a: v16i8) -> v16i8 { |
| 4272 | __lsx_vneg_b(a) | 4272 | unsafe { __lsx_vneg_b(a) } |
| 4273 | } | 4273 | } |
| 4274 | 4274 | ||
| 4275 | #[inline] | 4275 | #[inline] |
| 4276 | #[target_feature(enable = "lsx")] | 4276 | #[target_feature(enable = "lsx")] |
| 4277 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4277 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4278 | pub unsafe fn lsx_vneg_h(a: v8i16) -> v8i16 { | 4278 | pub fn lsx_vneg_h(a: v8i16) -> v8i16 { |
| 4279 | __lsx_vneg_h(a) | 4279 | unsafe { __lsx_vneg_h(a) } |
| 4280 | } | 4280 | } |
| 4281 | 4281 | ||
| 4282 | #[inline] | 4282 | #[inline] |
| 4283 | #[target_feature(enable = "lsx")] | 4283 | #[target_feature(enable = "lsx")] |
| 4284 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4284 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4285 | pub unsafe fn lsx_vneg_w(a: v4i32) -> v4i32 { | 4285 | pub fn lsx_vneg_w(a: v4i32) -> v4i32 { |
| 4286 | __lsx_vneg_w(a) | 4286 | unsafe { __lsx_vneg_w(a) } |
| 4287 | } | 4287 | } |
| 4288 | 4288 | ||
| 4289 | #[inline] | 4289 | #[inline] |
| 4290 | #[target_feature(enable = "lsx")] | 4290 | #[target_feature(enable = "lsx")] |
| 4291 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4291 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4292 | pub unsafe fn lsx_vneg_d(a: v2i64) -> v2i64 { | 4292 | pub fn lsx_vneg_d(a: v2i64) -> v2i64 { |
| 4293 | __lsx_vneg_d(a) | 4293 | unsafe { __lsx_vneg_d(a) } |
| 4294 | } | 4294 | } |
| 4295 | 4295 | ||
| 4296 | #[inline] | 4296 | #[inline] |
| 4297 | #[target_feature(enable = "lsx")] | 4297 | #[target_feature(enable = "lsx")] |
| 4298 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4298 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4299 | pub unsafe fn lsx_vmuh_b(a: v16i8, b: v16i8) -> v16i8 { | 4299 | pub fn lsx_vmuh_b(a: v16i8, b: v16i8) -> v16i8 { |
| 4300 | __lsx_vmuh_b(a, b) | 4300 | unsafe { __lsx_vmuh_b(a, b) } |
| 4301 | } | 4301 | } |
| 4302 | 4302 | ||
| 4303 | #[inline] | 4303 | #[inline] |
| 4304 | #[target_feature(enable = "lsx")] | 4304 | #[target_feature(enable = "lsx")] |
| 4305 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4305 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4306 | pub unsafe fn lsx_vmuh_h(a: v8i16, b: v8i16) -> v8i16 { | 4306 | pub fn lsx_vmuh_h(a: v8i16, b: v8i16) -> v8i16 { |
| 4307 | __lsx_vmuh_h(a, b) | 4307 | unsafe { __lsx_vmuh_h(a, b) } |
| 4308 | } | 4308 | } |
| 4309 | 4309 | ||
| 4310 | #[inline] | 4310 | #[inline] |
| 4311 | #[target_feature(enable = "lsx")] | 4311 | #[target_feature(enable = "lsx")] |
| 4312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4313 | pub unsafe fn lsx_vmuh_w(a: v4i32, b: v4i32) -> v4i32 { | 4313 | pub fn lsx_vmuh_w(a: v4i32, b: v4i32) -> v4i32 { |
| 4314 | __lsx_vmuh_w(a, b) | 4314 | unsafe { __lsx_vmuh_w(a, b) } |
| 4315 | } | 4315 | } |
| 4316 | 4316 | ||
| 4317 | #[inline] | 4317 | #[inline] |
| 4318 | #[target_feature(enable = "lsx")] | 4318 | #[target_feature(enable = "lsx")] |
| 4319 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4319 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4320 | pub unsafe fn lsx_vmuh_d(a: v2i64, b: v2i64) -> v2i64 { | 4320 | pub fn lsx_vmuh_d(a: v2i64, b: v2i64) -> v2i64 { |
| 4321 | __lsx_vmuh_d(a, b) | 4321 | unsafe { __lsx_vmuh_d(a, b) } |
| 4322 | } | 4322 | } |
| 4323 | 4323 | ||
| 4324 | #[inline] | 4324 | #[inline] |
| 4325 | #[target_feature(enable = "lsx")] | 4325 | #[target_feature(enable = "lsx")] |
| 4326 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4326 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4327 | pub unsafe fn lsx_vmuh_bu(a: v16u8, b: v16u8) -> v16u8 { | 4327 | pub fn lsx_vmuh_bu(a: v16u8, b: v16u8) -> v16u8 { |
| 4328 | __lsx_vmuh_bu(a, b) | 4328 | unsafe { __lsx_vmuh_bu(a, b) } |
| 4329 | } | 4329 | } |
| 4330 | 4330 | ||
| 4331 | #[inline] | 4331 | #[inline] |
| 4332 | #[target_feature(enable = "lsx")] | 4332 | #[target_feature(enable = "lsx")] |
| 4333 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4333 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4334 | pub unsafe fn lsx_vmuh_hu(a: v8u16, b: v8u16) -> v8u16 { | 4334 | pub fn lsx_vmuh_hu(a: v8u16, b: v8u16) -> v8u16 { |
| 4335 | __lsx_vmuh_hu(a, b) | 4335 | unsafe { __lsx_vmuh_hu(a, b) } |
| 4336 | } | 4336 | } |
| 4337 | 4337 | ||
| 4338 | #[inline] | 4338 | #[inline] |
| 4339 | #[target_feature(enable = "lsx")] | 4339 | #[target_feature(enable = "lsx")] |
| 4340 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4340 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4341 | pub unsafe fn lsx_vmuh_wu(a: v4u32, b: v4u32) -> v4u32 { | 4341 | pub fn lsx_vmuh_wu(a: v4u32, b: v4u32) -> v4u32 { |
| 4342 | __lsx_vmuh_wu(a, b) | 4342 | unsafe { __lsx_vmuh_wu(a, b) } |
| 4343 | } | 4343 | } |
| 4344 | 4344 | ||
| 4345 | #[inline] | 4345 | #[inline] |
| 4346 | #[target_feature(enable = "lsx")] | 4346 | #[target_feature(enable = "lsx")] |
| 4347 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4347 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4348 | pub unsafe fn lsx_vmuh_du(a: v2u64, b: v2u64) -> v2u64 { | 4348 | pub fn lsx_vmuh_du(a: v2u64, b: v2u64) -> v2u64 { |
| 4349 | __lsx_vmuh_du(a, b) | 4349 | unsafe { __lsx_vmuh_du(a, b) } |
| 4350 | } | 4350 | } |
| 4351 | 4351 | ||
| 4352 | #[inline] | 4352 | #[inline] |
| 4353 | #[target_feature(enable = "lsx")] | 4353 | #[target_feature(enable = "lsx")] |
| 4354 | #[rustc_legacy_const_generics(1)] | 4354 | #[rustc_legacy_const_generics(1)] |
| 4355 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4355 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4356 | pub unsafe fn lsx_vsllwil_h_b<const IMM3: u32>(a: v16i8) -> v8i16 { | 4356 | pub fn lsx_vsllwil_h_b<const IMM3: u32>(a: v16i8) -> v8i16 { |
| 4357 | static_assert_uimm_bits!(IMM3, 3); | 4357 | static_assert_uimm_bits!(IMM3, 3); |
| 4358 | __lsx_vsllwil_h_b(a, IMM3) | 4358 | unsafe { __lsx_vsllwil_h_b(a, IMM3) } |
| 4359 | } | 4359 | } |
| 4360 | 4360 | ||
| 4361 | #[inline] | 4361 | #[inline] |
| 4362 | #[target_feature(enable = "lsx")] | 4362 | #[target_feature(enable = "lsx")] |
| 4363 | #[rustc_legacy_const_generics(1)] | 4363 | #[rustc_legacy_const_generics(1)] |
| 4364 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4364 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4365 | pub unsafe fn lsx_vsllwil_w_h<const IMM4: u32>(a: v8i16) -> v4i32 { | 4365 | pub fn lsx_vsllwil_w_h<const IMM4: u32>(a: v8i16) -> v4i32 { |
| 4366 | static_assert_uimm_bits!(IMM4, 4); | 4366 | static_assert_uimm_bits!(IMM4, 4); |
| 4367 | __lsx_vsllwil_w_h(a, IMM4) | 4367 | unsafe { __lsx_vsllwil_w_h(a, IMM4) } |
| 4368 | } | 4368 | } |
| 4369 | 4369 | ||
| 4370 | #[inline] | 4370 | #[inline] |
| 4371 | #[target_feature(enable = "lsx")] | 4371 | #[target_feature(enable = "lsx")] |
| 4372 | #[rustc_legacy_const_generics(1)] | 4372 | #[rustc_legacy_const_generics(1)] |
| 4373 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4373 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4374 | pub unsafe fn lsx_vsllwil_d_w<const IMM5: u32>(a: v4i32) -> v2i64 { | 4374 | pub fn lsx_vsllwil_d_w<const IMM5: u32>(a: v4i32) -> v2i64 { |
| 4375 | static_assert_uimm_bits!(IMM5, 5); | 4375 | static_assert_uimm_bits!(IMM5, 5); |
| 4376 | __lsx_vsllwil_d_w(a, IMM5) | 4376 | unsafe { __lsx_vsllwil_d_w(a, IMM5) } |
| 4377 | } | 4377 | } |
| 4378 | 4378 | ||
| 4379 | #[inline] | 4379 | #[inline] |
| 4380 | #[target_feature(enable = "lsx")] | 4380 | #[target_feature(enable = "lsx")] |
| 4381 | #[rustc_legacy_const_generics(1)] | 4381 | #[rustc_legacy_const_generics(1)] |
| 4382 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4382 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4383 | pub unsafe fn lsx_vsllwil_hu_bu<const IMM3: u32>(a: v16u8) -> v8u16 { | 4383 | pub fn lsx_vsllwil_hu_bu<const IMM3: u32>(a: v16u8) -> v8u16 { |
| 4384 | static_assert_uimm_bits!(IMM3, 3); | 4384 | static_assert_uimm_bits!(IMM3, 3); |
| 4385 | __lsx_vsllwil_hu_bu(a, IMM3) | 4385 | unsafe { __lsx_vsllwil_hu_bu(a, IMM3) } |
| 4386 | } | 4386 | } |
| 4387 | 4387 | ||
| 4388 | #[inline] | 4388 | #[inline] |
| 4389 | #[target_feature(enable = "lsx")] | 4389 | #[target_feature(enable = "lsx")] |
| 4390 | #[rustc_legacy_const_generics(1)] | 4390 | #[rustc_legacy_const_generics(1)] |
| 4391 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4391 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4392 | pub unsafe fn lsx_vsllwil_wu_hu<const IMM4: u32>(a: v8u16) -> v4u32 { | 4392 | pub fn lsx_vsllwil_wu_hu<const IMM4: u32>(a: v8u16) -> v4u32 { |
| 4393 | static_assert_uimm_bits!(IMM4, 4); | 4393 | static_assert_uimm_bits!(IMM4, 4); |
| 4394 | __lsx_vsllwil_wu_hu(a, IMM4) | 4394 | unsafe { __lsx_vsllwil_wu_hu(a, IMM4) } |
| 4395 | } | 4395 | } |
| 4396 | 4396 | ||
| 4397 | #[inline] | 4397 | #[inline] |
| 4398 | #[target_feature(enable = "lsx")] | 4398 | #[target_feature(enable = "lsx")] |
| 4399 | #[rustc_legacy_const_generics(1)] | 4399 | #[rustc_legacy_const_generics(1)] |
| 4400 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4400 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4401 | pub unsafe fn lsx_vsllwil_du_wu<const IMM5: u32>(a: v4u32) -> v2u64 { | 4401 | pub fn lsx_vsllwil_du_wu<const IMM5: u32>(a: v4u32) -> v2u64 { |
| 4402 | static_assert_uimm_bits!(IMM5, 5); | 4402 | static_assert_uimm_bits!(IMM5, 5); |
| 4403 | __lsx_vsllwil_du_wu(a, IMM5) | 4403 | unsafe { __lsx_vsllwil_du_wu(a, IMM5) } |
| 4404 | } | 4404 | } |
| 4405 | 4405 | ||
| 4406 | #[inline] | 4406 | #[inline] |
| 4407 | #[target_feature(enable = "lsx")] | 4407 | #[target_feature(enable = "lsx")] |
| 4408 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4408 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4409 | pub unsafe fn lsx_vsran_b_h(a: v8i16, b: v8i16) -> v16i8 { | 4409 | pub fn lsx_vsran_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 4410 | __lsx_vsran_b_h(a, b) | 4410 | unsafe { __lsx_vsran_b_h(a, b) } |
| 4411 | } | 4411 | } |
| 4412 | 4412 | ||
| 4413 | #[inline] | 4413 | #[inline] |
| 4414 | #[target_feature(enable = "lsx")] | 4414 | #[target_feature(enable = "lsx")] |
| 4415 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4415 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4416 | pub unsafe fn lsx_vsran_h_w(a: v4i32, b: v4i32) -> v8i16 { | 4416 | pub fn lsx_vsran_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 4417 | __lsx_vsran_h_w(a, b) | 4417 | unsafe { __lsx_vsran_h_w(a, b) } |
| 4418 | } | 4418 | } |
| 4419 | 4419 | ||
| 4420 | #[inline] | 4420 | #[inline] |
| 4421 | #[target_feature(enable = "lsx")] | 4421 | #[target_feature(enable = "lsx")] |
| 4422 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4422 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4423 | pub unsafe fn lsx_vsran_w_d(a: v2i64, b: v2i64) -> v4i32 { | 4423 | pub fn lsx_vsran_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 4424 | __lsx_vsran_w_d(a, b) | 4424 | unsafe { __lsx_vsran_w_d(a, b) } |
| 4425 | } | 4425 | } |
| 4426 | 4426 | ||
| 4427 | #[inline] | 4427 | #[inline] |
| 4428 | #[target_feature(enable = "lsx")] | 4428 | #[target_feature(enable = "lsx")] |
| 4429 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4429 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4430 | pub unsafe fn lsx_vssran_b_h(a: v8i16, b: v8i16) -> v16i8 { | 4430 | pub fn lsx_vssran_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 4431 | __lsx_vssran_b_h(a, b) | 4431 | unsafe { __lsx_vssran_b_h(a, b) } |
| 4432 | } | 4432 | } |
| 4433 | 4433 | ||
| 4434 | #[inline] | 4434 | #[inline] |
| 4435 | #[target_feature(enable = "lsx")] | 4435 | #[target_feature(enable = "lsx")] |
| 4436 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4436 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4437 | pub unsafe fn lsx_vssran_h_w(a: v4i32, b: v4i32) -> v8i16 { | 4437 | pub fn lsx_vssran_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 4438 | __lsx_vssran_h_w(a, b) | 4438 | unsafe { __lsx_vssran_h_w(a, b) } |
| 4439 | } | 4439 | } |
| 4440 | 4440 | ||
| 4441 | #[inline] | 4441 | #[inline] |
| 4442 | #[target_feature(enable = "lsx")] | 4442 | #[target_feature(enable = "lsx")] |
| 4443 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4443 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4444 | pub unsafe fn lsx_vssran_w_d(a: v2i64, b: v2i64) -> v4i32 { | 4444 | pub fn lsx_vssran_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 4445 | __lsx_vssran_w_d(a, b) | 4445 | unsafe { __lsx_vssran_w_d(a, b) } |
| 4446 | } | 4446 | } |
| 4447 | 4447 | ||
| 4448 | #[inline] | 4448 | #[inline] |
| 4449 | #[target_feature(enable = "lsx")] | 4449 | #[target_feature(enable = "lsx")] |
| 4450 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4450 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4451 | pub unsafe fn lsx_vssran_bu_h(a: v8u16, b: v8u16) -> v16u8 { | 4451 | pub fn lsx_vssran_bu_h(a: v8u16, b: v8u16) -> v16u8 { |
| 4452 | __lsx_vssran_bu_h(a, b) | 4452 | unsafe { __lsx_vssran_bu_h(a, b) } |
| 4453 | } | 4453 | } |
| 4454 | 4454 | ||
| 4455 | #[inline] | 4455 | #[inline] |
| 4456 | #[target_feature(enable = "lsx")] | 4456 | #[target_feature(enable = "lsx")] |
| 4457 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4457 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4458 | pub unsafe fn lsx_vssran_hu_w(a: v4u32, b: v4u32) -> v8u16 { | 4458 | pub fn lsx_vssran_hu_w(a: v4u32, b: v4u32) -> v8u16 { |
| 4459 | __lsx_vssran_hu_w(a, b) | 4459 | unsafe { __lsx_vssran_hu_w(a, b) } |
| 4460 | } | 4460 | } |
| 4461 | 4461 | ||
| 4462 | #[inline] | 4462 | #[inline] |
| 4463 | #[target_feature(enable = "lsx")] | 4463 | #[target_feature(enable = "lsx")] |
| 4464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4464 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4465 | pub unsafe fn lsx_vssran_wu_d(a: v2u64, b: v2u64) -> v4u32 { | 4465 | pub fn lsx_vssran_wu_d(a: v2u64, b: v2u64) -> v4u32 { |
| 4466 | __lsx_vssran_wu_d(a, b) | 4466 | unsafe { __lsx_vssran_wu_d(a, b) } |
| 4467 | } | 4467 | } |
| 4468 | 4468 | ||
| 4469 | #[inline] | 4469 | #[inline] |
| 4470 | #[target_feature(enable = "lsx")] | 4470 | #[target_feature(enable = "lsx")] |
| 4471 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4471 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4472 | pub unsafe fn lsx_vsrarn_b_h(a: v8i16, b: v8i16) -> v16i8 { | 4472 | pub fn lsx_vsrarn_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 4473 | __lsx_vsrarn_b_h(a, b) | 4473 | unsafe { __lsx_vsrarn_b_h(a, b) } |
| 4474 | } | 4474 | } |
| 4475 | 4475 | ||
| 4476 | #[inline] | 4476 | #[inline] |
| 4477 | #[target_feature(enable = "lsx")] | 4477 | #[target_feature(enable = "lsx")] |
| 4478 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4478 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4479 | pub unsafe fn lsx_vsrarn_h_w(a: v4i32, b: v4i32) -> v8i16 { | 4479 | pub fn lsx_vsrarn_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 4480 | __lsx_vsrarn_h_w(a, b) | 4480 | unsafe { __lsx_vsrarn_h_w(a, b) } |
| 4481 | } | 4481 | } |
| 4482 | 4482 | ||
| 4483 | #[inline] | 4483 | #[inline] |
| 4484 | #[target_feature(enable = "lsx")] | 4484 | #[target_feature(enable = "lsx")] |
| 4485 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4485 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4486 | pub unsafe fn lsx_vsrarn_w_d(a: v2i64, b: v2i64) -> v4i32 { | 4486 | pub fn lsx_vsrarn_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 4487 | __lsx_vsrarn_w_d(a, b) | 4487 | unsafe { __lsx_vsrarn_w_d(a, b) } |
| 4488 | } | 4488 | } |
| 4489 | 4489 | ||
| 4490 | #[inline] | 4490 | #[inline] |
| 4491 | #[target_feature(enable = "lsx")] | 4491 | #[target_feature(enable = "lsx")] |
| 4492 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4492 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4493 | pub unsafe fn lsx_vssrarn_b_h(a: v8i16, b: v8i16) -> v16i8 { | 4493 | pub fn lsx_vssrarn_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 4494 | __lsx_vssrarn_b_h(a, b) | 4494 | unsafe { __lsx_vssrarn_b_h(a, b) } |
| 4495 | } | 4495 | } |
| 4496 | 4496 | ||
| 4497 | #[inline] | 4497 | #[inline] |
| 4498 | #[target_feature(enable = "lsx")] | 4498 | #[target_feature(enable = "lsx")] |
| 4499 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4499 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4500 | pub unsafe fn lsx_vssrarn_h_w(a: v4i32, b: v4i32) -> v8i16 { | 4500 | pub fn lsx_vssrarn_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 4501 | __lsx_vssrarn_h_w(a, b) | 4501 | unsafe { __lsx_vssrarn_h_w(a, b) } |
| 4502 | } | 4502 | } |
| 4503 | 4503 | ||
| 4504 | #[inline] | 4504 | #[inline] |
| 4505 | #[target_feature(enable = "lsx")] | 4505 | #[target_feature(enable = "lsx")] |
| 4506 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4506 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4507 | pub unsafe fn lsx_vssrarn_w_d(a: v2i64, b: v2i64) -> v4i32 { | 4507 | pub fn lsx_vssrarn_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 4508 | __lsx_vssrarn_w_d(a, b) | 4508 | unsafe { __lsx_vssrarn_w_d(a, b) } |
| 4509 | } | 4509 | } |
| 4510 | 4510 | ||
| 4511 | #[inline] | 4511 | #[inline] |
| 4512 | #[target_feature(enable = "lsx")] | 4512 | #[target_feature(enable = "lsx")] |
| 4513 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4513 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4514 | pub unsafe fn lsx_vssrarn_bu_h(a: v8u16, b: v8u16) -> v16u8 { | 4514 | pub fn lsx_vssrarn_bu_h(a: v8u16, b: v8u16) -> v16u8 { |
| 4515 | __lsx_vssrarn_bu_h(a, b) | 4515 | unsafe { __lsx_vssrarn_bu_h(a, b) } |
| 4516 | } | 4516 | } |
| 4517 | 4517 | ||
| 4518 | #[inline] | 4518 | #[inline] |
| 4519 | #[target_feature(enable = "lsx")] | 4519 | #[target_feature(enable = "lsx")] |
| 4520 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4520 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4521 | pub unsafe fn lsx_vssrarn_hu_w(a: v4u32, b: v4u32) -> v8u16 { | 4521 | pub fn lsx_vssrarn_hu_w(a: v4u32, b: v4u32) -> v8u16 { |
| 4522 | __lsx_vssrarn_hu_w(a, b) | 4522 | unsafe { __lsx_vssrarn_hu_w(a, b) } |
| 4523 | } | 4523 | } |
| 4524 | 4524 | ||
| 4525 | #[inline] | 4525 | #[inline] |
| 4526 | #[target_feature(enable = "lsx")] | 4526 | #[target_feature(enable = "lsx")] |
| 4527 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4527 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4528 | pub unsafe fn lsx_vssrarn_wu_d(a: v2u64, b: v2u64) -> v4u32 { | 4528 | pub fn lsx_vssrarn_wu_d(a: v2u64, b: v2u64) -> v4u32 { |
| 4529 | __lsx_vssrarn_wu_d(a, b) | 4529 | unsafe { __lsx_vssrarn_wu_d(a, b) } |
| 4530 | } | 4530 | } |
| 4531 | 4531 | ||
| 4532 | #[inline] | 4532 | #[inline] |
| 4533 | #[target_feature(enable = "lsx")] | 4533 | #[target_feature(enable = "lsx")] |
| 4534 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4534 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4535 | pub unsafe fn lsx_vsrln_b_h(a: v8i16, b: v8i16) -> v16i8 { | 4535 | pub fn lsx_vsrln_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 4536 | __lsx_vsrln_b_h(a, b) | 4536 | unsafe { __lsx_vsrln_b_h(a, b) } |
| 4537 | } | 4537 | } |
| 4538 | 4538 | ||
| 4539 | #[inline] | 4539 | #[inline] |
| 4540 | #[target_feature(enable = "lsx")] | 4540 | #[target_feature(enable = "lsx")] |
| 4541 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4541 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4542 | pub unsafe fn lsx_vsrln_h_w(a: v4i32, b: v4i32) -> v8i16 { | 4542 | pub fn lsx_vsrln_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 4543 | __lsx_vsrln_h_w(a, b) | 4543 | unsafe { __lsx_vsrln_h_w(a, b) } |
| 4544 | } | 4544 | } |
| 4545 | 4545 | ||
| 4546 | #[inline] | 4546 | #[inline] |
| 4547 | #[target_feature(enable = "lsx")] | 4547 | #[target_feature(enable = "lsx")] |
| 4548 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4548 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4549 | pub unsafe fn lsx_vsrln_w_d(a: v2i64, b: v2i64) -> v4i32 { | 4549 | pub fn lsx_vsrln_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 4550 | __lsx_vsrln_w_d(a, b) | 4550 | unsafe { __lsx_vsrln_w_d(a, b) } |
| 4551 | } | 4551 | } |
| 4552 | 4552 | ||
| 4553 | #[inline] | 4553 | #[inline] |
| 4554 | #[target_feature(enable = "lsx")] | 4554 | #[target_feature(enable = "lsx")] |
| 4555 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4555 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4556 | pub unsafe fn lsx_vssrln_bu_h(a: v8u16, b: v8u16) -> v16u8 { | 4556 | pub fn lsx_vssrln_bu_h(a: v8u16, b: v8u16) -> v16u8 { |
| 4557 | __lsx_vssrln_bu_h(a, b) | 4557 | unsafe { __lsx_vssrln_bu_h(a, b) } |
| 4558 | } | 4558 | } |
| 4559 | 4559 | ||
| 4560 | #[inline] | 4560 | #[inline] |
| 4561 | #[target_feature(enable = "lsx")] | 4561 | #[target_feature(enable = "lsx")] |
| 4562 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4562 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4563 | pub unsafe fn lsx_vssrln_hu_w(a: v4u32, b: v4u32) -> v8u16 { | 4563 | pub fn lsx_vssrln_hu_w(a: v4u32, b: v4u32) -> v8u16 { |
| 4564 | __lsx_vssrln_hu_w(a, b) | 4564 | unsafe { __lsx_vssrln_hu_w(a, b) } |
| 4565 | } | 4565 | } |
| 4566 | 4566 | ||
| 4567 | #[inline] | 4567 | #[inline] |
| 4568 | #[target_feature(enable = "lsx")] | 4568 | #[target_feature(enable = "lsx")] |
| 4569 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4569 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4570 | pub unsafe fn lsx_vssrln_wu_d(a: v2u64, b: v2u64) -> v4u32 { | 4570 | pub fn lsx_vssrln_wu_d(a: v2u64, b: v2u64) -> v4u32 { |
| 4571 | __lsx_vssrln_wu_d(a, b) | 4571 | unsafe { __lsx_vssrln_wu_d(a, b) } |
| 4572 | } | 4572 | } |
| 4573 | 4573 | ||
| 4574 | #[inline] | 4574 | #[inline] |
| 4575 | #[target_feature(enable = "lsx")] | 4575 | #[target_feature(enable = "lsx")] |
| 4576 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4576 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4577 | pub unsafe fn lsx_vsrlrn_b_h(a: v8i16, b: v8i16) -> v16i8 { | 4577 | pub fn lsx_vsrlrn_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 4578 | __lsx_vsrlrn_b_h(a, b) | 4578 | unsafe { __lsx_vsrlrn_b_h(a, b) } |
| 4579 | } | 4579 | } |
| 4580 | 4580 | ||
| 4581 | #[inline] | 4581 | #[inline] |
| 4582 | #[target_feature(enable = "lsx")] | 4582 | #[target_feature(enable = "lsx")] |
| 4583 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4583 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4584 | pub unsafe fn lsx_vsrlrn_h_w(a: v4i32, b: v4i32) -> v8i16 { | 4584 | pub fn lsx_vsrlrn_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 4585 | __lsx_vsrlrn_h_w(a, b) | 4585 | unsafe { __lsx_vsrlrn_h_w(a, b) } |
| 4586 | } | 4586 | } |
| 4587 | 4587 | ||
| 4588 | #[inline] | 4588 | #[inline] |
| 4589 | #[target_feature(enable = "lsx")] | 4589 | #[target_feature(enable = "lsx")] |
| 4590 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4590 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4591 | pub unsafe fn lsx_vsrlrn_w_d(a: v2i64, b: v2i64) -> v4i32 { | 4591 | pub fn lsx_vsrlrn_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 4592 | __lsx_vsrlrn_w_d(a, b) | 4592 | unsafe { __lsx_vsrlrn_w_d(a, b) } |
| 4593 | } | 4593 | } |
| 4594 | 4594 | ||
| 4595 | #[inline] | 4595 | #[inline] |
| 4596 | #[target_feature(enable = "lsx")] | 4596 | #[target_feature(enable = "lsx")] |
| 4597 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4597 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4598 | pub unsafe fn lsx_vssrlrn_bu_h(a: v8u16, b: v8u16) -> v16u8 { | 4598 | pub fn lsx_vssrlrn_bu_h(a: v8u16, b: v8u16) -> v16u8 { |
| 4599 | __lsx_vssrlrn_bu_h(a, b) | 4599 | unsafe { __lsx_vssrlrn_bu_h(a, b) } |
| 4600 | } | 4600 | } |
| 4601 | 4601 | ||
| 4602 | #[inline] | 4602 | #[inline] |
| 4603 | #[target_feature(enable = "lsx")] | 4603 | #[target_feature(enable = "lsx")] |
| 4604 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4604 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4605 | pub unsafe fn lsx_vssrlrn_hu_w(a: v4u32, b: v4u32) -> v8u16 { | 4605 | pub fn lsx_vssrlrn_hu_w(a: v4u32, b: v4u32) -> v8u16 { |
| 4606 | __lsx_vssrlrn_hu_w(a, b) | 4606 | unsafe { __lsx_vssrlrn_hu_w(a, b) } |
| 4607 | } | 4607 | } |
| 4608 | 4608 | ||
| 4609 | #[inline] | 4609 | #[inline] |
| 4610 | #[target_feature(enable = "lsx")] | 4610 | #[target_feature(enable = "lsx")] |
| 4611 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4611 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4612 | pub unsafe fn lsx_vssrlrn_wu_d(a: v2u64, b: v2u64) -> v4u32 { | 4612 | pub fn lsx_vssrlrn_wu_d(a: v2u64, b: v2u64) -> v4u32 { |
| 4613 | __lsx_vssrlrn_wu_d(a, b) | 4613 | unsafe { __lsx_vssrlrn_wu_d(a, b) } |
| 4614 | } | 4614 | } |
| 4615 | 4615 | ||
| 4616 | #[inline] | 4616 | #[inline] |
| 4617 | #[target_feature(enable = "lsx")] | 4617 | #[target_feature(enable = "lsx")] |
| 4618 | #[rustc_legacy_const_generics(2)] | 4618 | #[rustc_legacy_const_generics(2)] |
| 4619 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4619 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4620 | pub unsafe fn lsx_vfrstpi_b<const IMM5: u32>(a: v16i8, b: v16i8) -> v16i8 { | 4620 | pub fn lsx_vfrstpi_b<const IMM5: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 4621 | static_assert_uimm_bits!(IMM5, 5); | 4621 | static_assert_uimm_bits!(IMM5, 5); |
| 4622 | __lsx_vfrstpi_b(a, b, IMM5) | 4622 | unsafe { __lsx_vfrstpi_b(a, b, IMM5) } |
| 4623 | } | 4623 | } |
| 4624 | 4624 | ||
| 4625 | #[inline] | 4625 | #[inline] |
| 4626 | #[target_feature(enable = "lsx")] | 4626 | #[target_feature(enable = "lsx")] |
| 4627 | #[rustc_legacy_const_generics(2)] | 4627 | #[rustc_legacy_const_generics(2)] |
| 4628 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4628 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4629 | pub unsafe fn lsx_vfrstpi_h<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 4629 | pub fn lsx_vfrstpi_h<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 4630 | static_assert_uimm_bits!(IMM5, 5); | 4630 | static_assert_uimm_bits!(IMM5, 5); |
| 4631 | __lsx_vfrstpi_h(a, b, IMM5) | 4631 | unsafe { __lsx_vfrstpi_h(a, b, IMM5) } |
| 4632 | } | 4632 | } |
| 4633 | 4633 | ||
| 4634 | #[inline] | 4634 | #[inline] |
| 4635 | #[target_feature(enable = "lsx")] | 4635 | #[target_feature(enable = "lsx")] |
| 4636 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4636 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4637 | pub unsafe fn lsx_vfrstp_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { | 4637 | pub fn lsx_vfrstp_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { |
| 4638 | __lsx_vfrstp_b(a, b, c) | 4638 | unsafe { __lsx_vfrstp_b(a, b, c) } |
| 4639 | } | 4639 | } |
| 4640 | 4640 | ||
| 4641 | #[inline] | 4641 | #[inline] |
| 4642 | #[target_feature(enable = "lsx")] | 4642 | #[target_feature(enable = "lsx")] |
| 4643 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4643 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4644 | pub unsafe fn lsx_vfrstp_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { | 4644 | pub fn lsx_vfrstp_h(a: v8i16, b: v8i16, c: v8i16) -> v8i16 { |
| 4645 | __lsx_vfrstp_h(a, b, c) | 4645 | unsafe { __lsx_vfrstp_h(a, b, c) } |
| 4646 | } | 4646 | } |
| 4647 | 4647 | ||
| 4648 | #[inline] | 4648 | #[inline] |
| 4649 | #[target_feature(enable = "lsx")] | 4649 | #[target_feature(enable = "lsx")] |
| 4650 | #[rustc_legacy_const_generics(2)] | 4650 | #[rustc_legacy_const_generics(2)] |
| 4651 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4651 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4652 | pub unsafe fn lsx_vshuf4i_d<const IMM8: u32>(a: v2i64, b: v2i64) -> v2i64 { | 4652 | pub fn lsx_vshuf4i_d<const IMM8: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 4653 | static_assert_uimm_bits!(IMM8, 8); | 4653 | static_assert_uimm_bits!(IMM8, 8); |
| 4654 | __lsx_vshuf4i_d(a, b, IMM8) | 4654 | unsafe { __lsx_vshuf4i_d(a, b, IMM8) } |
| 4655 | } | 4655 | } |
| 4656 | 4656 | ||
| 4657 | #[inline] | 4657 | #[inline] |
| 4658 | #[target_feature(enable = "lsx")] | 4658 | #[target_feature(enable = "lsx")] |
| 4659 | #[rustc_legacy_const_generics(1)] | 4659 | #[rustc_legacy_const_generics(1)] |
| 4660 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4660 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4661 | pub unsafe fn lsx_vbsrl_v<const IMM5: u32>(a: v16i8) -> v16i8 { | 4661 | pub fn lsx_vbsrl_v<const IMM5: u32>(a: v16i8) -> v16i8 { |
| 4662 | static_assert_uimm_bits!(IMM5, 5); | 4662 | static_assert_uimm_bits!(IMM5, 5); |
| 4663 | __lsx_vbsrl_v(a, IMM5) | 4663 | unsafe { __lsx_vbsrl_v(a, IMM5) } |
| 4664 | } | 4664 | } |
| 4665 | 4665 | ||
| 4666 | #[inline] | 4666 | #[inline] |
| 4667 | #[target_feature(enable = "lsx")] | 4667 | #[target_feature(enable = "lsx")] |
| 4668 | #[rustc_legacy_const_generics(1)] | 4668 | #[rustc_legacy_const_generics(1)] |
| 4669 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4669 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4670 | pub unsafe fn lsx_vbsll_v<const IMM5: u32>(a: v16i8) -> v16i8 { | 4670 | pub fn lsx_vbsll_v<const IMM5: u32>(a: v16i8) -> v16i8 { |
| 4671 | static_assert_uimm_bits!(IMM5, 5); | 4671 | static_assert_uimm_bits!(IMM5, 5); |
| 4672 | __lsx_vbsll_v(a, IMM5) | 4672 | unsafe { __lsx_vbsll_v(a, IMM5) } |
| 4673 | } | 4673 | } |
| 4674 | 4674 | ||
| 4675 | #[inline] | 4675 | #[inline] |
| 4676 | #[target_feature(enable = "lsx")] | 4676 | #[target_feature(enable = "lsx")] |
| 4677 | #[rustc_legacy_const_generics(2)] | 4677 | #[rustc_legacy_const_generics(2)] |
| 4678 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4678 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4679 | pub unsafe fn lsx_vextrins_b<const IMM8: u32>(a: v16i8, b: v16i8) -> v16i8 { | 4679 | pub fn lsx_vextrins_b<const IMM8: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 4680 | static_assert_uimm_bits!(IMM8, 8); | 4680 | static_assert_uimm_bits!(IMM8, 8); |
| 4681 | __lsx_vextrins_b(a, b, IMM8) | 4681 | unsafe { __lsx_vextrins_b(a, b, IMM8) } |
| 4682 | } | 4682 | } |
| 4683 | 4683 | ||
| 4684 | #[inline] | 4684 | #[inline] |
| 4685 | #[target_feature(enable = "lsx")] | 4685 | #[target_feature(enable = "lsx")] |
| 4686 | #[rustc_legacy_const_generics(2)] | 4686 | #[rustc_legacy_const_generics(2)] |
| 4687 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4687 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4688 | pub unsafe fn lsx_vextrins_h<const IMM8: u32>(a: v8i16, b: v8i16) -> v8i16 { | 4688 | pub fn lsx_vextrins_h<const IMM8: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 4689 | static_assert_uimm_bits!(IMM8, 8); | 4689 | static_assert_uimm_bits!(IMM8, 8); |
| 4690 | __lsx_vextrins_h(a, b, IMM8) | 4690 | unsafe { __lsx_vextrins_h(a, b, IMM8) } |
| 4691 | } | 4691 | } |
| 4692 | 4692 | ||
| 4693 | #[inline] | 4693 | #[inline] |
| 4694 | #[target_feature(enable = "lsx")] | 4694 | #[target_feature(enable = "lsx")] |
| 4695 | #[rustc_legacy_const_generics(2)] | 4695 | #[rustc_legacy_const_generics(2)] |
| 4696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4696 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4697 | pub unsafe fn lsx_vextrins_w<const IMM8: u32>(a: v4i32, b: v4i32) -> v4i32 { | 4697 | pub fn lsx_vextrins_w<const IMM8: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 4698 | static_assert_uimm_bits!(IMM8, 8); | 4698 | static_assert_uimm_bits!(IMM8, 8); |
| 4699 | __lsx_vextrins_w(a, b, IMM8) | 4699 | unsafe { __lsx_vextrins_w(a, b, IMM8) } |
| 4700 | } | 4700 | } |
| 4701 | 4701 | ||
| 4702 | #[inline] | 4702 | #[inline] |
| 4703 | #[target_feature(enable = "lsx")] | 4703 | #[target_feature(enable = "lsx")] |
| 4704 | #[rustc_legacy_const_generics(2)] | 4704 | #[rustc_legacy_const_generics(2)] |
| 4705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4706 | pub unsafe fn lsx_vextrins_d<const IMM8: u32>(a: v2i64, b: v2i64) -> v2i64 { | 4706 | pub fn lsx_vextrins_d<const IMM8: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 4707 | static_assert_uimm_bits!(IMM8, 8); | 4707 | static_assert_uimm_bits!(IMM8, 8); |
| 4708 | __lsx_vextrins_d(a, b, IMM8) | 4708 | unsafe { __lsx_vextrins_d(a, b, IMM8) } |
| 4709 | } | 4709 | } |
| 4710 | 4710 | ||
| 4711 | #[inline] | 4711 | #[inline] |
| 4712 | #[target_feature(enable = "lsx")] | 4712 | #[target_feature(enable = "lsx")] |
| 4713 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4713 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4714 | pub unsafe fn lsx_vmskltz_b(a: v16i8) -> v16i8 { | 4714 | pub fn lsx_vmskltz_b(a: v16i8) -> v16i8 { |
| 4715 | __lsx_vmskltz_b(a) | 4715 | unsafe { __lsx_vmskltz_b(a) } |
| 4716 | } | 4716 | } |
| 4717 | 4717 | ||
| 4718 | #[inline] | 4718 | #[inline] |
| 4719 | #[target_feature(enable = "lsx")] | 4719 | #[target_feature(enable = "lsx")] |
| 4720 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4720 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4721 | pub unsafe fn lsx_vmskltz_h(a: v8i16) -> v8i16 { | 4721 | pub fn lsx_vmskltz_h(a: v8i16) -> v8i16 { |
| 4722 | __lsx_vmskltz_h(a) | 4722 | unsafe { __lsx_vmskltz_h(a) } |
| 4723 | } | 4723 | } |
| 4724 | 4724 | ||
| 4725 | #[inline] | 4725 | #[inline] |
| 4726 | #[target_feature(enable = "lsx")] | 4726 | #[target_feature(enable = "lsx")] |
| 4727 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4727 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4728 | pub unsafe fn lsx_vmskltz_w(a: v4i32) -> v4i32 { | 4728 | pub fn lsx_vmskltz_w(a: v4i32) -> v4i32 { |
| 4729 | __lsx_vmskltz_w(a) | 4729 | unsafe { __lsx_vmskltz_w(a) } |
| 4730 | } | 4730 | } |
| 4731 | 4731 | ||
| 4732 | #[inline] | 4732 | #[inline] |
| 4733 | #[target_feature(enable = "lsx")] | 4733 | #[target_feature(enable = "lsx")] |
| 4734 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4734 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4735 | pub unsafe fn lsx_vmskltz_d(a: v2i64) -> v2i64 { | 4735 | pub fn lsx_vmskltz_d(a: v2i64) -> v2i64 { |
| 4736 | __lsx_vmskltz_d(a) | 4736 | unsafe { __lsx_vmskltz_d(a) } |
| 4737 | } | 4737 | } |
| 4738 | 4738 | ||
| 4739 | #[inline] | 4739 | #[inline] |
| 4740 | #[target_feature(enable = "lsx")] | 4740 | #[target_feature(enable = "lsx")] |
| 4741 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4741 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4742 | pub unsafe fn lsx_vsigncov_b(a: v16i8, b: v16i8) -> v16i8 { | 4742 | pub fn lsx_vsigncov_b(a: v16i8, b: v16i8) -> v16i8 { |
| 4743 | __lsx_vsigncov_b(a, b) | 4743 | unsafe { __lsx_vsigncov_b(a, b) } |
| 4744 | } | 4744 | } |
| 4745 | 4745 | ||
| 4746 | #[inline] | 4746 | #[inline] |
| 4747 | #[target_feature(enable = "lsx")] | 4747 | #[target_feature(enable = "lsx")] |
| 4748 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4748 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4749 | pub unsafe fn lsx_vsigncov_h(a: v8i16, b: v8i16) -> v8i16 { | 4749 | pub fn lsx_vsigncov_h(a: v8i16, b: v8i16) -> v8i16 { |
| 4750 | __lsx_vsigncov_h(a, b) | 4750 | unsafe { __lsx_vsigncov_h(a, b) } |
| 4751 | } | 4751 | } |
| 4752 | 4752 | ||
| 4753 | #[inline] | 4753 | #[inline] |
| 4754 | #[target_feature(enable = "lsx")] | 4754 | #[target_feature(enable = "lsx")] |
| 4755 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4755 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4756 | pub unsafe fn lsx_vsigncov_w(a: v4i32, b: v4i32) -> v4i32 { | 4756 | pub fn lsx_vsigncov_w(a: v4i32, b: v4i32) -> v4i32 { |
| 4757 | __lsx_vsigncov_w(a, b) | 4757 | unsafe { __lsx_vsigncov_w(a, b) } |
| 4758 | } | 4758 | } |
| 4759 | 4759 | ||
| 4760 | #[inline] | 4760 | #[inline] |
| 4761 | #[target_feature(enable = "lsx")] | 4761 | #[target_feature(enable = "lsx")] |
| 4762 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4762 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4763 | pub unsafe fn lsx_vsigncov_d(a: v2i64, b: v2i64) -> v2i64 { | 4763 | pub fn lsx_vsigncov_d(a: v2i64, b: v2i64) -> v2i64 { |
| 4764 | __lsx_vsigncov_d(a, b) | 4764 | unsafe { __lsx_vsigncov_d(a, b) } |
| 4765 | } | 4765 | } |
| 4766 | 4766 | ||
| 4767 | #[inline] | 4767 | #[inline] |
| 4768 | #[target_feature(enable = "lsx")] | 4768 | #[target_feature(enable = "lsx")] |
| 4769 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4769 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4770 | pub unsafe fn lsx_vfmadd_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { | 4770 | pub fn lsx_vfmadd_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { |
| 4771 | __lsx_vfmadd_s(a, b, c) | 4771 | unsafe { __lsx_vfmadd_s(a, b, c) } |
| 4772 | } | 4772 | } |
| 4773 | 4773 | ||
| 4774 | #[inline] | 4774 | #[inline] |
| 4775 | #[target_feature(enable = "lsx")] | 4775 | #[target_feature(enable = "lsx")] |
| 4776 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4776 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4777 | pub unsafe fn lsx_vfmadd_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { | 4777 | pub fn lsx_vfmadd_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { |
| 4778 | __lsx_vfmadd_d(a, b, c) | 4778 | unsafe { __lsx_vfmadd_d(a, b, c) } |
| 4779 | } | 4779 | } |
| 4780 | 4780 | ||
| 4781 | #[inline] | 4781 | #[inline] |
| 4782 | #[target_feature(enable = "lsx")] | 4782 | #[target_feature(enable = "lsx")] |
| 4783 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4783 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4784 | pub unsafe fn lsx_vfmsub_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { | 4784 | pub fn lsx_vfmsub_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { |
| 4785 | __lsx_vfmsub_s(a, b, c) | 4785 | unsafe { __lsx_vfmsub_s(a, b, c) } |
| 4786 | } | 4786 | } |
| 4787 | 4787 | ||
| 4788 | #[inline] | 4788 | #[inline] |
| 4789 | #[target_feature(enable = "lsx")] | 4789 | #[target_feature(enable = "lsx")] |
| 4790 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4790 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4791 | pub unsafe fn lsx_vfmsub_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { | 4791 | pub fn lsx_vfmsub_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { |
| 4792 | __lsx_vfmsub_d(a, b, c) | 4792 | unsafe { __lsx_vfmsub_d(a, b, c) } |
| 4793 | } | 4793 | } |
| 4794 | 4794 | ||
| 4795 | #[inline] | 4795 | #[inline] |
| 4796 | #[target_feature(enable = "lsx")] | 4796 | #[target_feature(enable = "lsx")] |
| 4797 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4797 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4798 | pub unsafe fn lsx_vfnmadd_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { | 4798 | pub fn lsx_vfnmadd_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { |
| 4799 | __lsx_vfnmadd_s(a, b, c) | 4799 | unsafe { __lsx_vfnmadd_s(a, b, c) } |
| 4800 | } | 4800 | } |
| 4801 | 4801 | ||
| 4802 | #[inline] | 4802 | #[inline] |
| 4803 | #[target_feature(enable = "lsx")] | 4803 | #[target_feature(enable = "lsx")] |
| 4804 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4804 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4805 | pub unsafe fn lsx_vfnmadd_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { | 4805 | pub fn lsx_vfnmadd_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { |
| 4806 | __lsx_vfnmadd_d(a, b, c) | 4806 | unsafe { __lsx_vfnmadd_d(a, b, c) } |
| 4807 | } | 4807 | } |
| 4808 | 4808 | ||
| 4809 | #[inline] | 4809 | #[inline] |
| 4810 | #[target_feature(enable = "lsx")] | 4810 | #[target_feature(enable = "lsx")] |
| 4811 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4811 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4812 | pub unsafe fn lsx_vfnmsub_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { | 4812 | pub fn lsx_vfnmsub_s(a: v4f32, b: v4f32, c: v4f32) -> v4f32 { |
| 4813 | __lsx_vfnmsub_s(a, b, c) | 4813 | unsafe { __lsx_vfnmsub_s(a, b, c) } |
| 4814 | } | 4814 | } |
| 4815 | 4815 | ||
| 4816 | #[inline] | 4816 | #[inline] |
| 4817 | #[target_feature(enable = "lsx")] | 4817 | #[target_feature(enable = "lsx")] |
| 4818 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4818 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4819 | pub unsafe fn lsx_vfnmsub_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { | 4819 | pub fn lsx_vfnmsub_d(a: v2f64, b: v2f64, c: v2f64) -> v2f64 { |
| 4820 | __lsx_vfnmsub_d(a, b, c) | 4820 | unsafe { __lsx_vfnmsub_d(a, b, c) } |
| 4821 | } | 4821 | } |
| 4822 | 4822 | ||
| 4823 | #[inline] | 4823 | #[inline] |
| 4824 | #[target_feature(enable = "lsx")] | 4824 | #[target_feature(enable = "lsx")] |
| 4825 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4825 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4826 | pub unsafe fn lsx_vftintrne_w_s(a: v4f32) -> v4i32 { | 4826 | pub fn lsx_vftintrne_w_s(a: v4f32) -> v4i32 { |
| 4827 | __lsx_vftintrne_w_s(a) | 4827 | unsafe { __lsx_vftintrne_w_s(a) } |
| 4828 | } | 4828 | } |
| 4829 | 4829 | ||
| 4830 | #[inline] | 4830 | #[inline] |
| 4831 | #[target_feature(enable = "lsx")] | 4831 | #[target_feature(enable = "lsx")] |
| 4832 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4832 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4833 | pub unsafe fn lsx_vftintrne_l_d(a: v2f64) -> v2i64 { | 4833 | pub fn lsx_vftintrne_l_d(a: v2f64) -> v2i64 { |
| 4834 | __lsx_vftintrne_l_d(a) | 4834 | unsafe { __lsx_vftintrne_l_d(a) } |
| 4835 | } | 4835 | } |
| 4836 | 4836 | ||
| 4837 | #[inline] | 4837 | #[inline] |
| 4838 | #[target_feature(enable = "lsx")] | 4838 | #[target_feature(enable = "lsx")] |
| 4839 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4839 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4840 | pub unsafe fn lsx_vftintrp_w_s(a: v4f32) -> v4i32 { | 4840 | pub fn lsx_vftintrp_w_s(a: v4f32) -> v4i32 { |
| 4841 | __lsx_vftintrp_w_s(a) | 4841 | unsafe { __lsx_vftintrp_w_s(a) } |
| 4842 | } | 4842 | } |
| 4843 | 4843 | ||
| 4844 | #[inline] | 4844 | #[inline] |
| 4845 | #[target_feature(enable = "lsx")] | 4845 | #[target_feature(enable = "lsx")] |
| 4846 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4846 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4847 | pub unsafe fn lsx_vftintrp_l_d(a: v2f64) -> v2i64 { | 4847 | pub fn lsx_vftintrp_l_d(a: v2f64) -> v2i64 { |
| 4848 | __lsx_vftintrp_l_d(a) | 4848 | unsafe { __lsx_vftintrp_l_d(a) } |
| 4849 | } | 4849 | } |
| 4850 | 4850 | ||
| 4851 | #[inline] | 4851 | #[inline] |
| 4852 | #[target_feature(enable = "lsx")] | 4852 | #[target_feature(enable = "lsx")] |
| 4853 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4853 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4854 | pub unsafe fn lsx_vftintrm_w_s(a: v4f32) -> v4i32 { | 4854 | pub fn lsx_vftintrm_w_s(a: v4f32) -> v4i32 { |
| 4855 | __lsx_vftintrm_w_s(a) | 4855 | unsafe { __lsx_vftintrm_w_s(a) } |
| 4856 | } | 4856 | } |
| 4857 | 4857 | ||
| 4858 | #[inline] | 4858 | #[inline] |
| 4859 | #[target_feature(enable = "lsx")] | 4859 | #[target_feature(enable = "lsx")] |
| 4860 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4860 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4861 | pub unsafe fn lsx_vftintrm_l_d(a: v2f64) -> v2i64 { | 4861 | pub fn lsx_vftintrm_l_d(a: v2f64) -> v2i64 { |
| 4862 | __lsx_vftintrm_l_d(a) | 4862 | unsafe { __lsx_vftintrm_l_d(a) } |
| 4863 | } | 4863 | } |
| 4864 | 4864 | ||
| 4865 | #[inline] | 4865 | #[inline] |
| 4866 | #[target_feature(enable = "lsx")] | 4866 | #[target_feature(enable = "lsx")] |
| 4867 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4867 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4868 | pub unsafe fn lsx_vftint_w_d(a: v2f64, b: v2f64) -> v4i32 { | 4868 | pub fn lsx_vftint_w_d(a: v2f64, b: v2f64) -> v4i32 { |
| 4869 | __lsx_vftint_w_d(a, b) | 4869 | unsafe { __lsx_vftint_w_d(a, b) } |
| 4870 | } | 4870 | } |
| 4871 | 4871 | ||
| 4872 | #[inline] | 4872 | #[inline] |
| 4873 | #[target_feature(enable = "lsx")] | 4873 | #[target_feature(enable = "lsx")] |
| 4874 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4874 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4875 | pub unsafe fn lsx_vffint_s_l(a: v2i64, b: v2i64) -> v4f32 { | 4875 | pub fn lsx_vffint_s_l(a: v2i64, b: v2i64) -> v4f32 { |
| 4876 | __lsx_vffint_s_l(a, b) | 4876 | unsafe { __lsx_vffint_s_l(a, b) } |
| 4877 | } | 4877 | } |
| 4878 | 4878 | ||
| 4879 | #[inline] | 4879 | #[inline] |
| 4880 | #[target_feature(enable = "lsx")] | 4880 | #[target_feature(enable = "lsx")] |
| 4881 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4881 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4882 | pub unsafe fn lsx_vftintrz_w_d(a: v2f64, b: v2f64) -> v4i32 { | 4882 | pub fn lsx_vftintrz_w_d(a: v2f64, b: v2f64) -> v4i32 { |
| 4883 | __lsx_vftintrz_w_d(a, b) | 4883 | unsafe { __lsx_vftintrz_w_d(a, b) } |
| 4884 | } | 4884 | } |
| 4885 | 4885 | ||
| 4886 | #[inline] | 4886 | #[inline] |
| 4887 | #[target_feature(enable = "lsx")] | 4887 | #[target_feature(enable = "lsx")] |
| 4888 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4888 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4889 | pub unsafe fn lsx_vftintrp_w_d(a: v2f64, b: v2f64) -> v4i32 { | 4889 | pub fn lsx_vftintrp_w_d(a: v2f64, b: v2f64) -> v4i32 { |
| 4890 | __lsx_vftintrp_w_d(a, b) | 4890 | unsafe { __lsx_vftintrp_w_d(a, b) } |
| 4891 | } | 4891 | } |
| 4892 | 4892 | ||
| 4893 | #[inline] | 4893 | #[inline] |
| 4894 | #[target_feature(enable = "lsx")] | 4894 | #[target_feature(enable = "lsx")] |
| 4895 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4895 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4896 | pub unsafe fn lsx_vftintrm_w_d(a: v2f64, b: v2f64) -> v4i32 { | 4896 | pub fn lsx_vftintrm_w_d(a: v2f64, b: v2f64) -> v4i32 { |
| 4897 | __lsx_vftintrm_w_d(a, b) | 4897 | unsafe { __lsx_vftintrm_w_d(a, b) } |
| 4898 | } | 4898 | } |
| 4899 | 4899 | ||
| 4900 | #[inline] | 4900 | #[inline] |
| 4901 | #[target_feature(enable = "lsx")] | 4901 | #[target_feature(enable = "lsx")] |
| 4902 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4902 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4903 | pub unsafe fn lsx_vftintrne_w_d(a: v2f64, b: v2f64) -> v4i32 { | 4903 | pub fn lsx_vftintrne_w_d(a: v2f64, b: v2f64) -> v4i32 { |
| 4904 | __lsx_vftintrne_w_d(a, b) | 4904 | unsafe { __lsx_vftintrne_w_d(a, b) } |
| 4905 | } | 4905 | } |
| 4906 | 4906 | ||
| 4907 | #[inline] | 4907 | #[inline] |
| 4908 | #[target_feature(enable = "lsx")] | 4908 | #[target_feature(enable = "lsx")] |
| 4909 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4909 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4910 | pub unsafe fn lsx_vftintl_l_s(a: v4f32) -> v2i64 { | 4910 | pub fn lsx_vftintl_l_s(a: v4f32) -> v2i64 { |
| 4911 | __lsx_vftintl_l_s(a) | 4911 | unsafe { __lsx_vftintl_l_s(a) } |
| 4912 | } | 4912 | } |
| 4913 | 4913 | ||
| 4914 | #[inline] | 4914 | #[inline] |
| 4915 | #[target_feature(enable = "lsx")] | 4915 | #[target_feature(enable = "lsx")] |
| 4916 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4916 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4917 | pub unsafe fn lsx_vftinth_l_s(a: v4f32) -> v2i64 { | 4917 | pub fn lsx_vftinth_l_s(a: v4f32) -> v2i64 { |
| 4918 | __lsx_vftinth_l_s(a) | 4918 | unsafe { __lsx_vftinth_l_s(a) } |
| 4919 | } | 4919 | } |
| 4920 | 4920 | ||
| 4921 | #[inline] | 4921 | #[inline] |
| 4922 | #[target_feature(enable = "lsx")] | 4922 | #[target_feature(enable = "lsx")] |
| 4923 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4923 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4924 | pub unsafe fn lsx_vffinth_d_w(a: v4i32) -> v2f64 { | 4924 | pub fn lsx_vffinth_d_w(a: v4i32) -> v2f64 { |
| 4925 | __lsx_vffinth_d_w(a) | 4925 | unsafe { __lsx_vffinth_d_w(a) } |
| 4926 | } | 4926 | } |
| 4927 | 4927 | ||
| 4928 | #[inline] | 4928 | #[inline] |
| 4929 | #[target_feature(enable = "lsx")] | 4929 | #[target_feature(enable = "lsx")] |
| 4930 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4930 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4931 | pub unsafe fn lsx_vffintl_d_w(a: v4i32) -> v2f64 { | 4931 | pub fn lsx_vffintl_d_w(a: v4i32) -> v2f64 { |
| 4932 | __lsx_vffintl_d_w(a) | 4932 | unsafe { __lsx_vffintl_d_w(a) } |
| 4933 | } | 4933 | } |
| 4934 | 4934 | ||
| 4935 | #[inline] | 4935 | #[inline] |
| 4936 | #[target_feature(enable = "lsx")] | 4936 | #[target_feature(enable = "lsx")] |
| 4937 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4937 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4938 | pub unsafe fn lsx_vftintrzl_l_s(a: v4f32) -> v2i64 { | 4938 | pub fn lsx_vftintrzl_l_s(a: v4f32) -> v2i64 { |
| 4939 | __lsx_vftintrzl_l_s(a) | 4939 | unsafe { __lsx_vftintrzl_l_s(a) } |
| 4940 | } | 4940 | } |
| 4941 | 4941 | ||
| 4942 | #[inline] | 4942 | #[inline] |
| 4943 | #[target_feature(enable = "lsx")] | 4943 | #[target_feature(enable = "lsx")] |
| 4944 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4944 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4945 | pub unsafe fn lsx_vftintrzh_l_s(a: v4f32) -> v2i64 { | 4945 | pub fn lsx_vftintrzh_l_s(a: v4f32) -> v2i64 { |
| 4946 | __lsx_vftintrzh_l_s(a) | 4946 | unsafe { __lsx_vftintrzh_l_s(a) } |
| 4947 | } | 4947 | } |
| 4948 | 4948 | ||
| 4949 | #[inline] | 4949 | #[inline] |
| 4950 | #[target_feature(enable = "lsx")] | 4950 | #[target_feature(enable = "lsx")] |
| 4951 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4951 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4952 | pub unsafe fn lsx_vftintrpl_l_s(a: v4f32) -> v2i64 { | 4952 | pub fn lsx_vftintrpl_l_s(a: v4f32) -> v2i64 { |
| 4953 | __lsx_vftintrpl_l_s(a) | 4953 | unsafe { __lsx_vftintrpl_l_s(a) } |
| 4954 | } | 4954 | } |
| 4955 | 4955 | ||
| 4956 | #[inline] | 4956 | #[inline] |
| 4957 | #[target_feature(enable = "lsx")] | 4957 | #[target_feature(enable = "lsx")] |
| 4958 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4958 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4959 | pub unsafe fn lsx_vftintrph_l_s(a: v4f32) -> v2i64 { | 4959 | pub fn lsx_vftintrph_l_s(a: v4f32) -> v2i64 { |
| 4960 | __lsx_vftintrph_l_s(a) | 4960 | unsafe { __lsx_vftintrph_l_s(a) } |
| 4961 | } | 4961 | } |
| 4962 | 4962 | ||
| 4963 | #[inline] | 4963 | #[inline] |
| 4964 | #[target_feature(enable = "lsx")] | 4964 | #[target_feature(enable = "lsx")] |
| 4965 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4965 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4966 | pub unsafe fn lsx_vftintrml_l_s(a: v4f32) -> v2i64 { | 4966 | pub fn lsx_vftintrml_l_s(a: v4f32) -> v2i64 { |
| 4967 | __lsx_vftintrml_l_s(a) | 4967 | unsafe { __lsx_vftintrml_l_s(a) } |
| 4968 | } | 4968 | } |
| 4969 | 4969 | ||
| 4970 | #[inline] | 4970 | #[inline] |
| 4971 | #[target_feature(enable = "lsx")] | 4971 | #[target_feature(enable = "lsx")] |
| 4972 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4972 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4973 | pub unsafe fn lsx_vftintrmh_l_s(a: v4f32) -> v2i64 { | 4973 | pub fn lsx_vftintrmh_l_s(a: v4f32) -> v2i64 { |
| 4974 | __lsx_vftintrmh_l_s(a) | 4974 | unsafe { __lsx_vftintrmh_l_s(a) } |
| 4975 | } | 4975 | } |
| 4976 | 4976 | ||
| 4977 | #[inline] | 4977 | #[inline] |
| 4978 | #[target_feature(enable = "lsx")] | 4978 | #[target_feature(enable = "lsx")] |
| 4979 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4979 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4980 | pub unsafe fn lsx_vftintrnel_l_s(a: v4f32) -> v2i64 { | 4980 | pub fn lsx_vftintrnel_l_s(a: v4f32) -> v2i64 { |
| 4981 | __lsx_vftintrnel_l_s(a) | 4981 | unsafe { __lsx_vftintrnel_l_s(a) } |
| 4982 | } | 4982 | } |
| 4983 | 4983 | ||
| 4984 | #[inline] | 4984 | #[inline] |
| 4985 | #[target_feature(enable = "lsx")] | 4985 | #[target_feature(enable = "lsx")] |
| 4986 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4986 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4987 | pub unsafe fn lsx_vftintrneh_l_s(a: v4f32) -> v2i64 { | 4987 | pub fn lsx_vftintrneh_l_s(a: v4f32) -> v2i64 { |
| 4988 | __lsx_vftintrneh_l_s(a) | 4988 | unsafe { __lsx_vftintrneh_l_s(a) } |
| 4989 | } | 4989 | } |
| 4990 | 4990 | ||
| 4991 | #[inline] | 4991 | #[inline] |
| 4992 | #[target_feature(enable = "lsx")] | 4992 | #[target_feature(enable = "lsx")] |
| 4993 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 4993 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 4994 | pub unsafe fn lsx_vfrintrne_s(a: v4f32) -> v4f32 { | 4994 | pub fn lsx_vfrintrne_s(a: v4f32) -> v4f32 { |
| 4995 | __lsx_vfrintrne_s(a) | 4995 | unsafe { __lsx_vfrintrne_s(a) } |
| 4996 | } | 4996 | } |
| 4997 | 4997 | ||
| 4998 | #[inline] | 4998 | #[inline] |
| 4999 | #[target_feature(enable = "lsx")] | 4999 | #[target_feature(enable = "lsx")] |
| 5000 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5000 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5001 | pub unsafe fn lsx_vfrintrne_d(a: v2f64) -> v2f64 { | 5001 | pub fn lsx_vfrintrne_d(a: v2f64) -> v2f64 { |
| 5002 | __lsx_vfrintrne_d(a) | 5002 | unsafe { __lsx_vfrintrne_d(a) } |
| 5003 | } | 5003 | } |
| 5004 | 5004 | ||
| 5005 | #[inline] | 5005 | #[inline] |
| 5006 | #[target_feature(enable = "lsx")] | 5006 | #[target_feature(enable = "lsx")] |
| 5007 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5007 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5008 | pub unsafe fn lsx_vfrintrz_s(a: v4f32) -> v4f32 { | 5008 | pub fn lsx_vfrintrz_s(a: v4f32) -> v4f32 { |
| 5009 | __lsx_vfrintrz_s(a) | 5009 | unsafe { __lsx_vfrintrz_s(a) } |
| 5010 | } | 5010 | } |
| 5011 | 5011 | ||
| 5012 | #[inline] | 5012 | #[inline] |
| 5013 | #[target_feature(enable = "lsx")] | 5013 | #[target_feature(enable = "lsx")] |
| 5014 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5014 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5015 | pub unsafe fn lsx_vfrintrz_d(a: v2f64) -> v2f64 { | 5015 | pub fn lsx_vfrintrz_d(a: v2f64) -> v2f64 { |
| 5016 | __lsx_vfrintrz_d(a) | 5016 | unsafe { __lsx_vfrintrz_d(a) } |
| 5017 | } | 5017 | } |
| 5018 | 5018 | ||
| 5019 | #[inline] | 5019 | #[inline] |
| 5020 | #[target_feature(enable = "lsx")] | 5020 | #[target_feature(enable = "lsx")] |
| 5021 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5021 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5022 | pub unsafe fn lsx_vfrintrp_s(a: v4f32) -> v4f32 { | 5022 | pub fn lsx_vfrintrp_s(a: v4f32) -> v4f32 { |
| 5023 | __lsx_vfrintrp_s(a) | 5023 | unsafe { __lsx_vfrintrp_s(a) } |
| 5024 | } | 5024 | } |
| 5025 | 5025 | ||
| 5026 | #[inline] | 5026 | #[inline] |
| 5027 | #[target_feature(enable = "lsx")] | 5027 | #[target_feature(enable = "lsx")] |
| 5028 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5028 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5029 | pub unsafe fn lsx_vfrintrp_d(a: v2f64) -> v2f64 { | 5029 | pub fn lsx_vfrintrp_d(a: v2f64) -> v2f64 { |
| 5030 | __lsx_vfrintrp_d(a) | 5030 | unsafe { __lsx_vfrintrp_d(a) } |
| 5031 | } | 5031 | } |
| 5032 | 5032 | ||
| 5033 | #[inline] | 5033 | #[inline] |
| 5034 | #[target_feature(enable = "lsx")] | 5034 | #[target_feature(enable = "lsx")] |
| 5035 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5035 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5036 | pub unsafe fn lsx_vfrintrm_s(a: v4f32) -> v4f32 { | 5036 | pub fn lsx_vfrintrm_s(a: v4f32) -> v4f32 { |
| 5037 | __lsx_vfrintrm_s(a) | 5037 | unsafe { __lsx_vfrintrm_s(a) } |
| 5038 | } | 5038 | } |
| 5039 | 5039 | ||
| 5040 | #[inline] | 5040 | #[inline] |
| 5041 | #[target_feature(enable = "lsx")] | 5041 | #[target_feature(enable = "lsx")] |
| 5042 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5042 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5043 | pub unsafe fn lsx_vfrintrm_d(a: v2f64) -> v2f64 { | 5043 | pub fn lsx_vfrintrm_d(a: v2f64) -> v2f64 { |
| 5044 | __lsx_vfrintrm_d(a) | 5044 | unsafe { __lsx_vfrintrm_d(a) } |
| 5045 | } | 5045 | } |
| 5046 | 5046 | ||
| 5047 | #[inline] | 5047 | #[inline] |
| ... | @@ -5087,687 +5087,687 @@ pub unsafe fn lsx_vstelm_d<const IMM_S8: i32, const IMM1: u32>(a: v2i64, mem_add | ... | @@ -5087,687 +5087,687 @@ pub unsafe fn lsx_vstelm_d<const IMM_S8: i32, const IMM1: u32>(a: v2i64, mem_add |
| 5087 | #[inline] | 5087 | #[inline] |
| 5088 | #[target_feature(enable = "lsx")] | 5088 | #[target_feature(enable = "lsx")] |
| 5089 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5089 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5090 | pub unsafe fn lsx_vaddwev_d_w(a: v4i32, b: v4i32) -> v2i64 { | 5090 | pub fn lsx_vaddwev_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 5091 | __lsx_vaddwev_d_w(a, b) | 5091 | unsafe { __lsx_vaddwev_d_w(a, b) } |
| 5092 | } | 5092 | } |
| 5093 | 5093 | ||
| 5094 | #[inline] | 5094 | #[inline] |
| 5095 | #[target_feature(enable = "lsx")] | 5095 | #[target_feature(enable = "lsx")] |
| 5096 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5096 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5097 | pub unsafe fn lsx_vaddwev_w_h(a: v8i16, b: v8i16) -> v4i32 { | 5097 | pub fn lsx_vaddwev_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 5098 | __lsx_vaddwev_w_h(a, b) | 5098 | unsafe { __lsx_vaddwev_w_h(a, b) } |
| 5099 | } | 5099 | } |
| 5100 | 5100 | ||
| 5101 | #[inline] | 5101 | #[inline] |
| 5102 | #[target_feature(enable = "lsx")] | 5102 | #[target_feature(enable = "lsx")] |
| 5103 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5103 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5104 | pub unsafe fn lsx_vaddwev_h_b(a: v16i8, b: v16i8) -> v8i16 { | 5104 | pub fn lsx_vaddwev_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 5105 | __lsx_vaddwev_h_b(a, b) | 5105 | unsafe { __lsx_vaddwev_h_b(a, b) } |
| 5106 | } | 5106 | } |
| 5107 | 5107 | ||
| 5108 | #[inline] | 5108 | #[inline] |
| 5109 | #[target_feature(enable = "lsx")] | 5109 | #[target_feature(enable = "lsx")] |
| 5110 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5110 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5111 | pub unsafe fn lsx_vaddwod_d_w(a: v4i32, b: v4i32) -> v2i64 { | 5111 | pub fn lsx_vaddwod_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 5112 | __lsx_vaddwod_d_w(a, b) | 5112 | unsafe { __lsx_vaddwod_d_w(a, b) } |
| 5113 | } | 5113 | } |
| 5114 | 5114 | ||
| 5115 | #[inline] | 5115 | #[inline] |
| 5116 | #[target_feature(enable = "lsx")] | 5116 | #[target_feature(enable = "lsx")] |
| 5117 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5117 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5118 | pub unsafe fn lsx_vaddwod_w_h(a: v8i16, b: v8i16) -> v4i32 { | 5118 | pub fn lsx_vaddwod_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 5119 | __lsx_vaddwod_w_h(a, b) | 5119 | unsafe { __lsx_vaddwod_w_h(a, b) } |
| 5120 | } | 5120 | } |
| 5121 | 5121 | ||
| 5122 | #[inline] | 5122 | #[inline] |
| 5123 | #[target_feature(enable = "lsx")] | 5123 | #[target_feature(enable = "lsx")] |
| 5124 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5124 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5125 | pub unsafe fn lsx_vaddwod_h_b(a: v16i8, b: v16i8) -> v8i16 { | 5125 | pub fn lsx_vaddwod_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 5126 | __lsx_vaddwod_h_b(a, b) | 5126 | unsafe { __lsx_vaddwod_h_b(a, b) } |
| 5127 | } | 5127 | } |
| 5128 | 5128 | ||
| 5129 | #[inline] | 5129 | #[inline] |
| 5130 | #[target_feature(enable = "lsx")] | 5130 | #[target_feature(enable = "lsx")] |
| 5131 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5131 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5132 | pub unsafe fn lsx_vaddwev_d_wu(a: v4u32, b: v4u32) -> v2i64 { | 5132 | pub fn lsx_vaddwev_d_wu(a: v4u32, b: v4u32) -> v2i64 { |
| 5133 | __lsx_vaddwev_d_wu(a, b) | 5133 | unsafe { __lsx_vaddwev_d_wu(a, b) } |
| 5134 | } | 5134 | } |
| 5135 | 5135 | ||
| 5136 | #[inline] | 5136 | #[inline] |
| 5137 | #[target_feature(enable = "lsx")] | 5137 | #[target_feature(enable = "lsx")] |
| 5138 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5138 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5139 | pub unsafe fn lsx_vaddwev_w_hu(a: v8u16, b: v8u16) -> v4i32 { | 5139 | pub fn lsx_vaddwev_w_hu(a: v8u16, b: v8u16) -> v4i32 { |
| 5140 | __lsx_vaddwev_w_hu(a, b) | 5140 | unsafe { __lsx_vaddwev_w_hu(a, b) } |
| 5141 | } | 5141 | } |
| 5142 | 5142 | ||
| 5143 | #[inline] | 5143 | #[inline] |
| 5144 | #[target_feature(enable = "lsx")] | 5144 | #[target_feature(enable = "lsx")] |
| 5145 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5145 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5146 | pub unsafe fn lsx_vaddwev_h_bu(a: v16u8, b: v16u8) -> v8i16 { | 5146 | pub fn lsx_vaddwev_h_bu(a: v16u8, b: v16u8) -> v8i16 { |
| 5147 | __lsx_vaddwev_h_bu(a, b) | 5147 | unsafe { __lsx_vaddwev_h_bu(a, b) } |
| 5148 | } | 5148 | } |
| 5149 | 5149 | ||
| 5150 | #[inline] | 5150 | #[inline] |
| 5151 | #[target_feature(enable = "lsx")] | 5151 | #[target_feature(enable = "lsx")] |
| 5152 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5152 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5153 | pub unsafe fn lsx_vaddwod_d_wu(a: v4u32, b: v4u32) -> v2i64 { | 5153 | pub fn lsx_vaddwod_d_wu(a: v4u32, b: v4u32) -> v2i64 { |
| 5154 | __lsx_vaddwod_d_wu(a, b) | 5154 | unsafe { __lsx_vaddwod_d_wu(a, b) } |
| 5155 | } | 5155 | } |
| 5156 | 5156 | ||
| 5157 | #[inline] | 5157 | #[inline] |
| 5158 | #[target_feature(enable = "lsx")] | 5158 | #[target_feature(enable = "lsx")] |
| 5159 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5159 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5160 | pub unsafe fn lsx_vaddwod_w_hu(a: v8u16, b: v8u16) -> v4i32 { | 5160 | pub fn lsx_vaddwod_w_hu(a: v8u16, b: v8u16) -> v4i32 { |
| 5161 | __lsx_vaddwod_w_hu(a, b) | 5161 | unsafe { __lsx_vaddwod_w_hu(a, b) } |
| 5162 | } | 5162 | } |
| 5163 | 5163 | ||
| 5164 | #[inline] | 5164 | #[inline] |
| 5165 | #[target_feature(enable = "lsx")] | 5165 | #[target_feature(enable = "lsx")] |
| 5166 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5166 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5167 | pub unsafe fn lsx_vaddwod_h_bu(a: v16u8, b: v16u8) -> v8i16 { | 5167 | pub fn lsx_vaddwod_h_bu(a: v16u8, b: v16u8) -> v8i16 { |
| 5168 | __lsx_vaddwod_h_bu(a, b) | 5168 | unsafe { __lsx_vaddwod_h_bu(a, b) } |
| 5169 | } | 5169 | } |
| 5170 | 5170 | ||
| 5171 | #[inline] | 5171 | #[inline] |
| 5172 | #[target_feature(enable = "lsx")] | 5172 | #[target_feature(enable = "lsx")] |
| 5173 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5173 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5174 | pub unsafe fn lsx_vaddwev_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { | 5174 | pub fn lsx_vaddwev_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { |
| 5175 | __lsx_vaddwev_d_wu_w(a, b) | 5175 | unsafe { __lsx_vaddwev_d_wu_w(a, b) } |
| 5176 | } | 5176 | } |
| 5177 | 5177 | ||
| 5178 | #[inline] | 5178 | #[inline] |
| 5179 | #[target_feature(enable = "lsx")] | 5179 | #[target_feature(enable = "lsx")] |
| 5180 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5180 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5181 | pub unsafe fn lsx_vaddwev_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { | 5181 | pub fn lsx_vaddwev_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { |
| 5182 | __lsx_vaddwev_w_hu_h(a, b) | 5182 | unsafe { __lsx_vaddwev_w_hu_h(a, b) } |
| 5183 | } | 5183 | } |
| 5184 | 5184 | ||
| 5185 | #[inline] | 5185 | #[inline] |
| 5186 | #[target_feature(enable = "lsx")] | 5186 | #[target_feature(enable = "lsx")] |
| 5187 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5187 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5188 | pub unsafe fn lsx_vaddwev_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { | 5188 | pub fn lsx_vaddwev_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { |
| 5189 | __lsx_vaddwev_h_bu_b(a, b) | 5189 | unsafe { __lsx_vaddwev_h_bu_b(a, b) } |
| 5190 | } | 5190 | } |
| 5191 | 5191 | ||
| 5192 | #[inline] | 5192 | #[inline] |
| 5193 | #[target_feature(enable = "lsx")] | 5193 | #[target_feature(enable = "lsx")] |
| 5194 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5194 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5195 | pub unsafe fn lsx_vaddwod_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { | 5195 | pub fn lsx_vaddwod_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { |
| 5196 | __lsx_vaddwod_d_wu_w(a, b) | 5196 | unsafe { __lsx_vaddwod_d_wu_w(a, b) } |
| 5197 | } | 5197 | } |
| 5198 | 5198 | ||
| 5199 | #[inline] | 5199 | #[inline] |
| 5200 | #[target_feature(enable = "lsx")] | 5200 | #[target_feature(enable = "lsx")] |
| 5201 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5201 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5202 | pub unsafe fn lsx_vaddwod_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { | 5202 | pub fn lsx_vaddwod_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { |
| 5203 | __lsx_vaddwod_w_hu_h(a, b) | 5203 | unsafe { __lsx_vaddwod_w_hu_h(a, b) } |
| 5204 | } | 5204 | } |
| 5205 | 5205 | ||
| 5206 | #[inline] | 5206 | #[inline] |
| 5207 | #[target_feature(enable = "lsx")] | 5207 | #[target_feature(enable = "lsx")] |
| 5208 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5208 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5209 | pub unsafe fn lsx_vaddwod_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { | 5209 | pub fn lsx_vaddwod_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { |
| 5210 | __lsx_vaddwod_h_bu_b(a, b) | 5210 | unsafe { __lsx_vaddwod_h_bu_b(a, b) } |
| 5211 | } | 5211 | } |
| 5212 | 5212 | ||
| 5213 | #[inline] | 5213 | #[inline] |
| 5214 | #[target_feature(enable = "lsx")] | 5214 | #[target_feature(enable = "lsx")] |
| 5215 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5215 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5216 | pub unsafe fn lsx_vsubwev_d_w(a: v4i32, b: v4i32) -> v2i64 { | 5216 | pub fn lsx_vsubwev_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 5217 | __lsx_vsubwev_d_w(a, b) | 5217 | unsafe { __lsx_vsubwev_d_w(a, b) } |
| 5218 | } | 5218 | } |
| 5219 | 5219 | ||
| 5220 | #[inline] | 5220 | #[inline] |
| 5221 | #[target_feature(enable = "lsx")] | 5221 | #[target_feature(enable = "lsx")] |
| 5222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5223 | pub unsafe fn lsx_vsubwev_w_h(a: v8i16, b: v8i16) -> v4i32 { | 5223 | pub fn lsx_vsubwev_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 5224 | __lsx_vsubwev_w_h(a, b) | 5224 | unsafe { __lsx_vsubwev_w_h(a, b) } |
| 5225 | } | 5225 | } |
| 5226 | 5226 | ||
| 5227 | #[inline] | 5227 | #[inline] |
| 5228 | #[target_feature(enable = "lsx")] | 5228 | #[target_feature(enable = "lsx")] |
| 5229 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5229 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5230 | pub unsafe fn lsx_vsubwev_h_b(a: v16i8, b: v16i8) -> v8i16 { | 5230 | pub fn lsx_vsubwev_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 5231 | __lsx_vsubwev_h_b(a, b) | 5231 | unsafe { __lsx_vsubwev_h_b(a, b) } |
| 5232 | } | 5232 | } |
| 5233 | 5233 | ||
| 5234 | #[inline] | 5234 | #[inline] |
| 5235 | #[target_feature(enable = "lsx")] | 5235 | #[target_feature(enable = "lsx")] |
| 5236 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5236 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5237 | pub unsafe fn lsx_vsubwod_d_w(a: v4i32, b: v4i32) -> v2i64 { | 5237 | pub fn lsx_vsubwod_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 5238 | __lsx_vsubwod_d_w(a, b) | 5238 | unsafe { __lsx_vsubwod_d_w(a, b) } |
| 5239 | } | 5239 | } |
| 5240 | 5240 | ||
| 5241 | #[inline] | 5241 | #[inline] |
| 5242 | #[target_feature(enable = "lsx")] | 5242 | #[target_feature(enable = "lsx")] |
| 5243 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5243 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5244 | pub unsafe fn lsx_vsubwod_w_h(a: v8i16, b: v8i16) -> v4i32 { | 5244 | pub fn lsx_vsubwod_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 5245 | __lsx_vsubwod_w_h(a, b) | 5245 | unsafe { __lsx_vsubwod_w_h(a, b) } |
| 5246 | } | 5246 | } |
| 5247 | 5247 | ||
| 5248 | #[inline] | 5248 | #[inline] |
| 5249 | #[target_feature(enable = "lsx")] | 5249 | #[target_feature(enable = "lsx")] |
| 5250 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5250 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5251 | pub unsafe fn lsx_vsubwod_h_b(a: v16i8, b: v16i8) -> v8i16 { | 5251 | pub fn lsx_vsubwod_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 5252 | __lsx_vsubwod_h_b(a, b) | 5252 | unsafe { __lsx_vsubwod_h_b(a, b) } |
| 5253 | } | 5253 | } |
| 5254 | 5254 | ||
| 5255 | #[inline] | 5255 | #[inline] |
| 5256 | #[target_feature(enable = "lsx")] | 5256 | #[target_feature(enable = "lsx")] |
| 5257 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5257 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5258 | pub unsafe fn lsx_vsubwev_d_wu(a: v4u32, b: v4u32) -> v2i64 { | 5258 | pub fn lsx_vsubwev_d_wu(a: v4u32, b: v4u32) -> v2i64 { |
| 5259 | __lsx_vsubwev_d_wu(a, b) | 5259 | unsafe { __lsx_vsubwev_d_wu(a, b) } |
| 5260 | } | 5260 | } |
| 5261 | 5261 | ||
| 5262 | #[inline] | 5262 | #[inline] |
| 5263 | #[target_feature(enable = "lsx")] | 5263 | #[target_feature(enable = "lsx")] |
| 5264 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5264 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5265 | pub unsafe fn lsx_vsubwev_w_hu(a: v8u16, b: v8u16) -> v4i32 { | 5265 | pub fn lsx_vsubwev_w_hu(a: v8u16, b: v8u16) -> v4i32 { |
| 5266 | __lsx_vsubwev_w_hu(a, b) | 5266 | unsafe { __lsx_vsubwev_w_hu(a, b) } |
| 5267 | } | 5267 | } |
| 5268 | 5268 | ||
| 5269 | #[inline] | 5269 | #[inline] |
| 5270 | #[target_feature(enable = "lsx")] | 5270 | #[target_feature(enable = "lsx")] |
| 5271 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5271 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5272 | pub unsafe fn lsx_vsubwev_h_bu(a: v16u8, b: v16u8) -> v8i16 { | 5272 | pub fn lsx_vsubwev_h_bu(a: v16u8, b: v16u8) -> v8i16 { |
| 5273 | __lsx_vsubwev_h_bu(a, b) | 5273 | unsafe { __lsx_vsubwev_h_bu(a, b) } |
| 5274 | } | 5274 | } |
| 5275 | 5275 | ||
| 5276 | #[inline] | 5276 | #[inline] |
| 5277 | #[target_feature(enable = "lsx")] | 5277 | #[target_feature(enable = "lsx")] |
| 5278 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5278 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5279 | pub unsafe fn lsx_vsubwod_d_wu(a: v4u32, b: v4u32) -> v2i64 { | 5279 | pub fn lsx_vsubwod_d_wu(a: v4u32, b: v4u32) -> v2i64 { |
| 5280 | __lsx_vsubwod_d_wu(a, b) | 5280 | unsafe { __lsx_vsubwod_d_wu(a, b) } |
| 5281 | } | 5281 | } |
| 5282 | 5282 | ||
| 5283 | #[inline] | 5283 | #[inline] |
| 5284 | #[target_feature(enable = "lsx")] | 5284 | #[target_feature(enable = "lsx")] |
| 5285 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5285 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5286 | pub unsafe fn lsx_vsubwod_w_hu(a: v8u16, b: v8u16) -> v4i32 { | 5286 | pub fn lsx_vsubwod_w_hu(a: v8u16, b: v8u16) -> v4i32 { |
| 5287 | __lsx_vsubwod_w_hu(a, b) | 5287 | unsafe { __lsx_vsubwod_w_hu(a, b) } |
| 5288 | } | 5288 | } |
| 5289 | 5289 | ||
| 5290 | #[inline] | 5290 | #[inline] |
| 5291 | #[target_feature(enable = "lsx")] | 5291 | #[target_feature(enable = "lsx")] |
| 5292 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5292 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5293 | pub unsafe fn lsx_vsubwod_h_bu(a: v16u8, b: v16u8) -> v8i16 { | 5293 | pub fn lsx_vsubwod_h_bu(a: v16u8, b: v16u8) -> v8i16 { |
| 5294 | __lsx_vsubwod_h_bu(a, b) | 5294 | unsafe { __lsx_vsubwod_h_bu(a, b) } |
| 5295 | } | 5295 | } |
| 5296 | 5296 | ||
| 5297 | #[inline] | 5297 | #[inline] |
| 5298 | #[target_feature(enable = "lsx")] | 5298 | #[target_feature(enable = "lsx")] |
| 5299 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5299 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5300 | pub unsafe fn lsx_vaddwev_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5300 | pub fn lsx_vaddwev_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5301 | __lsx_vaddwev_q_d(a, b) | 5301 | unsafe { __lsx_vaddwev_q_d(a, b) } |
| 5302 | } | 5302 | } |
| 5303 | 5303 | ||
| 5304 | #[inline] | 5304 | #[inline] |
| 5305 | #[target_feature(enable = "lsx")] | 5305 | #[target_feature(enable = "lsx")] |
| 5306 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5306 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5307 | pub unsafe fn lsx_vaddwod_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5307 | pub fn lsx_vaddwod_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5308 | __lsx_vaddwod_q_d(a, b) | 5308 | unsafe { __lsx_vaddwod_q_d(a, b) } |
| 5309 | } | 5309 | } |
| 5310 | 5310 | ||
| 5311 | #[inline] | 5311 | #[inline] |
| 5312 | #[target_feature(enable = "lsx")] | 5312 | #[target_feature(enable = "lsx")] |
| 5313 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5313 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5314 | pub unsafe fn lsx_vaddwev_q_du(a: v2u64, b: v2u64) -> v2i64 { | 5314 | pub fn lsx_vaddwev_q_du(a: v2u64, b: v2u64) -> v2i64 { |
| 5315 | __lsx_vaddwev_q_du(a, b) | 5315 | unsafe { __lsx_vaddwev_q_du(a, b) } |
| 5316 | } | 5316 | } |
| 5317 | 5317 | ||
| 5318 | #[inline] | 5318 | #[inline] |
| 5319 | #[target_feature(enable = "lsx")] | 5319 | #[target_feature(enable = "lsx")] |
| 5320 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5320 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5321 | pub unsafe fn lsx_vaddwod_q_du(a: v2u64, b: v2u64) -> v2i64 { | 5321 | pub fn lsx_vaddwod_q_du(a: v2u64, b: v2u64) -> v2i64 { |
| 5322 | __lsx_vaddwod_q_du(a, b) | 5322 | unsafe { __lsx_vaddwod_q_du(a, b) } |
| 5323 | } | 5323 | } |
| 5324 | 5324 | ||
| 5325 | #[inline] | 5325 | #[inline] |
| 5326 | #[target_feature(enable = "lsx")] | 5326 | #[target_feature(enable = "lsx")] |
| 5327 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5327 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5328 | pub unsafe fn lsx_vsubwev_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5328 | pub fn lsx_vsubwev_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5329 | __lsx_vsubwev_q_d(a, b) | 5329 | unsafe { __lsx_vsubwev_q_d(a, b) } |
| 5330 | } | 5330 | } |
| 5331 | 5331 | ||
| 5332 | #[inline] | 5332 | #[inline] |
| 5333 | #[target_feature(enable = "lsx")] | 5333 | #[target_feature(enable = "lsx")] |
| 5334 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5334 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5335 | pub unsafe fn lsx_vsubwod_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5335 | pub fn lsx_vsubwod_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5336 | __lsx_vsubwod_q_d(a, b) | 5336 | unsafe { __lsx_vsubwod_q_d(a, b) } |
| 5337 | } | 5337 | } |
| 5338 | 5338 | ||
| 5339 | #[inline] | 5339 | #[inline] |
| 5340 | #[target_feature(enable = "lsx")] | 5340 | #[target_feature(enable = "lsx")] |
| 5341 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5341 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5342 | pub unsafe fn lsx_vsubwev_q_du(a: v2u64, b: v2u64) -> v2i64 { | 5342 | pub fn lsx_vsubwev_q_du(a: v2u64, b: v2u64) -> v2i64 { |
| 5343 | __lsx_vsubwev_q_du(a, b) | 5343 | unsafe { __lsx_vsubwev_q_du(a, b) } |
| 5344 | } | 5344 | } |
| 5345 | 5345 | ||
| 5346 | #[inline] | 5346 | #[inline] |
| 5347 | #[target_feature(enable = "lsx")] | 5347 | #[target_feature(enable = "lsx")] |
| 5348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5349 | pub unsafe fn lsx_vsubwod_q_du(a: v2u64, b: v2u64) -> v2i64 { | 5349 | pub fn lsx_vsubwod_q_du(a: v2u64, b: v2u64) -> v2i64 { |
| 5350 | __lsx_vsubwod_q_du(a, b) | 5350 | unsafe { __lsx_vsubwod_q_du(a, b) } |
| 5351 | } | 5351 | } |
| 5352 | 5352 | ||
| 5353 | #[inline] | 5353 | #[inline] |
| 5354 | #[target_feature(enable = "lsx")] | 5354 | #[target_feature(enable = "lsx")] |
| 5355 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5355 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5356 | pub unsafe fn lsx_vaddwev_q_du_d(a: v2u64, b: v2i64) -> v2i64 { | 5356 | pub fn lsx_vaddwev_q_du_d(a: v2u64, b: v2i64) -> v2i64 { |
| 5357 | __lsx_vaddwev_q_du_d(a, b) | 5357 | unsafe { __lsx_vaddwev_q_du_d(a, b) } |
| 5358 | } | 5358 | } |
| 5359 | 5359 | ||
| 5360 | #[inline] | 5360 | #[inline] |
| 5361 | #[target_feature(enable = "lsx")] | 5361 | #[target_feature(enable = "lsx")] |
| 5362 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5362 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5363 | pub unsafe fn lsx_vaddwod_q_du_d(a: v2u64, b: v2i64) -> v2i64 { | 5363 | pub fn lsx_vaddwod_q_du_d(a: v2u64, b: v2i64) -> v2i64 { |
| 5364 | __lsx_vaddwod_q_du_d(a, b) | 5364 | unsafe { __lsx_vaddwod_q_du_d(a, b) } |
| 5365 | } | 5365 | } |
| 5366 | 5366 | ||
| 5367 | #[inline] | 5367 | #[inline] |
| 5368 | #[target_feature(enable = "lsx")] | 5368 | #[target_feature(enable = "lsx")] |
| 5369 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5369 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5370 | pub unsafe fn lsx_vmulwev_d_w(a: v4i32, b: v4i32) -> v2i64 { | 5370 | pub fn lsx_vmulwev_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 5371 | __lsx_vmulwev_d_w(a, b) | 5371 | unsafe { __lsx_vmulwev_d_w(a, b) } |
| 5372 | } | 5372 | } |
| 5373 | 5373 | ||
| 5374 | #[inline] | 5374 | #[inline] |
| 5375 | #[target_feature(enable = "lsx")] | 5375 | #[target_feature(enable = "lsx")] |
| 5376 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5376 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5377 | pub unsafe fn lsx_vmulwev_w_h(a: v8i16, b: v8i16) -> v4i32 { | 5377 | pub fn lsx_vmulwev_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 5378 | __lsx_vmulwev_w_h(a, b) | 5378 | unsafe { __lsx_vmulwev_w_h(a, b) } |
| 5379 | } | 5379 | } |
| 5380 | 5380 | ||
| 5381 | #[inline] | 5381 | #[inline] |
| 5382 | #[target_feature(enable = "lsx")] | 5382 | #[target_feature(enable = "lsx")] |
| 5383 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5383 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5384 | pub unsafe fn lsx_vmulwev_h_b(a: v16i8, b: v16i8) -> v8i16 { | 5384 | pub fn lsx_vmulwev_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 5385 | __lsx_vmulwev_h_b(a, b) | 5385 | unsafe { __lsx_vmulwev_h_b(a, b) } |
| 5386 | } | 5386 | } |
| 5387 | 5387 | ||
| 5388 | #[inline] | 5388 | #[inline] |
| 5389 | #[target_feature(enable = "lsx")] | 5389 | #[target_feature(enable = "lsx")] |
| 5390 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5390 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5391 | pub unsafe fn lsx_vmulwod_d_w(a: v4i32, b: v4i32) -> v2i64 { | 5391 | pub fn lsx_vmulwod_d_w(a: v4i32, b: v4i32) -> v2i64 { |
| 5392 | __lsx_vmulwod_d_w(a, b) | 5392 | unsafe { __lsx_vmulwod_d_w(a, b) } |
| 5393 | } | 5393 | } |
| 5394 | 5394 | ||
| 5395 | #[inline] | 5395 | #[inline] |
| 5396 | #[target_feature(enable = "lsx")] | 5396 | #[target_feature(enable = "lsx")] |
| 5397 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5397 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5398 | pub unsafe fn lsx_vmulwod_w_h(a: v8i16, b: v8i16) -> v4i32 { | 5398 | pub fn lsx_vmulwod_w_h(a: v8i16, b: v8i16) -> v4i32 { |
| 5399 | __lsx_vmulwod_w_h(a, b) | 5399 | unsafe { __lsx_vmulwod_w_h(a, b) } |
| 5400 | } | 5400 | } |
| 5401 | 5401 | ||
| 5402 | #[inline] | 5402 | #[inline] |
| 5403 | #[target_feature(enable = "lsx")] | 5403 | #[target_feature(enable = "lsx")] |
| 5404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5405 | pub unsafe fn lsx_vmulwod_h_b(a: v16i8, b: v16i8) -> v8i16 { | 5405 | pub fn lsx_vmulwod_h_b(a: v16i8, b: v16i8) -> v8i16 { |
| 5406 | __lsx_vmulwod_h_b(a, b) | 5406 | unsafe { __lsx_vmulwod_h_b(a, b) } |
| 5407 | } | 5407 | } |
| 5408 | 5408 | ||
| 5409 | #[inline] | 5409 | #[inline] |
| 5410 | #[target_feature(enable = "lsx")] | 5410 | #[target_feature(enable = "lsx")] |
| 5411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5412 | pub unsafe fn lsx_vmulwev_d_wu(a: v4u32, b: v4u32) -> v2i64 { | 5412 | pub fn lsx_vmulwev_d_wu(a: v4u32, b: v4u32) -> v2i64 { |
| 5413 | __lsx_vmulwev_d_wu(a, b) | 5413 | unsafe { __lsx_vmulwev_d_wu(a, b) } |
| 5414 | } | 5414 | } |
| 5415 | 5415 | ||
| 5416 | #[inline] | 5416 | #[inline] |
| 5417 | #[target_feature(enable = "lsx")] | 5417 | #[target_feature(enable = "lsx")] |
| 5418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5419 | pub unsafe fn lsx_vmulwev_w_hu(a: v8u16, b: v8u16) -> v4i32 { | 5419 | pub fn lsx_vmulwev_w_hu(a: v8u16, b: v8u16) -> v4i32 { |
| 5420 | __lsx_vmulwev_w_hu(a, b) | 5420 | unsafe { __lsx_vmulwev_w_hu(a, b) } |
| 5421 | } | 5421 | } |
| 5422 | 5422 | ||
| 5423 | #[inline] | 5423 | #[inline] |
| 5424 | #[target_feature(enable = "lsx")] | 5424 | #[target_feature(enable = "lsx")] |
| 5425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5426 | pub unsafe fn lsx_vmulwev_h_bu(a: v16u8, b: v16u8) -> v8i16 { | 5426 | pub fn lsx_vmulwev_h_bu(a: v16u8, b: v16u8) -> v8i16 { |
| 5427 | __lsx_vmulwev_h_bu(a, b) | 5427 | unsafe { __lsx_vmulwev_h_bu(a, b) } |
| 5428 | } | 5428 | } |
| 5429 | 5429 | ||
| 5430 | #[inline] | 5430 | #[inline] |
| 5431 | #[target_feature(enable = "lsx")] | 5431 | #[target_feature(enable = "lsx")] |
| 5432 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5432 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5433 | pub unsafe fn lsx_vmulwod_d_wu(a: v4u32, b: v4u32) -> v2i64 { | 5433 | pub fn lsx_vmulwod_d_wu(a: v4u32, b: v4u32) -> v2i64 { |
| 5434 | __lsx_vmulwod_d_wu(a, b) | 5434 | unsafe { __lsx_vmulwod_d_wu(a, b) } |
| 5435 | } | 5435 | } |
| 5436 | 5436 | ||
| 5437 | #[inline] | 5437 | #[inline] |
| 5438 | #[target_feature(enable = "lsx")] | 5438 | #[target_feature(enable = "lsx")] |
| 5439 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5439 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5440 | pub unsafe fn lsx_vmulwod_w_hu(a: v8u16, b: v8u16) -> v4i32 { | 5440 | pub fn lsx_vmulwod_w_hu(a: v8u16, b: v8u16) -> v4i32 { |
| 5441 | __lsx_vmulwod_w_hu(a, b) | 5441 | unsafe { __lsx_vmulwod_w_hu(a, b) } |
| 5442 | } | 5442 | } |
| 5443 | 5443 | ||
| 5444 | #[inline] | 5444 | #[inline] |
| 5445 | #[target_feature(enable = "lsx")] | 5445 | #[target_feature(enable = "lsx")] |
| 5446 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5446 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5447 | pub unsafe fn lsx_vmulwod_h_bu(a: v16u8, b: v16u8) -> v8i16 { | 5447 | pub fn lsx_vmulwod_h_bu(a: v16u8, b: v16u8) -> v8i16 { |
| 5448 | __lsx_vmulwod_h_bu(a, b) | 5448 | unsafe { __lsx_vmulwod_h_bu(a, b) } |
| 5449 | } | 5449 | } |
| 5450 | 5450 | ||
| 5451 | #[inline] | 5451 | #[inline] |
| 5452 | #[target_feature(enable = "lsx")] | 5452 | #[target_feature(enable = "lsx")] |
| 5453 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5453 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5454 | pub unsafe fn lsx_vmulwev_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { | 5454 | pub fn lsx_vmulwev_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { |
| 5455 | __lsx_vmulwev_d_wu_w(a, b) | 5455 | unsafe { __lsx_vmulwev_d_wu_w(a, b) } |
| 5456 | } | 5456 | } |
| 5457 | 5457 | ||
| 5458 | #[inline] | 5458 | #[inline] |
| 5459 | #[target_feature(enable = "lsx")] | 5459 | #[target_feature(enable = "lsx")] |
| 5460 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5460 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5461 | pub unsafe fn lsx_vmulwev_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { | 5461 | pub fn lsx_vmulwev_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { |
| 5462 | __lsx_vmulwev_w_hu_h(a, b) | 5462 | unsafe { __lsx_vmulwev_w_hu_h(a, b) } |
| 5463 | } | 5463 | } |
| 5464 | 5464 | ||
| 5465 | #[inline] | 5465 | #[inline] |
| 5466 | #[target_feature(enable = "lsx")] | 5466 | #[target_feature(enable = "lsx")] |
| 5467 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5467 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5468 | pub unsafe fn lsx_vmulwev_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { | 5468 | pub fn lsx_vmulwev_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { |
| 5469 | __lsx_vmulwev_h_bu_b(a, b) | 5469 | unsafe { __lsx_vmulwev_h_bu_b(a, b) } |
| 5470 | } | 5470 | } |
| 5471 | 5471 | ||
| 5472 | #[inline] | 5472 | #[inline] |
| 5473 | #[target_feature(enable = "lsx")] | 5473 | #[target_feature(enable = "lsx")] |
| 5474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5474 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5475 | pub unsafe fn lsx_vmulwod_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { | 5475 | pub fn lsx_vmulwod_d_wu_w(a: v4u32, b: v4i32) -> v2i64 { |
| 5476 | __lsx_vmulwod_d_wu_w(a, b) | 5476 | unsafe { __lsx_vmulwod_d_wu_w(a, b) } |
| 5477 | } | 5477 | } |
| 5478 | 5478 | ||
| 5479 | #[inline] | 5479 | #[inline] |
| 5480 | #[target_feature(enable = "lsx")] | 5480 | #[target_feature(enable = "lsx")] |
| 5481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5481 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5482 | pub unsafe fn lsx_vmulwod_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { | 5482 | pub fn lsx_vmulwod_w_hu_h(a: v8u16, b: v8i16) -> v4i32 { |
| 5483 | __lsx_vmulwod_w_hu_h(a, b) | 5483 | unsafe { __lsx_vmulwod_w_hu_h(a, b) } |
| 5484 | } | 5484 | } |
| 5485 | 5485 | ||
| 5486 | #[inline] | 5486 | #[inline] |
| 5487 | #[target_feature(enable = "lsx")] | 5487 | #[target_feature(enable = "lsx")] |
| 5488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5488 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5489 | pub unsafe fn lsx_vmulwod_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { | 5489 | pub fn lsx_vmulwod_h_bu_b(a: v16u8, b: v16i8) -> v8i16 { |
| 5490 | __lsx_vmulwod_h_bu_b(a, b) | 5490 | unsafe { __lsx_vmulwod_h_bu_b(a, b) } |
| 5491 | } | 5491 | } |
| 5492 | 5492 | ||
| 5493 | #[inline] | 5493 | #[inline] |
| 5494 | #[target_feature(enable = "lsx")] | 5494 | #[target_feature(enable = "lsx")] |
| 5495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5495 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5496 | pub unsafe fn lsx_vmulwev_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5496 | pub fn lsx_vmulwev_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5497 | __lsx_vmulwev_q_d(a, b) | 5497 | unsafe { __lsx_vmulwev_q_d(a, b) } |
| 5498 | } | 5498 | } |
| 5499 | 5499 | ||
| 5500 | #[inline] | 5500 | #[inline] |
| 5501 | #[target_feature(enable = "lsx")] | 5501 | #[target_feature(enable = "lsx")] |
| 5502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5502 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5503 | pub unsafe fn lsx_vmulwod_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5503 | pub fn lsx_vmulwod_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5504 | __lsx_vmulwod_q_d(a, b) | 5504 | unsafe { __lsx_vmulwod_q_d(a, b) } |
| 5505 | } | 5505 | } |
| 5506 | 5506 | ||
| 5507 | #[inline] | 5507 | #[inline] |
| 5508 | #[target_feature(enable = "lsx")] | 5508 | #[target_feature(enable = "lsx")] |
| 5509 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5509 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5510 | pub unsafe fn lsx_vmulwev_q_du(a: v2u64, b: v2u64) -> v2i64 { | 5510 | pub fn lsx_vmulwev_q_du(a: v2u64, b: v2u64) -> v2i64 { |
| 5511 | __lsx_vmulwev_q_du(a, b) | 5511 | unsafe { __lsx_vmulwev_q_du(a, b) } |
| 5512 | } | 5512 | } |
| 5513 | 5513 | ||
| 5514 | #[inline] | 5514 | #[inline] |
| 5515 | #[target_feature(enable = "lsx")] | 5515 | #[target_feature(enable = "lsx")] |
| 5516 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5516 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5517 | pub unsafe fn lsx_vmulwod_q_du(a: v2u64, b: v2u64) -> v2i64 { | 5517 | pub fn lsx_vmulwod_q_du(a: v2u64, b: v2u64) -> v2i64 { |
| 5518 | __lsx_vmulwod_q_du(a, b) | 5518 | unsafe { __lsx_vmulwod_q_du(a, b) } |
| 5519 | } | 5519 | } |
| 5520 | 5520 | ||
| 5521 | #[inline] | 5521 | #[inline] |
| 5522 | #[target_feature(enable = "lsx")] | 5522 | #[target_feature(enable = "lsx")] |
| 5523 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5523 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5524 | pub unsafe fn lsx_vmulwev_q_du_d(a: v2u64, b: v2i64) -> v2i64 { | 5524 | pub fn lsx_vmulwev_q_du_d(a: v2u64, b: v2i64) -> v2i64 { |
| 5525 | __lsx_vmulwev_q_du_d(a, b) | 5525 | unsafe { __lsx_vmulwev_q_du_d(a, b) } |
| 5526 | } | 5526 | } |
| 5527 | 5527 | ||
| 5528 | #[inline] | 5528 | #[inline] |
| 5529 | #[target_feature(enable = "lsx")] | 5529 | #[target_feature(enable = "lsx")] |
| 5530 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5530 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5531 | pub unsafe fn lsx_vmulwod_q_du_d(a: v2u64, b: v2i64) -> v2i64 { | 5531 | pub fn lsx_vmulwod_q_du_d(a: v2u64, b: v2i64) -> v2i64 { |
| 5532 | __lsx_vmulwod_q_du_d(a, b) | 5532 | unsafe { __lsx_vmulwod_q_du_d(a, b) } |
| 5533 | } | 5533 | } |
| 5534 | 5534 | ||
| 5535 | #[inline] | 5535 | #[inline] |
| 5536 | #[target_feature(enable = "lsx")] | 5536 | #[target_feature(enable = "lsx")] |
| 5537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5537 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5538 | pub unsafe fn lsx_vhaddw_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5538 | pub fn lsx_vhaddw_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5539 | __lsx_vhaddw_q_d(a, b) | 5539 | unsafe { __lsx_vhaddw_q_d(a, b) } |
| 5540 | } | 5540 | } |
| 5541 | 5541 | ||
| 5542 | #[inline] | 5542 | #[inline] |
| 5543 | #[target_feature(enable = "lsx")] | 5543 | #[target_feature(enable = "lsx")] |
| 5544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5544 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5545 | pub unsafe fn lsx_vhaddw_qu_du(a: v2u64, b: v2u64) -> v2u64 { | 5545 | pub fn lsx_vhaddw_qu_du(a: v2u64, b: v2u64) -> v2u64 { |
| 5546 | __lsx_vhaddw_qu_du(a, b) | 5546 | unsafe { __lsx_vhaddw_qu_du(a, b) } |
| 5547 | } | 5547 | } |
| 5548 | 5548 | ||
| 5549 | #[inline] | 5549 | #[inline] |
| 5550 | #[target_feature(enable = "lsx")] | 5550 | #[target_feature(enable = "lsx")] |
| 5551 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5551 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5552 | pub unsafe fn lsx_vhsubw_q_d(a: v2i64, b: v2i64) -> v2i64 { | 5552 | pub fn lsx_vhsubw_q_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5553 | __lsx_vhsubw_q_d(a, b) | 5553 | unsafe { __lsx_vhsubw_q_d(a, b) } |
| 5554 | } | 5554 | } |
| 5555 | 5555 | ||
| 5556 | #[inline] | 5556 | #[inline] |
| 5557 | #[target_feature(enable = "lsx")] | 5557 | #[target_feature(enable = "lsx")] |
| 5558 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5558 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5559 | pub unsafe fn lsx_vhsubw_qu_du(a: v2u64, b: v2u64) -> v2u64 { | 5559 | pub fn lsx_vhsubw_qu_du(a: v2u64, b: v2u64) -> v2u64 { |
| 5560 | __lsx_vhsubw_qu_du(a, b) | 5560 | unsafe { __lsx_vhsubw_qu_du(a, b) } |
| 5561 | } | 5561 | } |
| 5562 | 5562 | ||
| 5563 | #[inline] | 5563 | #[inline] |
| 5564 | #[target_feature(enable = "lsx")] | 5564 | #[target_feature(enable = "lsx")] |
| 5565 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5565 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5566 | pub unsafe fn lsx_vmaddwev_d_w(a: v2i64, b: v4i32, c: v4i32) -> v2i64 { | 5566 | pub fn lsx_vmaddwev_d_w(a: v2i64, b: v4i32, c: v4i32) -> v2i64 { |
| 5567 | __lsx_vmaddwev_d_w(a, b, c) | 5567 | unsafe { __lsx_vmaddwev_d_w(a, b, c) } |
| 5568 | } | 5568 | } |
| 5569 | 5569 | ||
| 5570 | #[inline] | 5570 | #[inline] |
| 5571 | #[target_feature(enable = "lsx")] | 5571 | #[target_feature(enable = "lsx")] |
| 5572 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5572 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5573 | pub unsafe fn lsx_vmaddwev_w_h(a: v4i32, b: v8i16, c: v8i16) -> v4i32 { | 5573 | pub fn lsx_vmaddwev_w_h(a: v4i32, b: v8i16, c: v8i16) -> v4i32 { |
| 5574 | __lsx_vmaddwev_w_h(a, b, c) | 5574 | unsafe { __lsx_vmaddwev_w_h(a, b, c) } |
| 5575 | } | 5575 | } |
| 5576 | 5576 | ||
| 5577 | #[inline] | 5577 | #[inline] |
| 5578 | #[target_feature(enable = "lsx")] | 5578 | #[target_feature(enable = "lsx")] |
| 5579 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5579 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5580 | pub unsafe fn lsx_vmaddwev_h_b(a: v8i16, b: v16i8, c: v16i8) -> v8i16 { | 5580 | pub fn lsx_vmaddwev_h_b(a: v8i16, b: v16i8, c: v16i8) -> v8i16 { |
| 5581 | __lsx_vmaddwev_h_b(a, b, c) | 5581 | unsafe { __lsx_vmaddwev_h_b(a, b, c) } |
| 5582 | } | 5582 | } |
| 5583 | 5583 | ||
| 5584 | #[inline] | 5584 | #[inline] |
| 5585 | #[target_feature(enable = "lsx")] | 5585 | #[target_feature(enable = "lsx")] |
| 5586 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5586 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5587 | pub unsafe fn lsx_vmaddwev_d_wu(a: v2u64, b: v4u32, c: v4u32) -> v2u64 { | 5587 | pub fn lsx_vmaddwev_d_wu(a: v2u64, b: v4u32, c: v4u32) -> v2u64 { |
| 5588 | __lsx_vmaddwev_d_wu(a, b, c) | 5588 | unsafe { __lsx_vmaddwev_d_wu(a, b, c) } |
| 5589 | } | 5589 | } |
| 5590 | 5590 | ||
| 5591 | #[inline] | 5591 | #[inline] |
| 5592 | #[target_feature(enable = "lsx")] | 5592 | #[target_feature(enable = "lsx")] |
| 5593 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5593 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5594 | pub unsafe fn lsx_vmaddwev_w_hu(a: v4u32, b: v8u16, c: v8u16) -> v4u32 { | 5594 | pub fn lsx_vmaddwev_w_hu(a: v4u32, b: v8u16, c: v8u16) -> v4u32 { |
| 5595 | __lsx_vmaddwev_w_hu(a, b, c) | 5595 | unsafe { __lsx_vmaddwev_w_hu(a, b, c) } |
| 5596 | } | 5596 | } |
| 5597 | 5597 | ||
| 5598 | #[inline] | 5598 | #[inline] |
| 5599 | #[target_feature(enable = "lsx")] | 5599 | #[target_feature(enable = "lsx")] |
| 5600 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5600 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5601 | pub unsafe fn lsx_vmaddwev_h_bu(a: v8u16, b: v16u8, c: v16u8) -> v8u16 { | 5601 | pub fn lsx_vmaddwev_h_bu(a: v8u16, b: v16u8, c: v16u8) -> v8u16 { |
| 5602 | __lsx_vmaddwev_h_bu(a, b, c) | 5602 | unsafe { __lsx_vmaddwev_h_bu(a, b, c) } |
| 5603 | } | 5603 | } |
| 5604 | 5604 | ||
| 5605 | #[inline] | 5605 | #[inline] |
| 5606 | #[target_feature(enable = "lsx")] | 5606 | #[target_feature(enable = "lsx")] |
| 5607 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5607 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5608 | pub unsafe fn lsx_vmaddwod_d_w(a: v2i64, b: v4i32, c: v4i32) -> v2i64 { | 5608 | pub fn lsx_vmaddwod_d_w(a: v2i64, b: v4i32, c: v4i32) -> v2i64 { |
| 5609 | __lsx_vmaddwod_d_w(a, b, c) | 5609 | unsafe { __lsx_vmaddwod_d_w(a, b, c) } |
| 5610 | } | 5610 | } |
| 5611 | 5611 | ||
| 5612 | #[inline] | 5612 | #[inline] |
| 5613 | #[target_feature(enable = "lsx")] | 5613 | #[target_feature(enable = "lsx")] |
| 5614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5614 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5615 | pub unsafe fn lsx_vmaddwod_w_h(a: v4i32, b: v8i16, c: v8i16) -> v4i32 { | 5615 | pub fn lsx_vmaddwod_w_h(a: v4i32, b: v8i16, c: v8i16) -> v4i32 { |
| 5616 | __lsx_vmaddwod_w_h(a, b, c) | 5616 | unsafe { __lsx_vmaddwod_w_h(a, b, c) } |
| 5617 | } | 5617 | } |
| 5618 | 5618 | ||
| 5619 | #[inline] | 5619 | #[inline] |
| 5620 | #[target_feature(enable = "lsx")] | 5620 | #[target_feature(enable = "lsx")] |
| 5621 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5621 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5622 | pub unsafe fn lsx_vmaddwod_h_b(a: v8i16, b: v16i8, c: v16i8) -> v8i16 { | 5622 | pub fn lsx_vmaddwod_h_b(a: v8i16, b: v16i8, c: v16i8) -> v8i16 { |
| 5623 | __lsx_vmaddwod_h_b(a, b, c) | 5623 | unsafe { __lsx_vmaddwod_h_b(a, b, c) } |
| 5624 | } | 5624 | } |
| 5625 | 5625 | ||
| 5626 | #[inline] | 5626 | #[inline] |
| 5627 | #[target_feature(enable = "lsx")] | 5627 | #[target_feature(enable = "lsx")] |
| 5628 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5628 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5629 | pub unsafe fn lsx_vmaddwod_d_wu(a: v2u64, b: v4u32, c: v4u32) -> v2u64 { | 5629 | pub fn lsx_vmaddwod_d_wu(a: v2u64, b: v4u32, c: v4u32) -> v2u64 { |
| 5630 | __lsx_vmaddwod_d_wu(a, b, c) | 5630 | unsafe { __lsx_vmaddwod_d_wu(a, b, c) } |
| 5631 | } | 5631 | } |
| 5632 | 5632 | ||
| 5633 | #[inline] | 5633 | #[inline] |
| 5634 | #[target_feature(enable = "lsx")] | 5634 | #[target_feature(enable = "lsx")] |
| 5635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5635 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5636 | pub unsafe fn lsx_vmaddwod_w_hu(a: v4u32, b: v8u16, c: v8u16) -> v4u32 { | 5636 | pub fn lsx_vmaddwod_w_hu(a: v4u32, b: v8u16, c: v8u16) -> v4u32 { |
| 5637 | __lsx_vmaddwod_w_hu(a, b, c) | 5637 | unsafe { __lsx_vmaddwod_w_hu(a, b, c) } |
| 5638 | } | 5638 | } |
| 5639 | 5639 | ||
| 5640 | #[inline] | 5640 | #[inline] |
| 5641 | #[target_feature(enable = "lsx")] | 5641 | #[target_feature(enable = "lsx")] |
| 5642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5642 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5643 | pub unsafe fn lsx_vmaddwod_h_bu(a: v8u16, b: v16u8, c: v16u8) -> v8u16 { | 5643 | pub fn lsx_vmaddwod_h_bu(a: v8u16, b: v16u8, c: v16u8) -> v8u16 { |
| 5644 | __lsx_vmaddwod_h_bu(a, b, c) | 5644 | unsafe { __lsx_vmaddwod_h_bu(a, b, c) } |
| 5645 | } | 5645 | } |
| 5646 | 5646 | ||
| 5647 | #[inline] | 5647 | #[inline] |
| 5648 | #[target_feature(enable = "lsx")] | 5648 | #[target_feature(enable = "lsx")] |
| 5649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5649 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5650 | pub unsafe fn lsx_vmaddwev_d_wu_w(a: v2i64, b: v4u32, c: v4i32) -> v2i64 { | 5650 | pub fn lsx_vmaddwev_d_wu_w(a: v2i64, b: v4u32, c: v4i32) -> v2i64 { |
| 5651 | __lsx_vmaddwev_d_wu_w(a, b, c) | 5651 | unsafe { __lsx_vmaddwev_d_wu_w(a, b, c) } |
| 5652 | } | 5652 | } |
| 5653 | 5653 | ||
| 5654 | #[inline] | 5654 | #[inline] |
| 5655 | #[target_feature(enable = "lsx")] | 5655 | #[target_feature(enable = "lsx")] |
| 5656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5656 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5657 | pub unsafe fn lsx_vmaddwev_w_hu_h(a: v4i32, b: v8u16, c: v8i16) -> v4i32 { | 5657 | pub fn lsx_vmaddwev_w_hu_h(a: v4i32, b: v8u16, c: v8i16) -> v4i32 { |
| 5658 | __lsx_vmaddwev_w_hu_h(a, b, c) | 5658 | unsafe { __lsx_vmaddwev_w_hu_h(a, b, c) } |
| 5659 | } | 5659 | } |
| 5660 | 5660 | ||
| 5661 | #[inline] | 5661 | #[inline] |
| 5662 | #[target_feature(enable = "lsx")] | 5662 | #[target_feature(enable = "lsx")] |
| 5663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5663 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5664 | pub unsafe fn lsx_vmaddwev_h_bu_b(a: v8i16, b: v16u8, c: v16i8) -> v8i16 { | 5664 | pub fn lsx_vmaddwev_h_bu_b(a: v8i16, b: v16u8, c: v16i8) -> v8i16 { |
| 5665 | __lsx_vmaddwev_h_bu_b(a, b, c) | 5665 | unsafe { __lsx_vmaddwev_h_bu_b(a, b, c) } |
| 5666 | } | 5666 | } |
| 5667 | 5667 | ||
| 5668 | #[inline] | 5668 | #[inline] |
| 5669 | #[target_feature(enable = "lsx")] | 5669 | #[target_feature(enable = "lsx")] |
| 5670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5670 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5671 | pub unsafe fn lsx_vmaddwod_d_wu_w(a: v2i64, b: v4u32, c: v4i32) -> v2i64 { | 5671 | pub fn lsx_vmaddwod_d_wu_w(a: v2i64, b: v4u32, c: v4i32) -> v2i64 { |
| 5672 | __lsx_vmaddwod_d_wu_w(a, b, c) | 5672 | unsafe { __lsx_vmaddwod_d_wu_w(a, b, c) } |
| 5673 | } | 5673 | } |
| 5674 | 5674 | ||
| 5675 | #[inline] | 5675 | #[inline] |
| 5676 | #[target_feature(enable = "lsx")] | 5676 | #[target_feature(enable = "lsx")] |
| 5677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5677 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5678 | pub unsafe fn lsx_vmaddwod_w_hu_h(a: v4i32, b: v8u16, c: v8i16) -> v4i32 { | 5678 | pub fn lsx_vmaddwod_w_hu_h(a: v4i32, b: v8u16, c: v8i16) -> v4i32 { |
| 5679 | __lsx_vmaddwod_w_hu_h(a, b, c) | 5679 | unsafe { __lsx_vmaddwod_w_hu_h(a, b, c) } |
| 5680 | } | 5680 | } |
| 5681 | 5681 | ||
| 5682 | #[inline] | 5682 | #[inline] |
| 5683 | #[target_feature(enable = "lsx")] | 5683 | #[target_feature(enable = "lsx")] |
| 5684 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5684 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5685 | pub unsafe fn lsx_vmaddwod_h_bu_b(a: v8i16, b: v16u8, c: v16i8) -> v8i16 { | 5685 | pub fn lsx_vmaddwod_h_bu_b(a: v8i16, b: v16u8, c: v16i8) -> v8i16 { |
| 5686 | __lsx_vmaddwod_h_bu_b(a, b, c) | 5686 | unsafe { __lsx_vmaddwod_h_bu_b(a, b, c) } |
| 5687 | } | 5687 | } |
| 5688 | 5688 | ||
| 5689 | #[inline] | 5689 | #[inline] |
| 5690 | #[target_feature(enable = "lsx")] | 5690 | #[target_feature(enable = "lsx")] |
| 5691 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5691 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5692 | pub unsafe fn lsx_vmaddwev_q_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { | 5692 | pub fn lsx_vmaddwev_q_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { |
| 5693 | __lsx_vmaddwev_q_d(a, b, c) | 5693 | unsafe { __lsx_vmaddwev_q_d(a, b, c) } |
| 5694 | } | 5694 | } |
| 5695 | 5695 | ||
| 5696 | #[inline] | 5696 | #[inline] |
| 5697 | #[target_feature(enable = "lsx")] | 5697 | #[target_feature(enable = "lsx")] |
| 5698 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5698 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5699 | pub unsafe fn lsx_vmaddwod_q_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { | 5699 | pub fn lsx_vmaddwod_q_d(a: v2i64, b: v2i64, c: v2i64) -> v2i64 { |
| 5700 | __lsx_vmaddwod_q_d(a, b, c) | 5700 | unsafe { __lsx_vmaddwod_q_d(a, b, c) } |
| 5701 | } | 5701 | } |
| 5702 | 5702 | ||
| 5703 | #[inline] | 5703 | #[inline] |
| 5704 | #[target_feature(enable = "lsx")] | 5704 | #[target_feature(enable = "lsx")] |
| 5705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5705 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5706 | pub unsafe fn lsx_vmaddwev_q_du(a: v2u64, b: v2u64, c: v2u64) -> v2u64 { | 5706 | pub fn lsx_vmaddwev_q_du(a: v2u64, b: v2u64, c: v2u64) -> v2u64 { |
| 5707 | __lsx_vmaddwev_q_du(a, b, c) | 5707 | unsafe { __lsx_vmaddwev_q_du(a, b, c) } |
| 5708 | } | 5708 | } |
| 5709 | 5709 | ||
| 5710 | #[inline] | 5710 | #[inline] |
| 5711 | #[target_feature(enable = "lsx")] | 5711 | #[target_feature(enable = "lsx")] |
| 5712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5712 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5713 | pub unsafe fn lsx_vmaddwod_q_du(a: v2u64, b: v2u64, c: v2u64) -> v2u64 { | 5713 | pub fn lsx_vmaddwod_q_du(a: v2u64, b: v2u64, c: v2u64) -> v2u64 { |
| 5714 | __lsx_vmaddwod_q_du(a, b, c) | 5714 | unsafe { __lsx_vmaddwod_q_du(a, b, c) } |
| 5715 | } | 5715 | } |
| 5716 | 5716 | ||
| 5717 | #[inline] | 5717 | #[inline] |
| 5718 | #[target_feature(enable = "lsx")] | 5718 | #[target_feature(enable = "lsx")] |
| 5719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5719 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5720 | pub unsafe fn lsx_vmaddwev_q_du_d(a: v2i64, b: v2u64, c: v2i64) -> v2i64 { | 5720 | pub fn lsx_vmaddwev_q_du_d(a: v2i64, b: v2u64, c: v2i64) -> v2i64 { |
| 5721 | __lsx_vmaddwev_q_du_d(a, b, c) | 5721 | unsafe { __lsx_vmaddwev_q_du_d(a, b, c) } |
| 5722 | } | 5722 | } |
| 5723 | 5723 | ||
| 5724 | #[inline] | 5724 | #[inline] |
| 5725 | #[target_feature(enable = "lsx")] | 5725 | #[target_feature(enable = "lsx")] |
| 5726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5726 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5727 | pub unsafe fn lsx_vmaddwod_q_du_d(a: v2i64, b: v2u64, c: v2i64) -> v2i64 { | 5727 | pub fn lsx_vmaddwod_q_du_d(a: v2i64, b: v2u64, c: v2i64) -> v2i64 { |
| 5728 | __lsx_vmaddwod_q_du_d(a, b, c) | 5728 | unsafe { __lsx_vmaddwod_q_du_d(a, b, c) } |
| 5729 | } | 5729 | } |
| 5730 | 5730 | ||
| 5731 | #[inline] | 5731 | #[inline] |
| 5732 | #[target_feature(enable = "lsx")] | 5732 | #[target_feature(enable = "lsx")] |
| 5733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5733 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5734 | pub unsafe fn lsx_vrotr_b(a: v16i8, b: v16i8) -> v16i8 { | 5734 | pub fn lsx_vrotr_b(a: v16i8, b: v16i8) -> v16i8 { |
| 5735 | __lsx_vrotr_b(a, b) | 5735 | unsafe { __lsx_vrotr_b(a, b) } |
| 5736 | } | 5736 | } |
| 5737 | 5737 | ||
| 5738 | #[inline] | 5738 | #[inline] |
| 5739 | #[target_feature(enable = "lsx")] | 5739 | #[target_feature(enable = "lsx")] |
| 5740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5740 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5741 | pub unsafe fn lsx_vrotr_h(a: v8i16, b: v8i16) -> v8i16 { | 5741 | pub fn lsx_vrotr_h(a: v8i16, b: v8i16) -> v8i16 { |
| 5742 | __lsx_vrotr_h(a, b) | 5742 | unsafe { __lsx_vrotr_h(a, b) } |
| 5743 | } | 5743 | } |
| 5744 | 5744 | ||
| 5745 | #[inline] | 5745 | #[inline] |
| 5746 | #[target_feature(enable = "lsx")] | 5746 | #[target_feature(enable = "lsx")] |
| 5747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5747 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5748 | pub unsafe fn lsx_vrotr_w(a: v4i32, b: v4i32) -> v4i32 { | 5748 | pub fn lsx_vrotr_w(a: v4i32, b: v4i32) -> v4i32 { |
| 5749 | __lsx_vrotr_w(a, b) | 5749 | unsafe { __lsx_vrotr_w(a, b) } |
| 5750 | } | 5750 | } |
| 5751 | 5751 | ||
| 5752 | #[inline] | 5752 | #[inline] |
| 5753 | #[target_feature(enable = "lsx")] | 5753 | #[target_feature(enable = "lsx")] |
| 5754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5754 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5755 | pub unsafe fn lsx_vrotr_d(a: v2i64, b: v2i64) -> v2i64 { | 5755 | pub fn lsx_vrotr_d(a: v2i64, b: v2i64) -> v2i64 { |
| 5756 | __lsx_vrotr_d(a, b) | 5756 | unsafe { __lsx_vrotr_d(a, b) } |
| 5757 | } | 5757 | } |
| 5758 | 5758 | ||
| 5759 | #[inline] | 5759 | #[inline] |
| 5760 | #[target_feature(enable = "lsx")] | 5760 | #[target_feature(enable = "lsx")] |
| 5761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5761 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5762 | pub unsafe fn lsx_vadd_q(a: v2i64, b: v2i64) -> v2i64 { | 5762 | pub fn lsx_vadd_q(a: v2i64, b: v2i64) -> v2i64 { |
| 5763 | __lsx_vadd_q(a, b) | 5763 | unsafe { __lsx_vadd_q(a, b) } |
| 5764 | } | 5764 | } |
| 5765 | 5765 | ||
| 5766 | #[inline] | 5766 | #[inline] |
| 5767 | #[target_feature(enable = "lsx")] | 5767 | #[target_feature(enable = "lsx")] |
| 5768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5768 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5769 | pub unsafe fn lsx_vsub_q(a: v2i64, b: v2i64) -> v2i64 { | 5769 | pub fn lsx_vsub_q(a: v2i64, b: v2i64) -> v2i64 { |
| 5770 | __lsx_vsub_q(a, b) | 5770 | unsafe { __lsx_vsub_q(a, b) } |
| 5771 | } | 5771 | } |
| 5772 | 5772 | ||
| 5773 | #[inline] | 5773 | #[inline] |
| ... | @@ -5809,555 +5809,555 @@ pub unsafe fn lsx_vldrepl_d<const IMM_S9: i32>(mem_addr: *const i8) -> v2i64 { | ... | @@ -5809,555 +5809,555 @@ pub unsafe fn lsx_vldrepl_d<const IMM_S9: i32>(mem_addr: *const i8) -> v2i64 { |
| 5809 | #[inline] | 5809 | #[inline] |
| 5810 | #[target_feature(enable = "lsx")] | 5810 | #[target_feature(enable = "lsx")] |
| 5811 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5811 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5812 | pub unsafe fn lsx_vmskgez_b(a: v16i8) -> v16i8 { | 5812 | pub fn lsx_vmskgez_b(a: v16i8) -> v16i8 { |
| 5813 | __lsx_vmskgez_b(a) | 5813 | unsafe { __lsx_vmskgez_b(a) } |
| 5814 | } | 5814 | } |
| 5815 | 5815 | ||
| 5816 | #[inline] | 5816 | #[inline] |
| 5817 | #[target_feature(enable = "lsx")] | 5817 | #[target_feature(enable = "lsx")] |
| 5818 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5818 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5819 | pub unsafe fn lsx_vmsknz_b(a: v16i8) -> v16i8 { | 5819 | pub fn lsx_vmsknz_b(a: v16i8) -> v16i8 { |
| 5820 | __lsx_vmsknz_b(a) | 5820 | unsafe { __lsx_vmsknz_b(a) } |
| 5821 | } | 5821 | } |
| 5822 | 5822 | ||
| 5823 | #[inline] | 5823 | #[inline] |
| 5824 | #[target_feature(enable = "lsx")] | 5824 | #[target_feature(enable = "lsx")] |
| 5825 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5825 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5826 | pub unsafe fn lsx_vexth_h_b(a: v16i8) -> v8i16 { | 5826 | pub fn lsx_vexth_h_b(a: v16i8) -> v8i16 { |
| 5827 | __lsx_vexth_h_b(a) | 5827 | unsafe { __lsx_vexth_h_b(a) } |
| 5828 | } | 5828 | } |
| 5829 | 5829 | ||
| 5830 | #[inline] | 5830 | #[inline] |
| 5831 | #[target_feature(enable = "lsx")] | 5831 | #[target_feature(enable = "lsx")] |
| 5832 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5832 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5833 | pub unsafe fn lsx_vexth_w_h(a: v8i16) -> v4i32 { | 5833 | pub fn lsx_vexth_w_h(a: v8i16) -> v4i32 { |
| 5834 | __lsx_vexth_w_h(a) | 5834 | unsafe { __lsx_vexth_w_h(a) } |
| 5835 | } | 5835 | } |
| 5836 | 5836 | ||
| 5837 | #[inline] | 5837 | #[inline] |
| 5838 | #[target_feature(enable = "lsx")] | 5838 | #[target_feature(enable = "lsx")] |
| 5839 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5839 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5840 | pub unsafe fn lsx_vexth_d_w(a: v4i32) -> v2i64 { | 5840 | pub fn lsx_vexth_d_w(a: v4i32) -> v2i64 { |
| 5841 | __lsx_vexth_d_w(a) | 5841 | unsafe { __lsx_vexth_d_w(a) } |
| 5842 | } | 5842 | } |
| 5843 | 5843 | ||
| 5844 | #[inline] | 5844 | #[inline] |
| 5845 | #[target_feature(enable = "lsx")] | 5845 | #[target_feature(enable = "lsx")] |
| 5846 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5846 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5847 | pub unsafe fn lsx_vexth_q_d(a: v2i64) -> v2i64 { | 5847 | pub fn lsx_vexth_q_d(a: v2i64) -> v2i64 { |
| 5848 | __lsx_vexth_q_d(a) | 5848 | unsafe { __lsx_vexth_q_d(a) } |
| 5849 | } | 5849 | } |
| 5850 | 5850 | ||
| 5851 | #[inline] | 5851 | #[inline] |
| 5852 | #[target_feature(enable = "lsx")] | 5852 | #[target_feature(enable = "lsx")] |
| 5853 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5853 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5854 | pub unsafe fn lsx_vexth_hu_bu(a: v16u8) -> v8u16 { | 5854 | pub fn lsx_vexth_hu_bu(a: v16u8) -> v8u16 { |
| 5855 | __lsx_vexth_hu_bu(a) | 5855 | unsafe { __lsx_vexth_hu_bu(a) } |
| 5856 | } | 5856 | } |
| 5857 | 5857 | ||
| 5858 | #[inline] | 5858 | #[inline] |
| 5859 | #[target_feature(enable = "lsx")] | 5859 | #[target_feature(enable = "lsx")] |
| 5860 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5860 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5861 | pub unsafe fn lsx_vexth_wu_hu(a: v8u16) -> v4u32 { | 5861 | pub fn lsx_vexth_wu_hu(a: v8u16) -> v4u32 { |
| 5862 | __lsx_vexth_wu_hu(a) | 5862 | unsafe { __lsx_vexth_wu_hu(a) } |
| 5863 | } | 5863 | } |
| 5864 | 5864 | ||
| 5865 | #[inline] | 5865 | #[inline] |
| 5866 | #[target_feature(enable = "lsx")] | 5866 | #[target_feature(enable = "lsx")] |
| 5867 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5867 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5868 | pub unsafe fn lsx_vexth_du_wu(a: v4u32) -> v2u64 { | 5868 | pub fn lsx_vexth_du_wu(a: v4u32) -> v2u64 { |
| 5869 | __lsx_vexth_du_wu(a) | 5869 | unsafe { __lsx_vexth_du_wu(a) } |
| 5870 | } | 5870 | } |
| 5871 | 5871 | ||
| 5872 | #[inline] | 5872 | #[inline] |
| 5873 | #[target_feature(enable = "lsx")] | 5873 | #[target_feature(enable = "lsx")] |
| 5874 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5874 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5875 | pub unsafe fn lsx_vexth_qu_du(a: v2u64) -> v2u64 { | 5875 | pub fn lsx_vexth_qu_du(a: v2u64) -> v2u64 { |
| 5876 | __lsx_vexth_qu_du(a) | 5876 | unsafe { __lsx_vexth_qu_du(a) } |
| 5877 | } | 5877 | } |
| 5878 | 5878 | ||
| 5879 | #[inline] | 5879 | #[inline] |
| 5880 | #[target_feature(enable = "lsx")] | 5880 | #[target_feature(enable = "lsx")] |
| 5881 | #[rustc_legacy_const_generics(1)] | 5881 | #[rustc_legacy_const_generics(1)] |
| 5882 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5882 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5883 | pub unsafe fn lsx_vrotri_b<const IMM3: u32>(a: v16i8) -> v16i8 { | 5883 | pub fn lsx_vrotri_b<const IMM3: u32>(a: v16i8) -> v16i8 { |
| 5884 | static_assert_uimm_bits!(IMM3, 3); | 5884 | static_assert_uimm_bits!(IMM3, 3); |
| 5885 | __lsx_vrotri_b(a, IMM3) | 5885 | unsafe { __lsx_vrotri_b(a, IMM3) } |
| 5886 | } | 5886 | } |
| 5887 | 5887 | ||
| 5888 | #[inline] | 5888 | #[inline] |
| 5889 | #[target_feature(enable = "lsx")] | 5889 | #[target_feature(enable = "lsx")] |
| 5890 | #[rustc_legacy_const_generics(1)] | 5890 | #[rustc_legacy_const_generics(1)] |
| 5891 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5891 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5892 | pub unsafe fn lsx_vrotri_h<const IMM4: u32>(a: v8i16) -> v8i16 { | 5892 | pub fn lsx_vrotri_h<const IMM4: u32>(a: v8i16) -> v8i16 { |
| 5893 | static_assert_uimm_bits!(IMM4, 4); | 5893 | static_assert_uimm_bits!(IMM4, 4); |
| 5894 | __lsx_vrotri_h(a, IMM4) | 5894 | unsafe { __lsx_vrotri_h(a, IMM4) } |
| 5895 | } | 5895 | } |
| 5896 | 5896 | ||
| 5897 | #[inline] | 5897 | #[inline] |
| 5898 | #[target_feature(enable = "lsx")] | 5898 | #[target_feature(enable = "lsx")] |
| 5899 | #[rustc_legacy_const_generics(1)] | 5899 | #[rustc_legacy_const_generics(1)] |
| 5900 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5900 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5901 | pub unsafe fn lsx_vrotri_w<const IMM5: u32>(a: v4i32) -> v4i32 { | 5901 | pub fn lsx_vrotri_w<const IMM5: u32>(a: v4i32) -> v4i32 { |
| 5902 | static_assert_uimm_bits!(IMM5, 5); | 5902 | static_assert_uimm_bits!(IMM5, 5); |
| 5903 | __lsx_vrotri_w(a, IMM5) | 5903 | unsafe { __lsx_vrotri_w(a, IMM5) } |
| 5904 | } | 5904 | } |
| 5905 | 5905 | ||
| 5906 | #[inline] | 5906 | #[inline] |
| 5907 | #[target_feature(enable = "lsx")] | 5907 | #[target_feature(enable = "lsx")] |
| 5908 | #[rustc_legacy_const_generics(1)] | 5908 | #[rustc_legacy_const_generics(1)] |
| 5909 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5909 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5910 | pub unsafe fn lsx_vrotri_d<const IMM6: u32>(a: v2i64) -> v2i64 { | 5910 | pub fn lsx_vrotri_d<const IMM6: u32>(a: v2i64) -> v2i64 { |
| 5911 | static_assert_uimm_bits!(IMM6, 6); | 5911 | static_assert_uimm_bits!(IMM6, 6); |
| 5912 | __lsx_vrotri_d(a, IMM6) | 5912 | unsafe { __lsx_vrotri_d(a, IMM6) } |
| 5913 | } | 5913 | } |
| 5914 | 5914 | ||
| 5915 | #[inline] | 5915 | #[inline] |
| 5916 | #[target_feature(enable = "lsx")] | 5916 | #[target_feature(enable = "lsx")] |
| 5917 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5917 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5918 | pub unsafe fn lsx_vextl_q_d(a: v2i64) -> v2i64 { | 5918 | pub fn lsx_vextl_q_d(a: v2i64) -> v2i64 { |
| 5919 | __lsx_vextl_q_d(a) | 5919 | unsafe { __lsx_vextl_q_d(a) } |
| 5920 | } | 5920 | } |
| 5921 | 5921 | ||
| 5922 | #[inline] | 5922 | #[inline] |
| 5923 | #[target_feature(enable = "lsx")] | 5923 | #[target_feature(enable = "lsx")] |
| 5924 | #[rustc_legacy_const_generics(2)] | 5924 | #[rustc_legacy_const_generics(2)] |
| 5925 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5925 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5926 | pub unsafe fn lsx_vsrlni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 5926 | pub fn lsx_vsrlni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 5927 | static_assert_uimm_bits!(IMM4, 4); | 5927 | static_assert_uimm_bits!(IMM4, 4); |
| 5928 | __lsx_vsrlni_b_h(a, b, IMM4) | 5928 | unsafe { __lsx_vsrlni_b_h(a, b, IMM4) } |
| 5929 | } | 5929 | } |
| 5930 | 5930 | ||
| 5931 | #[inline] | 5931 | #[inline] |
| 5932 | #[target_feature(enable = "lsx")] | 5932 | #[target_feature(enable = "lsx")] |
| 5933 | #[rustc_legacy_const_generics(2)] | 5933 | #[rustc_legacy_const_generics(2)] |
| 5934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5934 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5935 | pub unsafe fn lsx_vsrlni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 5935 | pub fn lsx_vsrlni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 5936 | static_assert_uimm_bits!(IMM5, 5); | 5936 | static_assert_uimm_bits!(IMM5, 5); |
| 5937 | __lsx_vsrlni_h_w(a, b, IMM5) | 5937 | unsafe { __lsx_vsrlni_h_w(a, b, IMM5) } |
| 5938 | } | 5938 | } |
| 5939 | 5939 | ||
| 5940 | #[inline] | 5940 | #[inline] |
| 5941 | #[target_feature(enable = "lsx")] | 5941 | #[target_feature(enable = "lsx")] |
| 5942 | #[rustc_legacy_const_generics(2)] | 5942 | #[rustc_legacy_const_generics(2)] |
| 5943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5943 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5944 | pub unsafe fn lsx_vsrlni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 5944 | pub fn lsx_vsrlni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 5945 | static_assert_uimm_bits!(IMM6, 6); | 5945 | static_assert_uimm_bits!(IMM6, 6); |
| 5946 | __lsx_vsrlni_w_d(a, b, IMM6) | 5946 | unsafe { __lsx_vsrlni_w_d(a, b, IMM6) } |
| 5947 | } | 5947 | } |
| 5948 | 5948 | ||
| 5949 | #[inline] | 5949 | #[inline] |
| 5950 | #[target_feature(enable = "lsx")] | 5950 | #[target_feature(enable = "lsx")] |
| 5951 | #[rustc_legacy_const_generics(2)] | 5951 | #[rustc_legacy_const_generics(2)] |
| 5952 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5952 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5953 | pub unsafe fn lsx_vsrlni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 5953 | pub fn lsx_vsrlni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 5954 | static_assert_uimm_bits!(IMM7, 7); | 5954 | static_assert_uimm_bits!(IMM7, 7); |
| 5955 | __lsx_vsrlni_d_q(a, b, IMM7) | 5955 | unsafe { __lsx_vsrlni_d_q(a, b, IMM7) } |
| 5956 | } | 5956 | } |
| 5957 | 5957 | ||
| 5958 | #[inline] | 5958 | #[inline] |
| 5959 | #[target_feature(enable = "lsx")] | 5959 | #[target_feature(enable = "lsx")] |
| 5960 | #[rustc_legacy_const_generics(2)] | 5960 | #[rustc_legacy_const_generics(2)] |
| 5961 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5961 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5962 | pub unsafe fn lsx_vsrlrni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 5962 | pub fn lsx_vsrlrni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 5963 | static_assert_uimm_bits!(IMM4, 4); | 5963 | static_assert_uimm_bits!(IMM4, 4); |
| 5964 | __lsx_vsrlrni_b_h(a, b, IMM4) | 5964 | unsafe { __lsx_vsrlrni_b_h(a, b, IMM4) } |
| 5965 | } | 5965 | } |
| 5966 | 5966 | ||
| 5967 | #[inline] | 5967 | #[inline] |
| 5968 | #[target_feature(enable = "lsx")] | 5968 | #[target_feature(enable = "lsx")] |
| 5969 | #[rustc_legacy_const_generics(2)] | 5969 | #[rustc_legacy_const_generics(2)] |
| 5970 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5970 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5971 | pub unsafe fn lsx_vsrlrni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 5971 | pub fn lsx_vsrlrni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 5972 | static_assert_uimm_bits!(IMM5, 5); | 5972 | static_assert_uimm_bits!(IMM5, 5); |
| 5973 | __lsx_vsrlrni_h_w(a, b, IMM5) | 5973 | unsafe { __lsx_vsrlrni_h_w(a, b, IMM5) } |
| 5974 | } | 5974 | } |
| 5975 | 5975 | ||
| 5976 | #[inline] | 5976 | #[inline] |
| 5977 | #[target_feature(enable = "lsx")] | 5977 | #[target_feature(enable = "lsx")] |
| 5978 | #[rustc_legacy_const_generics(2)] | 5978 | #[rustc_legacy_const_generics(2)] |
| 5979 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5979 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5980 | pub unsafe fn lsx_vsrlrni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 5980 | pub fn lsx_vsrlrni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 5981 | static_assert_uimm_bits!(IMM6, 6); | 5981 | static_assert_uimm_bits!(IMM6, 6); |
| 5982 | __lsx_vsrlrni_w_d(a, b, IMM6) | 5982 | unsafe { __lsx_vsrlrni_w_d(a, b, IMM6) } |
| 5983 | } | 5983 | } |
| 5984 | 5984 | ||
| 5985 | #[inline] | 5985 | #[inline] |
| 5986 | #[target_feature(enable = "lsx")] | 5986 | #[target_feature(enable = "lsx")] |
| 5987 | #[rustc_legacy_const_generics(2)] | 5987 | #[rustc_legacy_const_generics(2)] |
| 5988 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5988 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5989 | pub unsafe fn lsx_vsrlrni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 5989 | pub fn lsx_vsrlrni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 5990 | static_assert_uimm_bits!(IMM7, 7); | 5990 | static_assert_uimm_bits!(IMM7, 7); |
| 5991 | __lsx_vsrlrni_d_q(a, b, IMM7) | 5991 | unsafe { __lsx_vsrlrni_d_q(a, b, IMM7) } |
| 5992 | } | 5992 | } |
| 5993 | 5993 | ||
| 5994 | #[inline] | 5994 | #[inline] |
| 5995 | #[target_feature(enable = "lsx")] | 5995 | #[target_feature(enable = "lsx")] |
| 5996 | #[rustc_legacy_const_generics(2)] | 5996 | #[rustc_legacy_const_generics(2)] |
| 5997 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 5997 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 5998 | pub unsafe fn lsx_vssrlni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 5998 | pub fn lsx_vssrlni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 5999 | static_assert_uimm_bits!(IMM4, 4); | 5999 | static_assert_uimm_bits!(IMM4, 4); |
| 6000 | __lsx_vssrlni_b_h(a, b, IMM4) | 6000 | unsafe { __lsx_vssrlni_b_h(a, b, IMM4) } |
| 6001 | } | 6001 | } |
| 6002 | 6002 | ||
| 6003 | #[inline] | 6003 | #[inline] |
| 6004 | #[target_feature(enable = "lsx")] | 6004 | #[target_feature(enable = "lsx")] |
| 6005 | #[rustc_legacy_const_generics(2)] | 6005 | #[rustc_legacy_const_generics(2)] |
| 6006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6006 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6007 | pub unsafe fn lsx_vssrlni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 6007 | pub fn lsx_vssrlni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 6008 | static_assert_uimm_bits!(IMM5, 5); | 6008 | static_assert_uimm_bits!(IMM5, 5); |
| 6009 | __lsx_vssrlni_h_w(a, b, IMM5) | 6009 | unsafe { __lsx_vssrlni_h_w(a, b, IMM5) } |
| 6010 | } | 6010 | } |
| 6011 | 6011 | ||
| 6012 | #[inline] | 6012 | #[inline] |
| 6013 | #[target_feature(enable = "lsx")] | 6013 | #[target_feature(enable = "lsx")] |
| 6014 | #[rustc_legacy_const_generics(2)] | 6014 | #[rustc_legacy_const_generics(2)] |
| 6015 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6015 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6016 | pub unsafe fn lsx_vssrlni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 6016 | pub fn lsx_vssrlni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 6017 | static_assert_uimm_bits!(IMM6, 6); | 6017 | static_assert_uimm_bits!(IMM6, 6); |
| 6018 | __lsx_vssrlni_w_d(a, b, IMM6) | 6018 | unsafe { __lsx_vssrlni_w_d(a, b, IMM6) } |
| 6019 | } | 6019 | } |
| 6020 | 6020 | ||
| 6021 | #[inline] | 6021 | #[inline] |
| 6022 | #[target_feature(enable = "lsx")] | 6022 | #[target_feature(enable = "lsx")] |
| 6023 | #[rustc_legacy_const_generics(2)] | 6023 | #[rustc_legacy_const_generics(2)] |
| 6024 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6024 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6025 | pub unsafe fn lsx_vssrlni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 6025 | pub fn lsx_vssrlni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 6026 | static_assert_uimm_bits!(IMM7, 7); | 6026 | static_assert_uimm_bits!(IMM7, 7); |
| 6027 | __lsx_vssrlni_d_q(a, b, IMM7) | 6027 | unsafe { __lsx_vssrlni_d_q(a, b, IMM7) } |
| 6028 | } | 6028 | } |
| 6029 | 6029 | ||
| 6030 | #[inline] | 6030 | #[inline] |
| 6031 | #[target_feature(enable = "lsx")] | 6031 | #[target_feature(enable = "lsx")] |
| 6032 | #[rustc_legacy_const_generics(2)] | 6032 | #[rustc_legacy_const_generics(2)] |
| 6033 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6033 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6034 | pub unsafe fn lsx_vssrlni_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { | 6034 | pub fn lsx_vssrlni_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { |
| 6035 | static_assert_uimm_bits!(IMM4, 4); | 6035 | static_assert_uimm_bits!(IMM4, 4); |
| 6036 | __lsx_vssrlni_bu_h(a, b, IMM4) | 6036 | unsafe { __lsx_vssrlni_bu_h(a, b, IMM4) } |
| 6037 | } | 6037 | } |
| 6038 | 6038 | ||
| 6039 | #[inline] | 6039 | #[inline] |
| 6040 | #[target_feature(enable = "lsx")] | 6040 | #[target_feature(enable = "lsx")] |
| 6041 | #[rustc_legacy_const_generics(2)] | 6041 | #[rustc_legacy_const_generics(2)] |
| 6042 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6042 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6043 | pub unsafe fn lsx_vssrlni_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { | 6043 | pub fn lsx_vssrlni_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { |
| 6044 | static_assert_uimm_bits!(IMM5, 5); | 6044 | static_assert_uimm_bits!(IMM5, 5); |
| 6045 | __lsx_vssrlni_hu_w(a, b, IMM5) | 6045 | unsafe { __lsx_vssrlni_hu_w(a, b, IMM5) } |
| 6046 | } | 6046 | } |
| 6047 | 6047 | ||
| 6048 | #[inline] | 6048 | #[inline] |
| 6049 | #[target_feature(enable = "lsx")] | 6049 | #[target_feature(enable = "lsx")] |
| 6050 | #[rustc_legacy_const_generics(2)] | 6050 | #[rustc_legacy_const_generics(2)] |
| 6051 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6051 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6052 | pub unsafe fn lsx_vssrlni_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { | 6052 | pub fn lsx_vssrlni_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { |
| 6053 | static_assert_uimm_bits!(IMM6, 6); | 6053 | static_assert_uimm_bits!(IMM6, 6); |
| 6054 | __lsx_vssrlni_wu_d(a, b, IMM6) | 6054 | unsafe { __lsx_vssrlni_wu_d(a, b, IMM6) } |
| 6055 | } | 6055 | } |
| 6056 | 6056 | ||
| 6057 | #[inline] | 6057 | #[inline] |
| 6058 | #[target_feature(enable = "lsx")] | 6058 | #[target_feature(enable = "lsx")] |
| 6059 | #[rustc_legacy_const_generics(2)] | 6059 | #[rustc_legacy_const_generics(2)] |
| 6060 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6060 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6061 | pub unsafe fn lsx_vssrlni_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { | 6061 | pub fn lsx_vssrlni_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { |
| 6062 | static_assert_uimm_bits!(IMM7, 7); | 6062 | static_assert_uimm_bits!(IMM7, 7); |
| 6063 | __lsx_vssrlni_du_q(a, b, IMM7) | 6063 | unsafe { __lsx_vssrlni_du_q(a, b, IMM7) } |
| 6064 | } | 6064 | } |
| 6065 | 6065 | ||
| 6066 | #[inline] | 6066 | #[inline] |
| 6067 | #[target_feature(enable = "lsx")] | 6067 | #[target_feature(enable = "lsx")] |
| 6068 | #[rustc_legacy_const_generics(2)] | 6068 | #[rustc_legacy_const_generics(2)] |
| 6069 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6069 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6070 | pub unsafe fn lsx_vssrlrni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 6070 | pub fn lsx_vssrlrni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 6071 | static_assert_uimm_bits!(IMM4, 4); | 6071 | static_assert_uimm_bits!(IMM4, 4); |
| 6072 | __lsx_vssrlrni_b_h(a, b, IMM4) | 6072 | unsafe { __lsx_vssrlrni_b_h(a, b, IMM4) } |
| 6073 | } | 6073 | } |
| 6074 | 6074 | ||
| 6075 | #[inline] | 6075 | #[inline] |
| 6076 | #[target_feature(enable = "lsx")] | 6076 | #[target_feature(enable = "lsx")] |
| 6077 | #[rustc_legacy_const_generics(2)] | 6077 | #[rustc_legacy_const_generics(2)] |
| 6078 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6078 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6079 | pub unsafe fn lsx_vssrlrni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 6079 | pub fn lsx_vssrlrni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 6080 | static_assert_uimm_bits!(IMM5, 5); | 6080 | static_assert_uimm_bits!(IMM5, 5); |
| 6081 | __lsx_vssrlrni_h_w(a, b, IMM5) | 6081 | unsafe { __lsx_vssrlrni_h_w(a, b, IMM5) } |
| 6082 | } | 6082 | } |
| 6083 | 6083 | ||
| 6084 | #[inline] | 6084 | #[inline] |
| 6085 | #[target_feature(enable = "lsx")] | 6085 | #[target_feature(enable = "lsx")] |
| 6086 | #[rustc_legacy_const_generics(2)] | 6086 | #[rustc_legacy_const_generics(2)] |
| 6087 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6087 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6088 | pub unsafe fn lsx_vssrlrni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 6088 | pub fn lsx_vssrlrni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 6089 | static_assert_uimm_bits!(IMM6, 6); | 6089 | static_assert_uimm_bits!(IMM6, 6); |
| 6090 | __lsx_vssrlrni_w_d(a, b, IMM6) | 6090 | unsafe { __lsx_vssrlrni_w_d(a, b, IMM6) } |
| 6091 | } | 6091 | } |
| 6092 | 6092 | ||
| 6093 | #[inline] | 6093 | #[inline] |
| 6094 | #[target_feature(enable = "lsx")] | 6094 | #[target_feature(enable = "lsx")] |
| 6095 | #[rustc_legacy_const_generics(2)] | 6095 | #[rustc_legacy_const_generics(2)] |
| 6096 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6096 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6097 | pub unsafe fn lsx_vssrlrni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 6097 | pub fn lsx_vssrlrni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 6098 | static_assert_uimm_bits!(IMM7, 7); | 6098 | static_assert_uimm_bits!(IMM7, 7); |
| 6099 | __lsx_vssrlrni_d_q(a, b, IMM7) | 6099 | unsafe { __lsx_vssrlrni_d_q(a, b, IMM7) } |
| 6100 | } | 6100 | } |
| 6101 | 6101 | ||
| 6102 | #[inline] | 6102 | #[inline] |
| 6103 | #[target_feature(enable = "lsx")] | 6103 | #[target_feature(enable = "lsx")] |
| 6104 | #[rustc_legacy_const_generics(2)] | 6104 | #[rustc_legacy_const_generics(2)] |
| 6105 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6105 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6106 | pub unsafe fn lsx_vssrlrni_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { | 6106 | pub fn lsx_vssrlrni_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { |
| 6107 | static_assert_uimm_bits!(IMM4, 4); | 6107 | static_assert_uimm_bits!(IMM4, 4); |
| 6108 | __lsx_vssrlrni_bu_h(a, b, IMM4) | 6108 | unsafe { __lsx_vssrlrni_bu_h(a, b, IMM4) } |
| 6109 | } | 6109 | } |
| 6110 | 6110 | ||
| 6111 | #[inline] | 6111 | #[inline] |
| 6112 | #[target_feature(enable = "lsx")] | 6112 | #[target_feature(enable = "lsx")] |
| 6113 | #[rustc_legacy_const_generics(2)] | 6113 | #[rustc_legacy_const_generics(2)] |
| 6114 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6114 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6115 | pub unsafe fn lsx_vssrlrni_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { | 6115 | pub fn lsx_vssrlrni_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { |
| 6116 | static_assert_uimm_bits!(IMM5, 5); | 6116 | static_assert_uimm_bits!(IMM5, 5); |
| 6117 | __lsx_vssrlrni_hu_w(a, b, IMM5) | 6117 | unsafe { __lsx_vssrlrni_hu_w(a, b, IMM5) } |
| 6118 | } | 6118 | } |
| 6119 | 6119 | ||
| 6120 | #[inline] | 6120 | #[inline] |
| 6121 | #[target_feature(enable = "lsx")] | 6121 | #[target_feature(enable = "lsx")] |
| 6122 | #[rustc_legacy_const_generics(2)] | 6122 | #[rustc_legacy_const_generics(2)] |
| 6123 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6123 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6124 | pub unsafe fn lsx_vssrlrni_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { | 6124 | pub fn lsx_vssrlrni_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { |
| 6125 | static_assert_uimm_bits!(IMM6, 6); | 6125 | static_assert_uimm_bits!(IMM6, 6); |
| 6126 | __lsx_vssrlrni_wu_d(a, b, IMM6) | 6126 | unsafe { __lsx_vssrlrni_wu_d(a, b, IMM6) } |
| 6127 | } | 6127 | } |
| 6128 | 6128 | ||
| 6129 | #[inline] | 6129 | #[inline] |
| 6130 | #[target_feature(enable = "lsx")] | 6130 | #[target_feature(enable = "lsx")] |
| 6131 | #[rustc_legacy_const_generics(2)] | 6131 | #[rustc_legacy_const_generics(2)] |
| 6132 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6132 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6133 | pub unsafe fn lsx_vssrlrni_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { | 6133 | pub fn lsx_vssrlrni_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { |
| 6134 | static_assert_uimm_bits!(IMM7, 7); | 6134 | static_assert_uimm_bits!(IMM7, 7); |
| 6135 | __lsx_vssrlrni_du_q(a, b, IMM7) | 6135 | unsafe { __lsx_vssrlrni_du_q(a, b, IMM7) } |
| 6136 | } | 6136 | } |
| 6137 | 6137 | ||
| 6138 | #[inline] | 6138 | #[inline] |
| 6139 | #[target_feature(enable = "lsx")] | 6139 | #[target_feature(enable = "lsx")] |
| 6140 | #[rustc_legacy_const_generics(2)] | 6140 | #[rustc_legacy_const_generics(2)] |
| 6141 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6141 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6142 | pub unsafe fn lsx_vsrani_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 6142 | pub fn lsx_vsrani_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 6143 | static_assert_uimm_bits!(IMM4, 4); | 6143 | static_assert_uimm_bits!(IMM4, 4); |
| 6144 | __lsx_vsrani_b_h(a, b, IMM4) | 6144 | unsafe { __lsx_vsrani_b_h(a, b, IMM4) } |
| 6145 | } | 6145 | } |
| 6146 | 6146 | ||
| 6147 | #[inline] | 6147 | #[inline] |
| 6148 | #[target_feature(enable = "lsx")] | 6148 | #[target_feature(enable = "lsx")] |
| 6149 | #[rustc_legacy_const_generics(2)] | 6149 | #[rustc_legacy_const_generics(2)] |
| 6150 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6150 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6151 | pub unsafe fn lsx_vsrani_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 6151 | pub fn lsx_vsrani_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 6152 | static_assert_uimm_bits!(IMM5, 5); | 6152 | static_assert_uimm_bits!(IMM5, 5); |
| 6153 | __lsx_vsrani_h_w(a, b, IMM5) | 6153 | unsafe { __lsx_vsrani_h_w(a, b, IMM5) } |
| 6154 | } | 6154 | } |
| 6155 | 6155 | ||
| 6156 | #[inline] | 6156 | #[inline] |
| 6157 | #[target_feature(enable = "lsx")] | 6157 | #[target_feature(enable = "lsx")] |
| 6158 | #[rustc_legacy_const_generics(2)] | 6158 | #[rustc_legacy_const_generics(2)] |
| 6159 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6159 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6160 | pub unsafe fn lsx_vsrani_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 6160 | pub fn lsx_vsrani_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 6161 | static_assert_uimm_bits!(IMM6, 6); | 6161 | static_assert_uimm_bits!(IMM6, 6); |
| 6162 | __lsx_vsrani_w_d(a, b, IMM6) | 6162 | unsafe { __lsx_vsrani_w_d(a, b, IMM6) } |
| 6163 | } | 6163 | } |
| 6164 | 6164 | ||
| 6165 | #[inline] | 6165 | #[inline] |
| 6166 | #[target_feature(enable = "lsx")] | 6166 | #[target_feature(enable = "lsx")] |
| 6167 | #[rustc_legacy_const_generics(2)] | 6167 | #[rustc_legacy_const_generics(2)] |
| 6168 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6168 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6169 | pub unsafe fn lsx_vsrani_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 6169 | pub fn lsx_vsrani_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 6170 | static_assert_uimm_bits!(IMM7, 7); | 6170 | static_assert_uimm_bits!(IMM7, 7); |
| 6171 | __lsx_vsrani_d_q(a, b, IMM7) | 6171 | unsafe { __lsx_vsrani_d_q(a, b, IMM7) } |
| 6172 | } | 6172 | } |
| 6173 | 6173 | ||
| 6174 | #[inline] | 6174 | #[inline] |
| 6175 | #[target_feature(enable = "lsx")] | 6175 | #[target_feature(enable = "lsx")] |
| 6176 | #[rustc_legacy_const_generics(2)] | 6176 | #[rustc_legacy_const_generics(2)] |
| 6177 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6177 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6178 | pub unsafe fn lsx_vsrarni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 6178 | pub fn lsx_vsrarni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 6179 | static_assert_uimm_bits!(IMM4, 4); | 6179 | static_assert_uimm_bits!(IMM4, 4); |
| 6180 | __lsx_vsrarni_b_h(a, b, IMM4) | 6180 | unsafe { __lsx_vsrarni_b_h(a, b, IMM4) } |
| 6181 | } | 6181 | } |
| 6182 | 6182 | ||
| 6183 | #[inline] | 6183 | #[inline] |
| 6184 | #[target_feature(enable = "lsx")] | 6184 | #[target_feature(enable = "lsx")] |
| 6185 | #[rustc_legacy_const_generics(2)] | 6185 | #[rustc_legacy_const_generics(2)] |
| 6186 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6186 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6187 | pub unsafe fn lsx_vsrarni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 6187 | pub fn lsx_vsrarni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 6188 | static_assert_uimm_bits!(IMM5, 5); | 6188 | static_assert_uimm_bits!(IMM5, 5); |
| 6189 | __lsx_vsrarni_h_w(a, b, IMM5) | 6189 | unsafe { __lsx_vsrarni_h_w(a, b, IMM5) } |
| 6190 | } | 6190 | } |
| 6191 | 6191 | ||
| 6192 | #[inline] | 6192 | #[inline] |
| 6193 | #[target_feature(enable = "lsx")] | 6193 | #[target_feature(enable = "lsx")] |
| 6194 | #[rustc_legacy_const_generics(2)] | 6194 | #[rustc_legacy_const_generics(2)] |
| 6195 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6195 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6196 | pub unsafe fn lsx_vsrarni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 6196 | pub fn lsx_vsrarni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 6197 | static_assert_uimm_bits!(IMM6, 6); | 6197 | static_assert_uimm_bits!(IMM6, 6); |
| 6198 | __lsx_vsrarni_w_d(a, b, IMM6) | 6198 | unsafe { __lsx_vsrarni_w_d(a, b, IMM6) } |
| 6199 | } | 6199 | } |
| 6200 | 6200 | ||
| 6201 | #[inline] | 6201 | #[inline] |
| 6202 | #[target_feature(enable = "lsx")] | 6202 | #[target_feature(enable = "lsx")] |
| 6203 | #[rustc_legacy_const_generics(2)] | 6203 | #[rustc_legacy_const_generics(2)] |
| 6204 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6204 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6205 | pub unsafe fn lsx_vsrarni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 6205 | pub fn lsx_vsrarni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 6206 | static_assert_uimm_bits!(IMM7, 7); | 6206 | static_assert_uimm_bits!(IMM7, 7); |
| 6207 | __lsx_vsrarni_d_q(a, b, IMM7) | 6207 | unsafe { __lsx_vsrarni_d_q(a, b, IMM7) } |
| 6208 | } | 6208 | } |
| 6209 | 6209 | ||
| 6210 | #[inline] | 6210 | #[inline] |
| 6211 | #[target_feature(enable = "lsx")] | 6211 | #[target_feature(enable = "lsx")] |
| 6212 | #[rustc_legacy_const_generics(2)] | 6212 | #[rustc_legacy_const_generics(2)] |
| 6213 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6213 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6214 | pub unsafe fn lsx_vssrani_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 6214 | pub fn lsx_vssrani_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 6215 | static_assert_uimm_bits!(IMM4, 4); | 6215 | static_assert_uimm_bits!(IMM4, 4); |
| 6216 | __lsx_vssrani_b_h(a, b, IMM4) | 6216 | unsafe { __lsx_vssrani_b_h(a, b, IMM4) } |
| 6217 | } | 6217 | } |
| 6218 | 6218 | ||
| 6219 | #[inline] | 6219 | #[inline] |
| 6220 | #[target_feature(enable = "lsx")] | 6220 | #[target_feature(enable = "lsx")] |
| 6221 | #[rustc_legacy_const_generics(2)] | 6221 | #[rustc_legacy_const_generics(2)] |
| 6222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6222 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6223 | pub unsafe fn lsx_vssrani_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 6223 | pub fn lsx_vssrani_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 6224 | static_assert_uimm_bits!(IMM5, 5); | 6224 | static_assert_uimm_bits!(IMM5, 5); |
| 6225 | __lsx_vssrani_h_w(a, b, IMM5) | 6225 | unsafe { __lsx_vssrani_h_w(a, b, IMM5) } |
| 6226 | } | 6226 | } |
| 6227 | 6227 | ||
| 6228 | #[inline] | 6228 | #[inline] |
| 6229 | #[target_feature(enable = "lsx")] | 6229 | #[target_feature(enable = "lsx")] |
| 6230 | #[rustc_legacy_const_generics(2)] | 6230 | #[rustc_legacy_const_generics(2)] |
| 6231 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6231 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6232 | pub unsafe fn lsx_vssrani_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 6232 | pub fn lsx_vssrani_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 6233 | static_assert_uimm_bits!(IMM6, 6); | 6233 | static_assert_uimm_bits!(IMM6, 6); |
| 6234 | __lsx_vssrani_w_d(a, b, IMM6) | 6234 | unsafe { __lsx_vssrani_w_d(a, b, IMM6) } |
| 6235 | } | 6235 | } |
| 6236 | 6236 | ||
| 6237 | #[inline] | 6237 | #[inline] |
| 6238 | #[target_feature(enable = "lsx")] | 6238 | #[target_feature(enable = "lsx")] |
| 6239 | #[rustc_legacy_const_generics(2)] | 6239 | #[rustc_legacy_const_generics(2)] |
| 6240 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6240 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6241 | pub unsafe fn lsx_vssrani_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 6241 | pub fn lsx_vssrani_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 6242 | static_assert_uimm_bits!(IMM7, 7); | 6242 | static_assert_uimm_bits!(IMM7, 7); |
| 6243 | __lsx_vssrani_d_q(a, b, IMM7) | 6243 | unsafe { __lsx_vssrani_d_q(a, b, IMM7) } |
| 6244 | } | 6244 | } |
| 6245 | 6245 | ||
| 6246 | #[inline] | 6246 | #[inline] |
| 6247 | #[target_feature(enable = "lsx")] | 6247 | #[target_feature(enable = "lsx")] |
| 6248 | #[rustc_legacy_const_generics(2)] | 6248 | #[rustc_legacy_const_generics(2)] |
| 6249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6249 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6250 | pub unsafe fn lsx_vssrani_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { | 6250 | pub fn lsx_vssrani_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { |
| 6251 | static_assert_uimm_bits!(IMM4, 4); | 6251 | static_assert_uimm_bits!(IMM4, 4); |
| 6252 | __lsx_vssrani_bu_h(a, b, IMM4) | 6252 | unsafe { __lsx_vssrani_bu_h(a, b, IMM4) } |
| 6253 | } | 6253 | } |
| 6254 | 6254 | ||
| 6255 | #[inline] | 6255 | #[inline] |
| 6256 | #[target_feature(enable = "lsx")] | 6256 | #[target_feature(enable = "lsx")] |
| 6257 | #[rustc_legacy_const_generics(2)] | 6257 | #[rustc_legacy_const_generics(2)] |
| 6258 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6258 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6259 | pub unsafe fn lsx_vssrani_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { | 6259 | pub fn lsx_vssrani_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { |
| 6260 | static_assert_uimm_bits!(IMM5, 5); | 6260 | static_assert_uimm_bits!(IMM5, 5); |
| 6261 | __lsx_vssrani_hu_w(a, b, IMM5) | 6261 | unsafe { __lsx_vssrani_hu_w(a, b, IMM5) } |
| 6262 | } | 6262 | } |
| 6263 | 6263 | ||
| 6264 | #[inline] | 6264 | #[inline] |
| 6265 | #[target_feature(enable = "lsx")] | 6265 | #[target_feature(enable = "lsx")] |
| 6266 | #[rustc_legacy_const_generics(2)] | 6266 | #[rustc_legacy_const_generics(2)] |
| 6267 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6267 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6268 | pub unsafe fn lsx_vssrani_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { | 6268 | pub fn lsx_vssrani_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { |
| 6269 | static_assert_uimm_bits!(IMM6, 6); | 6269 | static_assert_uimm_bits!(IMM6, 6); |
| 6270 | __lsx_vssrani_wu_d(a, b, IMM6) | 6270 | unsafe { __lsx_vssrani_wu_d(a, b, IMM6) } |
| 6271 | } | 6271 | } |
| 6272 | 6272 | ||
| 6273 | #[inline] | 6273 | #[inline] |
| 6274 | #[target_feature(enable = "lsx")] | 6274 | #[target_feature(enable = "lsx")] |
| 6275 | #[rustc_legacy_const_generics(2)] | 6275 | #[rustc_legacy_const_generics(2)] |
| 6276 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6276 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6277 | pub unsafe fn lsx_vssrani_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { | 6277 | pub fn lsx_vssrani_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { |
| 6278 | static_assert_uimm_bits!(IMM7, 7); | 6278 | static_assert_uimm_bits!(IMM7, 7); |
| 6279 | __lsx_vssrani_du_q(a, b, IMM7) | 6279 | unsafe { __lsx_vssrani_du_q(a, b, IMM7) } |
| 6280 | } | 6280 | } |
| 6281 | 6281 | ||
| 6282 | #[inline] | 6282 | #[inline] |
| 6283 | #[target_feature(enable = "lsx")] | 6283 | #[target_feature(enable = "lsx")] |
| 6284 | #[rustc_legacy_const_generics(2)] | 6284 | #[rustc_legacy_const_generics(2)] |
| 6285 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6285 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6286 | pub unsafe fn lsx_vssrarni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { | 6286 | pub fn lsx_vssrarni_b_h<const IMM4: u32>(a: v16i8, b: v16i8) -> v16i8 { |
| 6287 | static_assert_uimm_bits!(IMM4, 4); | 6287 | static_assert_uimm_bits!(IMM4, 4); |
| 6288 | __lsx_vssrarni_b_h(a, b, IMM4) | 6288 | unsafe { __lsx_vssrarni_b_h(a, b, IMM4) } |
| 6289 | } | 6289 | } |
| 6290 | 6290 | ||
| 6291 | #[inline] | 6291 | #[inline] |
| 6292 | #[target_feature(enable = "lsx")] | 6292 | #[target_feature(enable = "lsx")] |
| 6293 | #[rustc_legacy_const_generics(2)] | 6293 | #[rustc_legacy_const_generics(2)] |
| 6294 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6294 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6295 | pub unsafe fn lsx_vssrarni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { | 6295 | pub fn lsx_vssrarni_h_w<const IMM5: u32>(a: v8i16, b: v8i16) -> v8i16 { |
| 6296 | static_assert_uimm_bits!(IMM5, 5); | 6296 | static_assert_uimm_bits!(IMM5, 5); |
| 6297 | __lsx_vssrarni_h_w(a, b, IMM5) | 6297 | unsafe { __lsx_vssrarni_h_w(a, b, IMM5) } |
| 6298 | } | 6298 | } |
| 6299 | 6299 | ||
| 6300 | #[inline] | 6300 | #[inline] |
| 6301 | #[target_feature(enable = "lsx")] | 6301 | #[target_feature(enable = "lsx")] |
| 6302 | #[rustc_legacy_const_generics(2)] | 6302 | #[rustc_legacy_const_generics(2)] |
| 6303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6304 | pub unsafe fn lsx_vssrarni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { | 6304 | pub fn lsx_vssrarni_w_d<const IMM6: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 6305 | static_assert_uimm_bits!(IMM6, 6); | 6305 | static_assert_uimm_bits!(IMM6, 6); |
| 6306 | __lsx_vssrarni_w_d(a, b, IMM6) | 6306 | unsafe { __lsx_vssrarni_w_d(a, b, IMM6) } |
| 6307 | } | 6307 | } |
| 6308 | 6308 | ||
| 6309 | #[inline] | 6309 | #[inline] |
| 6310 | #[target_feature(enable = "lsx")] | 6310 | #[target_feature(enable = "lsx")] |
| 6311 | #[rustc_legacy_const_generics(2)] | 6311 | #[rustc_legacy_const_generics(2)] |
| 6312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6312 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6313 | pub unsafe fn lsx_vssrarni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { | 6313 | pub fn lsx_vssrarni_d_q<const IMM7: u32>(a: v2i64, b: v2i64) -> v2i64 { |
| 6314 | static_assert_uimm_bits!(IMM7, 7); | 6314 | static_assert_uimm_bits!(IMM7, 7); |
| 6315 | __lsx_vssrarni_d_q(a, b, IMM7) | 6315 | unsafe { __lsx_vssrarni_d_q(a, b, IMM7) } |
| 6316 | } | 6316 | } |
| 6317 | 6317 | ||
| 6318 | #[inline] | 6318 | #[inline] |
| 6319 | #[target_feature(enable = "lsx")] | 6319 | #[target_feature(enable = "lsx")] |
| 6320 | #[rustc_legacy_const_generics(2)] | 6320 | #[rustc_legacy_const_generics(2)] |
| 6321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6321 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6322 | pub unsafe fn lsx_vssrarni_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { | 6322 | pub fn lsx_vssrarni_bu_h<const IMM4: u32>(a: v16u8, b: v16i8) -> v16u8 { |
| 6323 | static_assert_uimm_bits!(IMM4, 4); | 6323 | static_assert_uimm_bits!(IMM4, 4); |
| 6324 | __lsx_vssrarni_bu_h(a, b, IMM4) | 6324 | unsafe { __lsx_vssrarni_bu_h(a, b, IMM4) } |
| 6325 | } | 6325 | } |
| 6326 | 6326 | ||
| 6327 | #[inline] | 6327 | #[inline] |
| 6328 | #[target_feature(enable = "lsx")] | 6328 | #[target_feature(enable = "lsx")] |
| 6329 | #[rustc_legacy_const_generics(2)] | 6329 | #[rustc_legacy_const_generics(2)] |
| 6330 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6330 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6331 | pub unsafe fn lsx_vssrarni_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { | 6331 | pub fn lsx_vssrarni_hu_w<const IMM5: u32>(a: v8u16, b: v8i16) -> v8u16 { |
| 6332 | static_assert_uimm_bits!(IMM5, 5); | 6332 | static_assert_uimm_bits!(IMM5, 5); |
| 6333 | __lsx_vssrarni_hu_w(a, b, IMM5) | 6333 | unsafe { __lsx_vssrarni_hu_w(a, b, IMM5) } |
| 6334 | } | 6334 | } |
| 6335 | 6335 | ||
| 6336 | #[inline] | 6336 | #[inline] |
| 6337 | #[target_feature(enable = "lsx")] | 6337 | #[target_feature(enable = "lsx")] |
| 6338 | #[rustc_legacy_const_generics(2)] | 6338 | #[rustc_legacy_const_generics(2)] |
| 6339 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6339 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6340 | pub unsafe fn lsx_vssrarni_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { | 6340 | pub fn lsx_vssrarni_wu_d<const IMM6: u32>(a: v4u32, b: v4i32) -> v4u32 { |
| 6341 | static_assert_uimm_bits!(IMM6, 6); | 6341 | static_assert_uimm_bits!(IMM6, 6); |
| 6342 | __lsx_vssrarni_wu_d(a, b, IMM6) | 6342 | unsafe { __lsx_vssrarni_wu_d(a, b, IMM6) } |
| 6343 | } | 6343 | } |
| 6344 | 6344 | ||
| 6345 | #[inline] | 6345 | #[inline] |
| 6346 | #[target_feature(enable = "lsx")] | 6346 | #[target_feature(enable = "lsx")] |
| 6347 | #[rustc_legacy_const_generics(2)] | 6347 | #[rustc_legacy_const_generics(2)] |
| 6348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6348 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6349 | pub unsafe fn lsx_vssrarni_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { | 6349 | pub fn lsx_vssrarni_du_q<const IMM7: u32>(a: v2u64, b: v2i64) -> v2u64 { |
| 6350 | static_assert_uimm_bits!(IMM7, 7); | 6350 | static_assert_uimm_bits!(IMM7, 7); |
| 6351 | __lsx_vssrarni_du_q(a, b, IMM7) | 6351 | unsafe { __lsx_vssrarni_du_q(a, b, IMM7) } |
| 6352 | } | 6352 | } |
| 6353 | 6353 | ||
| 6354 | #[inline] | 6354 | #[inline] |
| 6355 | #[target_feature(enable = "lsx")] | 6355 | #[target_feature(enable = "lsx")] |
| 6356 | #[rustc_legacy_const_generics(2)] | 6356 | #[rustc_legacy_const_generics(2)] |
| 6357 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6357 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6358 | pub unsafe fn lsx_vpermi_w<const IMM8: u32>(a: v4i32, b: v4i32) -> v4i32 { | 6358 | pub fn lsx_vpermi_w<const IMM8: u32>(a: v4i32, b: v4i32) -> v4i32 { |
| 6359 | static_assert_uimm_bits!(IMM8, 8); | 6359 | static_assert_uimm_bits!(IMM8, 8); |
| 6360 | __lsx_vpermi_w(a, b, IMM8) | 6360 | unsafe { __lsx_vpermi_w(a, b, IMM8) } |
| 6361 | } | 6361 | } |
| 6362 | 6362 | ||
| 6363 | #[inline] | 6363 | #[inline] |
| ... | @@ -6381,66 +6381,66 @@ pub unsafe fn lsx_vst<const IMM_S12: i32>(a: v16i8, mem_addr: *mut i8) { | ... | @@ -6381,66 +6381,66 @@ pub unsafe fn lsx_vst<const IMM_S12: i32>(a: v16i8, mem_addr: *mut i8) { |
| 6381 | #[inline] | 6381 | #[inline] |
| 6382 | #[target_feature(enable = "lsx")] | 6382 | #[target_feature(enable = "lsx")] |
| 6383 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6383 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6384 | pub unsafe fn lsx_vssrlrn_b_h(a: v8i16, b: v8i16) -> v16i8 { | 6384 | pub fn lsx_vssrlrn_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 6385 | __lsx_vssrlrn_b_h(a, b) | 6385 | unsafe { __lsx_vssrlrn_b_h(a, b) } |
| 6386 | } | 6386 | } |
| 6387 | 6387 | ||
| 6388 | #[inline] | 6388 | #[inline] |
| 6389 | #[target_feature(enable = "lsx")] | 6389 | #[target_feature(enable = "lsx")] |
| 6390 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6390 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6391 | pub unsafe fn lsx_vssrlrn_h_w(a: v4i32, b: v4i32) -> v8i16 { | 6391 | pub fn lsx_vssrlrn_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 6392 | __lsx_vssrlrn_h_w(a, b) | 6392 | unsafe { __lsx_vssrlrn_h_w(a, b) } |
| 6393 | } | 6393 | } |
| 6394 | 6394 | ||
| 6395 | #[inline] | 6395 | #[inline] |
| 6396 | #[target_feature(enable = "lsx")] | 6396 | #[target_feature(enable = "lsx")] |
| 6397 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6397 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6398 | pub unsafe fn lsx_vssrlrn_w_d(a: v2i64, b: v2i64) -> v4i32 { | 6398 | pub fn lsx_vssrlrn_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 6399 | __lsx_vssrlrn_w_d(a, b) | 6399 | unsafe { __lsx_vssrlrn_w_d(a, b) } |
| 6400 | } | 6400 | } |
| 6401 | 6401 | ||
| 6402 | #[inline] | 6402 | #[inline] |
| 6403 | #[target_feature(enable = "lsx")] | 6403 | #[target_feature(enable = "lsx")] |
| 6404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6404 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6405 | pub unsafe fn lsx_vssrln_b_h(a: v8i16, b: v8i16) -> v16i8 { | 6405 | pub fn lsx_vssrln_b_h(a: v8i16, b: v8i16) -> v16i8 { |
| 6406 | __lsx_vssrln_b_h(a, b) | 6406 | unsafe { __lsx_vssrln_b_h(a, b) } |
| 6407 | } | 6407 | } |
| 6408 | 6408 | ||
| 6409 | #[inline] | 6409 | #[inline] |
| 6410 | #[target_feature(enable = "lsx")] | 6410 | #[target_feature(enable = "lsx")] |
| 6411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6411 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6412 | pub unsafe fn lsx_vssrln_h_w(a: v4i32, b: v4i32) -> v8i16 { | 6412 | pub fn lsx_vssrln_h_w(a: v4i32, b: v4i32) -> v8i16 { |
| 6413 | __lsx_vssrln_h_w(a, b) | 6413 | unsafe { __lsx_vssrln_h_w(a, b) } |
| 6414 | } | 6414 | } |
| 6415 | 6415 | ||
| 6416 | #[inline] | 6416 | #[inline] |
| 6417 | #[target_feature(enable = "lsx")] | 6417 | #[target_feature(enable = "lsx")] |
| 6418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6418 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6419 | pub unsafe fn lsx_vssrln_w_d(a: v2i64, b: v2i64) -> v4i32 { | 6419 | pub fn lsx_vssrln_w_d(a: v2i64, b: v2i64) -> v4i32 { |
| 6420 | __lsx_vssrln_w_d(a, b) | 6420 | unsafe { __lsx_vssrln_w_d(a, b) } |
| 6421 | } | 6421 | } |
| 6422 | 6422 | ||
| 6423 | #[inline] | 6423 | #[inline] |
| 6424 | #[target_feature(enable = "lsx")] | 6424 | #[target_feature(enable = "lsx")] |
| 6425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6425 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6426 | pub unsafe fn lsx_vorn_v(a: v16i8, b: v16i8) -> v16i8 { | 6426 | pub fn lsx_vorn_v(a: v16i8, b: v16i8) -> v16i8 { |
| 6427 | __lsx_vorn_v(a, b) | 6427 | unsafe { __lsx_vorn_v(a, b) } |
| 6428 | } | 6428 | } |
| 6429 | 6429 | ||
| 6430 | #[inline] | 6430 | #[inline] |
| 6431 | #[target_feature(enable = "lsx")] | 6431 | #[target_feature(enable = "lsx")] |
| 6432 | #[rustc_legacy_const_generics(0)] | 6432 | #[rustc_legacy_const_generics(0)] |
| 6433 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6433 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6434 | pub unsafe fn lsx_vldi<const IMM_S13: i32>() -> v2i64 { | 6434 | pub fn lsx_vldi<const IMM_S13: i32>() -> v2i64 { |
| 6435 | static_assert_simm_bits!(IMM_S13, 13); | 6435 | static_assert_simm_bits!(IMM_S13, 13); |
| 6436 | __lsx_vldi(IMM_S13) | 6436 | unsafe { __lsx_vldi(IMM_S13) } |
| 6437 | } | 6437 | } |
| 6438 | 6438 | ||
| 6439 | #[inline] | 6439 | #[inline] |
| 6440 | #[target_feature(enable = "lsx")] | 6440 | #[target_feature(enable = "lsx")] |
| 6441 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6441 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6442 | pub unsafe fn lsx_vshuf_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { | 6442 | pub fn lsx_vshuf_b(a: v16i8, b: v16i8, c: v16i8) -> v16i8 { |
| 6443 | __lsx_vshuf_b(a, b, c) | 6443 | unsafe { __lsx_vshuf_b(a, b, c) } |
| 6444 | } | 6444 | } |
| 6445 | 6445 | ||
| 6446 | #[inline] | 6446 | #[inline] |
| ... | @@ -6460,420 +6460,420 @@ pub unsafe fn lsx_vstx(a: v16i8, mem_addr: *mut i8, b: i64) { | ... | @@ -6460,420 +6460,420 @@ pub unsafe fn lsx_vstx(a: v16i8, mem_addr: *mut i8, b: i64) { |
| 6460 | #[inline] | 6460 | #[inline] |
| 6461 | #[target_feature(enable = "lsx")] | 6461 | #[target_feature(enable = "lsx")] |
| 6462 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6462 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6463 | pub unsafe fn lsx_vextl_qu_du(a: v2u64) -> v2u64 { | 6463 | pub fn lsx_vextl_qu_du(a: v2u64) -> v2u64 { |
| 6464 | __lsx_vextl_qu_du(a) | 6464 | unsafe { __lsx_vextl_qu_du(a) } |
| 6465 | } | 6465 | } |
| 6466 | 6466 | ||
| 6467 | #[inline] | 6467 | #[inline] |
| 6468 | #[target_feature(enable = "lsx")] | 6468 | #[target_feature(enable = "lsx")] |
| 6469 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6469 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6470 | pub unsafe fn lsx_bnz_b(a: v16u8) -> i32 { | 6470 | pub fn lsx_bnz_b(a: v16u8) -> i32 { |
| 6471 | __lsx_bnz_b(a) | 6471 | unsafe { __lsx_bnz_b(a) } |
| 6472 | } | 6472 | } |
| 6473 | 6473 | ||
| 6474 | #[inline] | 6474 | #[inline] |
| 6475 | #[target_feature(enable = "lsx")] | 6475 | #[target_feature(enable = "lsx")] |
| 6476 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6476 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6477 | pub unsafe fn lsx_bnz_d(a: v2u64) -> i32 { | 6477 | pub fn lsx_bnz_d(a: v2u64) -> i32 { |
| 6478 | __lsx_bnz_d(a) | 6478 | unsafe { __lsx_bnz_d(a) } |
| 6479 | } | 6479 | } |
| 6480 | 6480 | ||
| 6481 | #[inline] | 6481 | #[inline] |
| 6482 | #[target_feature(enable = "lsx")] | 6482 | #[target_feature(enable = "lsx")] |
| 6483 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6483 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6484 | pub unsafe fn lsx_bnz_h(a: v8u16) -> i32 { | 6484 | pub fn lsx_bnz_h(a: v8u16) -> i32 { |
| 6485 | __lsx_bnz_h(a) | 6485 | unsafe { __lsx_bnz_h(a) } |
| 6486 | } | 6486 | } |
| 6487 | 6487 | ||
| 6488 | #[inline] | 6488 | #[inline] |
| 6489 | #[target_feature(enable = "lsx")] | 6489 | #[target_feature(enable = "lsx")] |
| 6490 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6490 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6491 | pub unsafe fn lsx_bnz_v(a: v16u8) -> i32 { | 6491 | pub fn lsx_bnz_v(a: v16u8) -> i32 { |
| 6492 | __lsx_bnz_v(a) | 6492 | unsafe { __lsx_bnz_v(a) } |
| 6493 | } | 6493 | } |
| 6494 | 6494 | ||
| 6495 | #[inline] | 6495 | #[inline] |
| 6496 | #[target_feature(enable = "lsx")] | 6496 | #[target_feature(enable = "lsx")] |
| 6497 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6497 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6498 | pub unsafe fn lsx_bnz_w(a: v4u32) -> i32 { | 6498 | pub fn lsx_bnz_w(a: v4u32) -> i32 { |
| 6499 | __lsx_bnz_w(a) | 6499 | unsafe { __lsx_bnz_w(a) } |
| 6500 | } | 6500 | } |
| 6501 | 6501 | ||
| 6502 | #[inline] | 6502 | #[inline] |
| 6503 | #[target_feature(enable = "lsx")] | 6503 | #[target_feature(enable = "lsx")] |
| 6504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6504 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6505 | pub unsafe fn lsx_bz_b(a: v16u8) -> i32 { | 6505 | pub fn lsx_bz_b(a: v16u8) -> i32 { |
| 6506 | __lsx_bz_b(a) | 6506 | unsafe { __lsx_bz_b(a) } |
| 6507 | } | 6507 | } |
| 6508 | 6508 | ||
| 6509 | #[inline] | 6509 | #[inline] |
| 6510 | #[target_feature(enable = "lsx")] | 6510 | #[target_feature(enable = "lsx")] |
| 6511 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6511 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6512 | pub unsafe fn lsx_bz_d(a: v2u64) -> i32 { | 6512 | pub fn lsx_bz_d(a: v2u64) -> i32 { |
| 6513 | __lsx_bz_d(a) | 6513 | unsafe { __lsx_bz_d(a) } |
| 6514 | } | 6514 | } |
| 6515 | 6515 | ||
| 6516 | #[inline] | 6516 | #[inline] |
| 6517 | #[target_feature(enable = "lsx")] | 6517 | #[target_feature(enable = "lsx")] |
| 6518 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6518 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6519 | pub unsafe fn lsx_bz_h(a: v8u16) -> i32 { | 6519 | pub fn lsx_bz_h(a: v8u16) -> i32 { |
| 6520 | __lsx_bz_h(a) | 6520 | unsafe { __lsx_bz_h(a) } |
| 6521 | } | 6521 | } |
| 6522 | 6522 | ||
| 6523 | #[inline] | 6523 | #[inline] |
| 6524 | #[target_feature(enable = "lsx")] | 6524 | #[target_feature(enable = "lsx")] |
| 6525 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6525 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6526 | pub unsafe fn lsx_bz_v(a: v16u8) -> i32 { | 6526 | pub fn lsx_bz_v(a: v16u8) -> i32 { |
| 6527 | __lsx_bz_v(a) | 6527 | unsafe { __lsx_bz_v(a) } |
| 6528 | } | 6528 | } |
| 6529 | 6529 | ||
| 6530 | #[inline] | 6530 | #[inline] |
| 6531 | #[target_feature(enable = "lsx")] | 6531 | #[target_feature(enable = "lsx")] |
| 6532 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6532 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6533 | pub unsafe fn lsx_bz_w(a: v4u32) -> i32 { | 6533 | pub fn lsx_bz_w(a: v4u32) -> i32 { |
| 6534 | __lsx_bz_w(a) | 6534 | unsafe { __lsx_bz_w(a) } |
| 6535 | } | 6535 | } |
| 6536 | 6536 | ||
| 6537 | #[inline] | 6537 | #[inline] |
| 6538 | #[target_feature(enable = "lsx")] | 6538 | #[target_feature(enable = "lsx")] |
| 6539 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6539 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6540 | pub unsafe fn lsx_vfcmp_caf_d(a: v2f64, b: v2f64) -> v2i64 { | 6540 | pub fn lsx_vfcmp_caf_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6541 | __lsx_vfcmp_caf_d(a, b) | 6541 | unsafe { __lsx_vfcmp_caf_d(a, b) } |
| 6542 | } | 6542 | } |
| 6543 | 6543 | ||
| 6544 | #[inline] | 6544 | #[inline] |
| 6545 | #[target_feature(enable = "lsx")] | 6545 | #[target_feature(enable = "lsx")] |
| 6546 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6546 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6547 | pub unsafe fn lsx_vfcmp_caf_s(a: v4f32, b: v4f32) -> v4i32 { | 6547 | pub fn lsx_vfcmp_caf_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6548 | __lsx_vfcmp_caf_s(a, b) | 6548 | unsafe { __lsx_vfcmp_caf_s(a, b) } |
| 6549 | } | 6549 | } |
| 6550 | 6550 | ||
| 6551 | #[inline] | 6551 | #[inline] |
| 6552 | #[target_feature(enable = "lsx")] | 6552 | #[target_feature(enable = "lsx")] |
| 6553 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6553 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6554 | pub unsafe fn lsx_vfcmp_ceq_d(a: v2f64, b: v2f64) -> v2i64 { | 6554 | pub fn lsx_vfcmp_ceq_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6555 | __lsx_vfcmp_ceq_d(a, b) | 6555 | unsafe { __lsx_vfcmp_ceq_d(a, b) } |
| 6556 | } | 6556 | } |
| 6557 | 6557 | ||
| 6558 | #[inline] | 6558 | #[inline] |
| 6559 | #[target_feature(enable = "lsx")] | 6559 | #[target_feature(enable = "lsx")] |
| 6560 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6560 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6561 | pub unsafe fn lsx_vfcmp_ceq_s(a: v4f32, b: v4f32) -> v4i32 { | 6561 | pub fn lsx_vfcmp_ceq_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6562 | __lsx_vfcmp_ceq_s(a, b) | 6562 | unsafe { __lsx_vfcmp_ceq_s(a, b) } |
| 6563 | } | 6563 | } |
| 6564 | 6564 | ||
| 6565 | #[inline] | 6565 | #[inline] |
| 6566 | #[target_feature(enable = "lsx")] | 6566 | #[target_feature(enable = "lsx")] |
| 6567 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6567 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6568 | pub unsafe fn lsx_vfcmp_cle_d(a: v2f64, b: v2f64) -> v2i64 { | 6568 | pub fn lsx_vfcmp_cle_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6569 | __lsx_vfcmp_cle_d(a, b) | 6569 | unsafe { __lsx_vfcmp_cle_d(a, b) } |
| 6570 | } | 6570 | } |
| 6571 | 6571 | ||
| 6572 | #[inline] | 6572 | #[inline] |
| 6573 | #[target_feature(enable = "lsx")] | 6573 | #[target_feature(enable = "lsx")] |
| 6574 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6574 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6575 | pub unsafe fn lsx_vfcmp_cle_s(a: v4f32, b: v4f32) -> v4i32 { | 6575 | pub fn lsx_vfcmp_cle_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6576 | __lsx_vfcmp_cle_s(a, b) | 6576 | unsafe { __lsx_vfcmp_cle_s(a, b) } |
| 6577 | } | 6577 | } |
| 6578 | 6578 | ||
| 6579 | #[inline] | 6579 | #[inline] |
| 6580 | #[target_feature(enable = "lsx")] | 6580 | #[target_feature(enable = "lsx")] |
| 6581 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6581 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6582 | pub unsafe fn lsx_vfcmp_clt_d(a: v2f64, b: v2f64) -> v2i64 { | 6582 | pub fn lsx_vfcmp_clt_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6583 | __lsx_vfcmp_clt_d(a, b) | 6583 | unsafe { __lsx_vfcmp_clt_d(a, b) } |
| 6584 | } | 6584 | } |
| 6585 | 6585 | ||
| 6586 | #[inline] | 6586 | #[inline] |
| 6587 | #[target_feature(enable = "lsx")] | 6587 | #[target_feature(enable = "lsx")] |
| 6588 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6588 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6589 | pub unsafe fn lsx_vfcmp_clt_s(a: v4f32, b: v4f32) -> v4i32 { | 6589 | pub fn lsx_vfcmp_clt_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6590 | __lsx_vfcmp_clt_s(a, b) | 6590 | unsafe { __lsx_vfcmp_clt_s(a, b) } |
| 6591 | } | 6591 | } |
| 6592 | 6592 | ||
| 6593 | #[inline] | 6593 | #[inline] |
| 6594 | #[target_feature(enable = "lsx")] | 6594 | #[target_feature(enable = "lsx")] |
| 6595 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6595 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6596 | pub unsafe fn lsx_vfcmp_cne_d(a: v2f64, b: v2f64) -> v2i64 { | 6596 | pub fn lsx_vfcmp_cne_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6597 | __lsx_vfcmp_cne_d(a, b) | 6597 | unsafe { __lsx_vfcmp_cne_d(a, b) } |
| 6598 | } | 6598 | } |
| 6599 | 6599 | ||
| 6600 | #[inline] | 6600 | #[inline] |
| 6601 | #[target_feature(enable = "lsx")] | 6601 | #[target_feature(enable = "lsx")] |
| 6602 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6602 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6603 | pub unsafe fn lsx_vfcmp_cne_s(a: v4f32, b: v4f32) -> v4i32 { | 6603 | pub fn lsx_vfcmp_cne_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6604 | __lsx_vfcmp_cne_s(a, b) | 6604 | unsafe { __lsx_vfcmp_cne_s(a, b) } |
| 6605 | } | 6605 | } |
| 6606 | 6606 | ||
| 6607 | #[inline] | 6607 | #[inline] |
| 6608 | #[target_feature(enable = "lsx")] | 6608 | #[target_feature(enable = "lsx")] |
| 6609 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6609 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6610 | pub unsafe fn lsx_vfcmp_cor_d(a: v2f64, b: v2f64) -> v2i64 { | 6610 | pub fn lsx_vfcmp_cor_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6611 | __lsx_vfcmp_cor_d(a, b) | 6611 | unsafe { __lsx_vfcmp_cor_d(a, b) } |
| 6612 | } | 6612 | } |
| 6613 | 6613 | ||
| 6614 | #[inline] | 6614 | #[inline] |
| 6615 | #[target_feature(enable = "lsx")] | 6615 | #[target_feature(enable = "lsx")] |
| 6616 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6616 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6617 | pub unsafe fn lsx_vfcmp_cor_s(a: v4f32, b: v4f32) -> v4i32 { | 6617 | pub fn lsx_vfcmp_cor_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6618 | __lsx_vfcmp_cor_s(a, b) | 6618 | unsafe { __lsx_vfcmp_cor_s(a, b) } |
| 6619 | } | 6619 | } |
| 6620 | 6620 | ||
| 6621 | #[inline] | 6621 | #[inline] |
| 6622 | #[target_feature(enable = "lsx")] | 6622 | #[target_feature(enable = "lsx")] |
| 6623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6623 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6624 | pub unsafe fn lsx_vfcmp_cueq_d(a: v2f64, b: v2f64) -> v2i64 { | 6624 | pub fn lsx_vfcmp_cueq_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6625 | __lsx_vfcmp_cueq_d(a, b) | 6625 | unsafe { __lsx_vfcmp_cueq_d(a, b) } |
| 6626 | } | 6626 | } |
| 6627 | 6627 | ||
| 6628 | #[inline] | 6628 | #[inline] |
| 6629 | #[target_feature(enable = "lsx")] | 6629 | #[target_feature(enable = "lsx")] |
| 6630 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6630 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6631 | pub unsafe fn lsx_vfcmp_cueq_s(a: v4f32, b: v4f32) -> v4i32 { | 6631 | pub fn lsx_vfcmp_cueq_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6632 | __lsx_vfcmp_cueq_s(a, b) | 6632 | unsafe { __lsx_vfcmp_cueq_s(a, b) } |
| 6633 | } | 6633 | } |
| 6634 | 6634 | ||
| 6635 | #[inline] | 6635 | #[inline] |
| 6636 | #[target_feature(enable = "lsx")] | 6636 | #[target_feature(enable = "lsx")] |
| 6637 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6637 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6638 | pub unsafe fn lsx_vfcmp_cule_d(a: v2f64, b: v2f64) -> v2i64 { | 6638 | pub fn lsx_vfcmp_cule_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6639 | __lsx_vfcmp_cule_d(a, b) | 6639 | unsafe { __lsx_vfcmp_cule_d(a, b) } |
| 6640 | } | 6640 | } |
| 6641 | 6641 | ||
| 6642 | #[inline] | 6642 | #[inline] |
| 6643 | #[target_feature(enable = "lsx")] | 6643 | #[target_feature(enable = "lsx")] |
| 6644 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6644 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6645 | pub unsafe fn lsx_vfcmp_cule_s(a: v4f32, b: v4f32) -> v4i32 { | 6645 | pub fn lsx_vfcmp_cule_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6646 | __lsx_vfcmp_cule_s(a, b) | 6646 | unsafe { __lsx_vfcmp_cule_s(a, b) } |
| 6647 | } | 6647 | } |
| 6648 | 6648 | ||
| 6649 | #[inline] | 6649 | #[inline] |
| 6650 | #[target_feature(enable = "lsx")] | 6650 | #[target_feature(enable = "lsx")] |
| 6651 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6651 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6652 | pub unsafe fn lsx_vfcmp_cult_d(a: v2f64, b: v2f64) -> v2i64 { | 6652 | pub fn lsx_vfcmp_cult_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6653 | __lsx_vfcmp_cult_d(a, b) | 6653 | unsafe { __lsx_vfcmp_cult_d(a, b) } |
| 6654 | } | 6654 | } |
| 6655 | 6655 | ||
| 6656 | #[inline] | 6656 | #[inline] |
| 6657 | #[target_feature(enable = "lsx")] | 6657 | #[target_feature(enable = "lsx")] |
| 6658 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6658 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6659 | pub unsafe fn lsx_vfcmp_cult_s(a: v4f32, b: v4f32) -> v4i32 { | 6659 | pub fn lsx_vfcmp_cult_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6660 | __lsx_vfcmp_cult_s(a, b) | 6660 | unsafe { __lsx_vfcmp_cult_s(a, b) } |
| 6661 | } | 6661 | } |
| 6662 | 6662 | ||
| 6663 | #[inline] | 6663 | #[inline] |
| 6664 | #[target_feature(enable = "lsx")] | 6664 | #[target_feature(enable = "lsx")] |
| 6665 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6665 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6666 | pub unsafe fn lsx_vfcmp_cun_d(a: v2f64, b: v2f64) -> v2i64 { | 6666 | pub fn lsx_vfcmp_cun_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6667 | __lsx_vfcmp_cun_d(a, b) | 6667 | unsafe { __lsx_vfcmp_cun_d(a, b) } |
| 6668 | } | 6668 | } |
| 6669 | 6669 | ||
| 6670 | #[inline] | 6670 | #[inline] |
| 6671 | #[target_feature(enable = "lsx")] | 6671 | #[target_feature(enable = "lsx")] |
| 6672 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6672 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6673 | pub unsafe fn lsx_vfcmp_cune_d(a: v2f64, b: v2f64) -> v2i64 { | 6673 | pub fn lsx_vfcmp_cune_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6674 | __lsx_vfcmp_cune_d(a, b) | 6674 | unsafe { __lsx_vfcmp_cune_d(a, b) } |
| 6675 | } | 6675 | } |
| 6676 | 6676 | ||
| 6677 | #[inline] | 6677 | #[inline] |
| 6678 | #[target_feature(enable = "lsx")] | 6678 | #[target_feature(enable = "lsx")] |
| 6679 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6679 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6680 | pub unsafe fn lsx_vfcmp_cune_s(a: v4f32, b: v4f32) -> v4i32 { | 6680 | pub fn lsx_vfcmp_cune_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6681 | __lsx_vfcmp_cune_s(a, b) | 6681 | unsafe { __lsx_vfcmp_cune_s(a, b) } |
| 6682 | } | 6682 | } |
| 6683 | 6683 | ||
| 6684 | #[inline] | 6684 | #[inline] |
| 6685 | #[target_feature(enable = "lsx")] | 6685 | #[target_feature(enable = "lsx")] |
| 6686 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6686 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6687 | pub unsafe fn lsx_vfcmp_cun_s(a: v4f32, b: v4f32) -> v4i32 { | 6687 | pub fn lsx_vfcmp_cun_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6688 | __lsx_vfcmp_cun_s(a, b) | 6688 | unsafe { __lsx_vfcmp_cun_s(a, b) } |
| 6689 | } | 6689 | } |
| 6690 | 6690 | ||
| 6691 | #[inline] | 6691 | #[inline] |
| 6692 | #[target_feature(enable = "lsx")] | 6692 | #[target_feature(enable = "lsx")] |
| 6693 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6693 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6694 | pub unsafe fn lsx_vfcmp_saf_d(a: v2f64, b: v2f64) -> v2i64 { | 6694 | pub fn lsx_vfcmp_saf_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6695 | __lsx_vfcmp_saf_d(a, b) | 6695 | unsafe { __lsx_vfcmp_saf_d(a, b) } |
| 6696 | } | 6696 | } |
| 6697 | 6697 | ||
| 6698 | #[inline] | 6698 | #[inline] |
| 6699 | #[target_feature(enable = "lsx")] | 6699 | #[target_feature(enable = "lsx")] |
| 6700 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6700 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6701 | pub unsafe fn lsx_vfcmp_saf_s(a: v4f32, b: v4f32) -> v4i32 { | 6701 | pub fn lsx_vfcmp_saf_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6702 | __lsx_vfcmp_saf_s(a, b) | 6702 | unsafe { __lsx_vfcmp_saf_s(a, b) } |
| 6703 | } | 6703 | } |
| 6704 | 6704 | ||
| 6705 | #[inline] | 6705 | #[inline] |
| 6706 | #[target_feature(enable = "lsx")] | 6706 | #[target_feature(enable = "lsx")] |
| 6707 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6707 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6708 | pub unsafe fn lsx_vfcmp_seq_d(a: v2f64, b: v2f64) -> v2i64 { | 6708 | pub fn lsx_vfcmp_seq_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6709 | __lsx_vfcmp_seq_d(a, b) | 6709 | unsafe { __lsx_vfcmp_seq_d(a, b) } |
| 6710 | } | 6710 | } |
| 6711 | 6711 | ||
| 6712 | #[inline] | 6712 | #[inline] |
| 6713 | #[target_feature(enable = "lsx")] | 6713 | #[target_feature(enable = "lsx")] |
| 6714 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6714 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6715 | pub unsafe fn lsx_vfcmp_seq_s(a: v4f32, b: v4f32) -> v4i32 { | 6715 | pub fn lsx_vfcmp_seq_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6716 | __lsx_vfcmp_seq_s(a, b) | 6716 | unsafe { __lsx_vfcmp_seq_s(a, b) } |
| 6717 | } | 6717 | } |
| 6718 | 6718 | ||
| 6719 | #[inline] | 6719 | #[inline] |
| 6720 | #[target_feature(enable = "lsx")] | 6720 | #[target_feature(enable = "lsx")] |
| 6721 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6721 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6722 | pub unsafe fn lsx_vfcmp_sle_d(a: v2f64, b: v2f64) -> v2i64 { | 6722 | pub fn lsx_vfcmp_sle_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6723 | __lsx_vfcmp_sle_d(a, b) | 6723 | unsafe { __lsx_vfcmp_sle_d(a, b) } |
| 6724 | } | 6724 | } |
| 6725 | 6725 | ||
| 6726 | #[inline] | 6726 | #[inline] |
| 6727 | #[target_feature(enable = "lsx")] | 6727 | #[target_feature(enable = "lsx")] |
| 6728 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6728 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6729 | pub unsafe fn lsx_vfcmp_sle_s(a: v4f32, b: v4f32) -> v4i32 { | 6729 | pub fn lsx_vfcmp_sle_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6730 | __lsx_vfcmp_sle_s(a, b) | 6730 | unsafe { __lsx_vfcmp_sle_s(a, b) } |
| 6731 | } | 6731 | } |
| 6732 | 6732 | ||
| 6733 | #[inline] | 6733 | #[inline] |
| 6734 | #[target_feature(enable = "lsx")] | 6734 | #[target_feature(enable = "lsx")] |
| 6735 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6735 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6736 | pub unsafe fn lsx_vfcmp_slt_d(a: v2f64, b: v2f64) -> v2i64 { | 6736 | pub fn lsx_vfcmp_slt_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6737 | __lsx_vfcmp_slt_d(a, b) | 6737 | unsafe { __lsx_vfcmp_slt_d(a, b) } |
| 6738 | } | 6738 | } |
| 6739 | 6739 | ||
| 6740 | #[inline] | 6740 | #[inline] |
| 6741 | #[target_feature(enable = "lsx")] | 6741 | #[target_feature(enable = "lsx")] |
| 6742 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6742 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6743 | pub unsafe fn lsx_vfcmp_slt_s(a: v4f32, b: v4f32) -> v4i32 { | 6743 | pub fn lsx_vfcmp_slt_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6744 | __lsx_vfcmp_slt_s(a, b) | 6744 | unsafe { __lsx_vfcmp_slt_s(a, b) } |
| 6745 | } | 6745 | } |
| 6746 | 6746 | ||
| 6747 | #[inline] | 6747 | #[inline] |
| 6748 | #[target_feature(enable = "lsx")] | 6748 | #[target_feature(enable = "lsx")] |
| 6749 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6749 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6750 | pub unsafe fn lsx_vfcmp_sne_d(a: v2f64, b: v2f64) -> v2i64 { | 6750 | pub fn lsx_vfcmp_sne_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6751 | __lsx_vfcmp_sne_d(a, b) | 6751 | unsafe { __lsx_vfcmp_sne_d(a, b) } |
| 6752 | } | 6752 | } |
| 6753 | 6753 | ||
| 6754 | #[inline] | 6754 | #[inline] |
| 6755 | #[target_feature(enable = "lsx")] | 6755 | #[target_feature(enable = "lsx")] |
| 6756 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6756 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6757 | pub unsafe fn lsx_vfcmp_sne_s(a: v4f32, b: v4f32) -> v4i32 { | 6757 | pub fn lsx_vfcmp_sne_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6758 | __lsx_vfcmp_sne_s(a, b) | 6758 | unsafe { __lsx_vfcmp_sne_s(a, b) } |
| 6759 | } | 6759 | } |
| 6760 | 6760 | ||
| 6761 | #[inline] | 6761 | #[inline] |
| 6762 | #[target_feature(enable = "lsx")] | 6762 | #[target_feature(enable = "lsx")] |
| 6763 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6763 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6764 | pub unsafe fn lsx_vfcmp_sor_d(a: v2f64, b: v2f64) -> v2i64 { | 6764 | pub fn lsx_vfcmp_sor_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6765 | __lsx_vfcmp_sor_d(a, b) | 6765 | unsafe { __lsx_vfcmp_sor_d(a, b) } |
| 6766 | } | 6766 | } |
| 6767 | 6767 | ||
| 6768 | #[inline] | 6768 | #[inline] |
| 6769 | #[target_feature(enable = "lsx")] | 6769 | #[target_feature(enable = "lsx")] |
| 6770 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6770 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6771 | pub unsafe fn lsx_vfcmp_sor_s(a: v4f32, b: v4f32) -> v4i32 { | 6771 | pub fn lsx_vfcmp_sor_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6772 | __lsx_vfcmp_sor_s(a, b) | 6772 | unsafe { __lsx_vfcmp_sor_s(a, b) } |
| 6773 | } | 6773 | } |
| 6774 | 6774 | ||
| 6775 | #[inline] | 6775 | #[inline] |
| 6776 | #[target_feature(enable = "lsx")] | 6776 | #[target_feature(enable = "lsx")] |
| 6777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6777 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6778 | pub unsafe fn lsx_vfcmp_sueq_d(a: v2f64, b: v2f64) -> v2i64 { | 6778 | pub fn lsx_vfcmp_sueq_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6779 | __lsx_vfcmp_sueq_d(a, b) | 6779 | unsafe { __lsx_vfcmp_sueq_d(a, b) } |
| 6780 | } | 6780 | } |
| 6781 | 6781 | ||
| 6782 | #[inline] | 6782 | #[inline] |
| 6783 | #[target_feature(enable = "lsx")] | 6783 | #[target_feature(enable = "lsx")] |
| 6784 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6784 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6785 | pub unsafe fn lsx_vfcmp_sueq_s(a: v4f32, b: v4f32) -> v4i32 { | 6785 | pub fn lsx_vfcmp_sueq_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6786 | __lsx_vfcmp_sueq_s(a, b) | 6786 | unsafe { __lsx_vfcmp_sueq_s(a, b) } |
| 6787 | } | 6787 | } |
| 6788 | 6788 | ||
| 6789 | #[inline] | 6789 | #[inline] |
| 6790 | #[target_feature(enable = "lsx")] | 6790 | #[target_feature(enable = "lsx")] |
| 6791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6791 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6792 | pub unsafe fn lsx_vfcmp_sule_d(a: v2f64, b: v2f64) -> v2i64 { | 6792 | pub fn lsx_vfcmp_sule_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6793 | __lsx_vfcmp_sule_d(a, b) | 6793 | unsafe { __lsx_vfcmp_sule_d(a, b) } |
| 6794 | } | 6794 | } |
| 6795 | 6795 | ||
| 6796 | #[inline] | 6796 | #[inline] |
| 6797 | #[target_feature(enable = "lsx")] | 6797 | #[target_feature(enable = "lsx")] |
| 6798 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6798 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6799 | pub unsafe fn lsx_vfcmp_sule_s(a: v4f32, b: v4f32) -> v4i32 { | 6799 | pub fn lsx_vfcmp_sule_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6800 | __lsx_vfcmp_sule_s(a, b) | 6800 | unsafe { __lsx_vfcmp_sule_s(a, b) } |
| 6801 | } | 6801 | } |
| 6802 | 6802 | ||
| 6803 | #[inline] | 6803 | #[inline] |
| 6804 | #[target_feature(enable = "lsx")] | 6804 | #[target_feature(enable = "lsx")] |
| 6805 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6805 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6806 | pub unsafe fn lsx_vfcmp_sult_d(a: v2f64, b: v2f64) -> v2i64 { | 6806 | pub fn lsx_vfcmp_sult_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6807 | __lsx_vfcmp_sult_d(a, b) | 6807 | unsafe { __lsx_vfcmp_sult_d(a, b) } |
| 6808 | } | 6808 | } |
| 6809 | 6809 | ||
| 6810 | #[inline] | 6810 | #[inline] |
| 6811 | #[target_feature(enable = "lsx")] | 6811 | #[target_feature(enable = "lsx")] |
| 6812 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6812 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6813 | pub unsafe fn lsx_vfcmp_sult_s(a: v4f32, b: v4f32) -> v4i32 { | 6813 | pub fn lsx_vfcmp_sult_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6814 | __lsx_vfcmp_sult_s(a, b) | 6814 | unsafe { __lsx_vfcmp_sult_s(a, b) } |
| 6815 | } | 6815 | } |
| 6816 | 6816 | ||
| 6817 | #[inline] | 6817 | #[inline] |
| 6818 | #[target_feature(enable = "lsx")] | 6818 | #[target_feature(enable = "lsx")] |
| 6819 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6819 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6820 | pub unsafe fn lsx_vfcmp_sun_d(a: v2f64, b: v2f64) -> v2i64 { | 6820 | pub fn lsx_vfcmp_sun_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6821 | __lsx_vfcmp_sun_d(a, b) | 6821 | unsafe { __lsx_vfcmp_sun_d(a, b) } |
| 6822 | } | 6822 | } |
| 6823 | 6823 | ||
| 6824 | #[inline] | 6824 | #[inline] |
| 6825 | #[target_feature(enable = "lsx")] | 6825 | #[target_feature(enable = "lsx")] |
| 6826 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6826 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6827 | pub unsafe fn lsx_vfcmp_sune_d(a: v2f64, b: v2f64) -> v2i64 { | 6827 | pub fn lsx_vfcmp_sune_d(a: v2f64, b: v2f64) -> v2i64 { |
| 6828 | __lsx_vfcmp_sune_d(a, b) | 6828 | unsafe { __lsx_vfcmp_sune_d(a, b) } |
| 6829 | } | 6829 | } |
| 6830 | 6830 | ||
| 6831 | #[inline] | 6831 | #[inline] |
| 6832 | #[target_feature(enable = "lsx")] | 6832 | #[target_feature(enable = "lsx")] |
| 6833 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6833 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6834 | pub unsafe fn lsx_vfcmp_sune_s(a: v4f32, b: v4f32) -> v4i32 { | 6834 | pub fn lsx_vfcmp_sune_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6835 | __lsx_vfcmp_sune_s(a, b) | 6835 | unsafe { __lsx_vfcmp_sune_s(a, b) } |
| 6836 | } | 6836 | } |
| 6837 | 6837 | ||
| 6838 | #[inline] | 6838 | #[inline] |
| 6839 | #[target_feature(enable = "lsx")] | 6839 | #[target_feature(enable = "lsx")] |
| 6840 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6840 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6841 | pub unsafe fn lsx_vfcmp_sun_s(a: v4f32, b: v4f32) -> v4i32 { | 6841 | pub fn lsx_vfcmp_sun_s(a: v4f32, b: v4f32) -> v4i32 { |
| 6842 | __lsx_vfcmp_sun_s(a, b) | 6842 | unsafe { __lsx_vfcmp_sun_s(a, b) } |
| 6843 | } | 6843 | } |
| 6844 | 6844 | ||
| 6845 | #[inline] | 6845 | #[inline] |
| 6846 | #[target_feature(enable = "lsx")] | 6846 | #[target_feature(enable = "lsx")] |
| 6847 | #[rustc_legacy_const_generics(0)] | 6847 | #[rustc_legacy_const_generics(0)] |
| 6848 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6848 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6849 | pub unsafe fn lsx_vrepli_b<const IMM_S10: i32>() -> v16i8 { | 6849 | pub fn lsx_vrepli_b<const IMM_S10: i32>() -> v16i8 { |
| 6850 | static_assert_simm_bits!(IMM_S10, 10); | 6850 | static_assert_simm_bits!(IMM_S10, 10); |
| 6851 | __lsx_vrepli_b(IMM_S10) | 6851 | unsafe { __lsx_vrepli_b(IMM_S10) } |
| 6852 | } | 6852 | } |
| 6853 | 6853 | ||
| 6854 | #[inline] | 6854 | #[inline] |
| 6855 | #[target_feature(enable = "lsx")] | 6855 | #[target_feature(enable = "lsx")] |
| 6856 | #[rustc_legacy_const_generics(0)] | 6856 | #[rustc_legacy_const_generics(0)] |
| 6857 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6857 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6858 | pub unsafe fn lsx_vrepli_d<const IMM_S10: i32>() -> v2i64 { | 6858 | pub fn lsx_vrepli_d<const IMM_S10: i32>() -> v2i64 { |
| 6859 | static_assert_simm_bits!(IMM_S10, 10); | 6859 | static_assert_simm_bits!(IMM_S10, 10); |
| 6860 | __lsx_vrepli_d(IMM_S10) | 6860 | unsafe { __lsx_vrepli_d(IMM_S10) } |
| 6861 | } | 6861 | } |
| 6862 | 6862 | ||
| 6863 | #[inline] | 6863 | #[inline] |
| 6864 | #[target_feature(enable = "lsx")] | 6864 | #[target_feature(enable = "lsx")] |
| 6865 | #[rustc_legacy_const_generics(0)] | 6865 | #[rustc_legacy_const_generics(0)] |
| 6866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6866 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6867 | pub unsafe fn lsx_vrepli_h<const IMM_S10: i32>() -> v8i16 { | 6867 | pub fn lsx_vrepli_h<const IMM_S10: i32>() -> v8i16 { |
| 6868 | static_assert_simm_bits!(IMM_S10, 10); | 6868 | static_assert_simm_bits!(IMM_S10, 10); |
| 6869 | __lsx_vrepli_h(IMM_S10) | 6869 | unsafe { __lsx_vrepli_h(IMM_S10) } |
| 6870 | } | 6870 | } |
| 6871 | 6871 | ||
| 6872 | #[inline] | 6872 | #[inline] |
| 6873 | #[target_feature(enable = "lsx")] | 6873 | #[target_feature(enable = "lsx")] |
| 6874 | #[rustc_legacy_const_generics(0)] | 6874 | #[rustc_legacy_const_generics(0)] |
| 6875 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 6875 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 6876 | pub unsafe fn lsx_vrepli_w<const IMM_S10: i32>() -> v4i32 { | 6876 | pub fn lsx_vrepli_w<const IMM_S10: i32>() -> v4i32 { |
| 6877 | static_assert_simm_bits!(IMM_S10, 10); | 6877 | static_assert_simm_bits!(IMM_S10, 10); |
| 6878 | __lsx_vrepli_w(IMM_S10) | 6878 | unsafe { __lsx_vrepli_w(IMM_S10) } |
| 6879 | } | 6879 | } |
library/stdarch/crates/core_arch/src/loongarch64/mod.rs+8-246| ... | @@ -1,4 +1,4 @@ | ... | @@ -1,4 +1,4 @@ |
| 1 | //! `LoongArch` intrinsics | 1 | //! `LoongArch64` intrinsics |
| 2 | 2 | ||
| 3 | mod lasx; | 3 | mod lasx; |
| 4 | mod lsx; | 4 | mod lsx; |
| ... | @@ -13,89 +13,30 @@ use crate::arch::asm; | ... | @@ -13,89 +13,30 @@ use crate::arch::asm; |
| 13 | /// Reads the 64-bit stable counter value and the counter ID | 13 | /// Reads the 64-bit stable counter value and the counter ID |
| 14 | #[inline] | 14 | #[inline] |
| 15 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 15 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 16 | pub unsafe fn rdtime_d() -> (i64, isize) { | 16 | pub fn rdtime_d() -> (i64, isize) { |
| 17 | let val: i64; | 17 | let (val, tid): (i64, isize); |
| 18 | let tid: isize; | 18 | unsafe { asm!("rdtime.d {}, {}", out(reg) val, out(reg) tid, options(readonly, nostack)) }; |
| 19 | asm!("rdtime.d {}, {}", out(reg) val, out(reg) tid, options(readonly, nostack)); | ||
| 20 | (val, tid) | ||
| 21 | } | ||
| 22 | |||
| 23 | /// Reads the lower 32-bit stable counter value and the counter ID | ||
| 24 | #[inline] | ||
| 25 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 26 | pub unsafe fn rdtimel_w() -> (i32, isize) { | ||
| 27 | let val: i32; | ||
| 28 | let tid: isize; | ||
| 29 | asm!("rdtimel.w {}, {}", out(reg) val, out(reg) tid, options(readonly, nostack)); | ||
| 30 | (val, tid) | ||
| 31 | } | ||
| 32 | |||
| 33 | /// Reads the upper 32-bit stable counter value and the counter ID | ||
| 34 | #[inline] | ||
| 35 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 36 | pub unsafe fn rdtimeh_w() -> (i32, isize) { | ||
| 37 | let val: i32; | ||
| 38 | let tid: isize; | ||
| 39 | asm!("rdtimeh.w {}, {}", out(reg) val, out(reg) tid, options(readonly, nostack)); | ||
| 40 | (val, tid) | 19 | (val, tid) |
| 41 | } | 20 | } |
| 42 | 21 | ||
| 43 | #[allow(improper_ctypes)] | 22 | #[allow(improper_ctypes)] |
| 44 | unsafe extern "unadjusted" { | 23 | unsafe extern "unadjusted" { |
| 45 | #[link_name = "llvm.loongarch.crc.w.b.w"] | ||
| 46 | fn __crc_w_b_w(a: i32, b: i32) -> i32; | ||
| 47 | #[link_name = "llvm.loongarch.crc.w.h.w"] | ||
| 48 | fn __crc_w_h_w(a: i32, b: i32) -> i32; | ||
| 49 | #[link_name = "llvm.loongarch.crc.w.w.w"] | ||
| 50 | fn __crc_w_w_w(a: i32, b: i32) -> i32; | ||
| 51 | #[link_name = "llvm.loongarch.crc.w.d.w"] | 24 | #[link_name = "llvm.loongarch.crc.w.d.w"] |
| 52 | fn __crc_w_d_w(a: i64, b: i32) -> i32; | 25 | fn __crc_w_d_w(a: i64, b: i32) -> i32; |
| 53 | #[link_name = "llvm.loongarch.crcc.w.b.w"] | ||
| 54 | fn __crcc_w_b_w(a: i32, b: i32) -> i32; | ||
| 55 | #[link_name = "llvm.loongarch.crcc.w.h.w"] | ||
| 56 | fn __crcc_w_h_w(a: i32, b: i32) -> i32; | ||
| 57 | #[link_name = "llvm.loongarch.crcc.w.w.w"] | ||
| 58 | fn __crcc_w_w_w(a: i32, b: i32) -> i32; | ||
| 59 | #[link_name = "llvm.loongarch.crcc.w.d.w"] | 26 | #[link_name = "llvm.loongarch.crcc.w.d.w"] |
| 60 | fn __crcc_w_d_w(a: i64, b: i32) -> i32; | 27 | fn __crcc_w_d_w(a: i64, b: i32) -> i32; |
| 61 | #[link_name = "llvm.loongarch.cacop.d"] | 28 | #[link_name = "llvm.loongarch.cacop.d"] |
| 62 | fn __cacop(a: i64, b: i64, c: i64); | 29 | fn __cacop(a: i64, b: i64, c: i64); |
| 63 | #[link_name = "llvm.loongarch.dbar"] | ||
| 64 | fn __dbar(a: i32); | ||
| 65 | #[link_name = "llvm.loongarch.ibar"] | ||
| 66 | fn __ibar(a: i32); | ||
| 67 | #[link_name = "llvm.loongarch.movgr2fcsr"] | ||
| 68 | fn __movgr2fcsr(a: i32, b: i32); | ||
| 69 | #[link_name = "llvm.loongarch.movfcsr2gr"] | ||
| 70 | fn __movfcsr2gr(a: i32) -> i32; | ||
| 71 | #[link_name = "llvm.loongarch.csrrd.d"] | 30 | #[link_name = "llvm.loongarch.csrrd.d"] |
| 72 | fn __csrrd(a: i32) -> i64; | 31 | fn __csrrd(a: i32) -> i64; |
| 73 | #[link_name = "llvm.loongarch.csrwr.d"] | 32 | #[link_name = "llvm.loongarch.csrwr.d"] |
| 74 | fn __csrwr(a: i64, b: i32) -> i64; | 33 | fn __csrwr(a: i64, b: i32) -> i64; |
| 75 | #[link_name = "llvm.loongarch.csrxchg.d"] | 34 | #[link_name = "llvm.loongarch.csrxchg.d"] |
| 76 | fn __csrxchg(a: i64, b: i64, c: i32) -> i64; | 35 | fn __csrxchg(a: i64, b: i64, c: i32) -> i64; |
| 77 | #[link_name = "llvm.loongarch.iocsrrd.b"] | ||
| 78 | fn __iocsrrd_b(a: i32) -> i32; | ||
| 79 | #[link_name = "llvm.loongarch.iocsrrd.h"] | ||
| 80 | fn __iocsrrd_h(a: i32) -> i32; | ||
| 81 | #[link_name = "llvm.loongarch.iocsrrd.w"] | ||
| 82 | fn __iocsrrd_w(a: i32) -> i32; | ||
| 83 | #[link_name = "llvm.loongarch.iocsrrd.d"] | 36 | #[link_name = "llvm.loongarch.iocsrrd.d"] |
| 84 | fn __iocsrrd_d(a: i32) -> i64; | 37 | fn __iocsrrd_d(a: i32) -> i64; |
| 85 | #[link_name = "llvm.loongarch.iocsrwr.b"] | ||
| 86 | fn __iocsrwr_b(a: i32, b: i32); | ||
| 87 | #[link_name = "llvm.loongarch.iocsrwr.h"] | ||
| 88 | fn __iocsrwr_h(a: i32, b: i32); | ||
| 89 | #[link_name = "llvm.loongarch.iocsrwr.w"] | ||
| 90 | fn __iocsrwr_w(a: i32, b: i32); | ||
| 91 | #[link_name = "llvm.loongarch.iocsrwr.d"] | 38 | #[link_name = "llvm.loongarch.iocsrwr.d"] |
| 92 | fn __iocsrwr_d(a: i64, b: i32); | 39 | fn __iocsrwr_d(a: i64, b: i32); |
| 93 | #[link_name = "llvm.loongarch.break"] | ||
| 94 | fn __break(a: i32); | ||
| 95 | #[link_name = "llvm.loongarch.cpucfg"] | ||
| 96 | fn __cpucfg(a: i32) -> i32; | ||
| 97 | #[link_name = "llvm.loongarch.syscall"] | ||
| 98 | fn __syscall(a: i32); | ||
| 99 | #[link_name = "llvm.loongarch.asrtle.d"] | 40 | #[link_name = "llvm.loongarch.asrtle.d"] |
| 100 | fn __asrtle(a: i64, b: i64); | 41 | fn __asrtle(a: i64, b: i64); |
| 101 | #[link_name = "llvm.loongarch.asrtgt.d"] | 42 | #[link_name = "llvm.loongarch.asrtgt.d"] |
| ... | @@ -104,70 +45,20 @@ unsafe extern "unadjusted" { | ... | @@ -104,70 +45,20 @@ unsafe extern "unadjusted" { |
| 104 | fn __lddir(a: i64, b: i64) -> i64; | 45 | fn __lddir(a: i64, b: i64) -> i64; |
| 105 | #[link_name = "llvm.loongarch.ldpte.d"] | 46 | #[link_name = "llvm.loongarch.ldpte.d"] |
| 106 | fn __ldpte(a: i64, b: i64); | 47 | fn __ldpte(a: i64, b: i64); |
| 107 | #[link_name = "llvm.loongarch.frecipe.s"] | ||
| 108 | fn __frecipe_s(a: f32) -> f32; | ||
| 109 | #[link_name = "llvm.loongarch.frecipe.d"] | ||
| 110 | fn __frecipe_d(a: f64) -> f64; | ||
| 111 | #[link_name = "llvm.loongarch.frsqrte.s"] | ||
| 112 | fn __frsqrte_s(a: f32) -> f32; | ||
| 113 | #[link_name = "llvm.loongarch.frsqrte.d"] | ||
| 114 | fn __frsqrte_d(a: f64) -> f64; | ||
| 115 | } | 48 | } |
| 116 | 49 | ||
| 117 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) | 50 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) |
| 118 | #[inline] | 51 | #[inline] |
| 119 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 52 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 120 | pub unsafe fn crc_w_b_w(a: i32, b: i32) -> i32 { | 53 | pub fn crc_w_d_w(a: i64, b: i32) -> i32 { |
| 121 | __crc_w_b_w(a, b) | 54 | unsafe { __crc_w_d_w(a, b) } |
| 122 | } | ||
| 123 | |||
| 124 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) | ||
| 125 | #[inline] | ||
| 126 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 127 | pub unsafe fn crc_w_h_w(a: i32, b: i32) -> i32 { | ||
| 128 | __crc_w_h_w(a, b) | ||
| 129 | } | ||
| 130 | |||
| 131 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) | ||
| 132 | #[inline] | ||
| 133 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 134 | pub unsafe fn crc_w_w_w(a: i32, b: i32) -> i32 { | ||
| 135 | __crc_w_w_w(a, b) | ||
| 136 | } | ||
| 137 | |||
| 138 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) | ||
| 139 | #[inline] | ||
| 140 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 141 | pub unsafe fn crc_w_d_w(a: i64, b: i32) -> i32 { | ||
| 142 | __crc_w_d_w(a, b) | ||
| 143 | } | ||
| 144 | |||
| 145 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) | ||
| 146 | #[inline] | ||
| 147 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 148 | pub unsafe fn crcc_w_b_w(a: i32, b: i32) -> i32 { | ||
| 149 | __crcc_w_b_w(a, b) | ||
| 150 | } | ||
| 151 | |||
| 152 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) | ||
| 153 | #[inline] | ||
| 154 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 155 | pub unsafe fn crcc_w_h_w(a: i32, b: i32) -> i32 { | ||
| 156 | __crcc_w_h_w(a, b) | ||
| 157 | } | 55 | } |
| 158 | 56 | ||
| 159 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) | 57 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) |
| 160 | #[inline] | 58 | #[inline] |
| 161 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 59 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 162 | pub unsafe fn crcc_w_w_w(a: i32, b: i32) -> i32 { | 60 | pub fn crcc_w_d_w(a: i64, b: i32) -> i32 { |
| 163 | __crcc_w_w_w(a, b) | 61 | unsafe { __crcc_w_d_w(a, b) } |
| 164 | } | ||
| 165 | |||
| 166 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) | ||
| 167 | #[inline] | ||
| 168 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 169 | pub unsafe fn crcc_w_d_w(a: i64, b: i32) -> i32 { | ||
| 170 | __crcc_w_d_w(a, b) | ||
| 171 | } | 62 | } |
| 172 | 63 | ||
| 173 | /// Generates the cache operation instruction | 64 | /// Generates the cache operation instruction |
| ... | @@ -178,38 +69,6 @@ pub unsafe fn cacop<const IMM12: i64>(a: i64, b: i64) { | ... | @@ -178,38 +69,6 @@ pub unsafe fn cacop<const IMM12: i64>(a: i64, b: i64) { |
| 178 | __cacop(a, b, IMM12); | 69 | __cacop(a, b, IMM12); |
| 179 | } | 70 | } |
| 180 | 71 | ||
| 181 | /// Generates the memory barrier instruction | ||
| 182 | #[inline] | ||
| 183 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 184 | pub unsafe fn dbar<const IMM15: i32>() { | ||
| 185 | static_assert_uimm_bits!(IMM15, 15); | ||
| 186 | __dbar(IMM15); | ||
| 187 | } | ||
| 188 | |||
| 189 | /// Generates the instruction-fetch barrier instruction | ||
| 190 | #[inline] | ||
| 191 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 192 | pub unsafe fn ibar<const IMM15: i32>() { | ||
| 193 | static_assert_uimm_bits!(IMM15, 15); | ||
| 194 | __ibar(IMM15); | ||
| 195 | } | ||
| 196 | |||
| 197 | /// Moves data from a GPR to the FCSR | ||
| 198 | #[inline] | ||
| 199 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 200 | pub unsafe fn movgr2fcsr<const IMM5: i32>(a: i32) { | ||
| 201 | static_assert_uimm_bits!(IMM5, 5); | ||
| 202 | __movgr2fcsr(IMM5, a); | ||
| 203 | } | ||
| 204 | |||
| 205 | /// Moves data from a FCSR to the GPR | ||
| 206 | #[inline] | ||
| 207 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 208 | pub unsafe fn movfcsr2gr<const IMM5: i32>() -> i32 { | ||
| 209 | static_assert_uimm_bits!(IMM5, 5); | ||
| 210 | __movfcsr2gr(IMM5) | ||
| 211 | } | ||
| 212 | |||
| 213 | /// Reads the CSR | 72 | /// Reads the CSR |
| 214 | #[inline] | 73 | #[inline] |
| 215 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 74 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| ... | @@ -234,27 +93,6 @@ pub unsafe fn csrxchg<const IMM14: i32>(a: i64, b: i64) -> i64 { | ... | @@ -234,27 +93,6 @@ pub unsafe fn csrxchg<const IMM14: i32>(a: i64, b: i64) -> i64 { |
| 234 | __csrxchg(a, b, IMM14) | 93 | __csrxchg(a, b, IMM14) |
| 235 | } | 94 | } |
| 236 | 95 | ||
| 237 | /// Reads the 8-bit IO-CSR | ||
| 238 | #[inline] | ||
| 239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 240 | pub unsafe fn iocsrrd_b(a: i32) -> i32 { | ||
| 241 | __iocsrrd_b(a) | ||
| 242 | } | ||
| 243 | |||
| 244 | /// Reads the 16-bit IO-CSR | ||
| 245 | #[inline] | ||
| 246 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 247 | pub unsafe fn iocsrrd_h(a: i32) -> i32 { | ||
| 248 | __iocsrrd_h(a) | ||
| 249 | } | ||
| 250 | |||
| 251 | /// Reads the 32-bit IO-CSR | ||
| 252 | #[inline] | ||
| 253 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 254 | pub unsafe fn iocsrrd_w(a: i32) -> i32 { | ||
| 255 | __iocsrrd_w(a) | ||
| 256 | } | ||
| 257 | |||
| 258 | /// Reads the 64-bit IO-CSR | 96 | /// Reads the 64-bit IO-CSR |
| 259 | #[inline] | 97 | #[inline] |
| 260 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 98 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| ... | @@ -262,27 +100,6 @@ pub unsafe fn iocsrrd_d(a: i32) -> i64 { | ... | @@ -262,27 +100,6 @@ pub unsafe fn iocsrrd_d(a: i32) -> i64 { |
| 262 | __iocsrrd_d(a) | 100 | __iocsrrd_d(a) |
| 263 | } | 101 | } |
| 264 | 102 | ||
| 265 | /// Writes the 8-bit IO-CSR | ||
| 266 | #[inline] | ||
| 267 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 268 | pub unsafe fn iocsrwr_b(a: i32, b: i32) { | ||
| 269 | __iocsrwr_b(a, b) | ||
| 270 | } | ||
| 271 | |||
| 272 | /// Writes the 16-bit IO-CSR | ||
| 273 | #[inline] | ||
| 274 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 275 | pub unsafe fn iocsrwr_h(a: i32, b: i32) { | ||
| 276 | __iocsrwr_h(a, b) | ||
| 277 | } | ||
| 278 | |||
| 279 | /// Writes the 32-bit IO-CSR | ||
| 280 | #[inline] | ||
| 281 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 282 | pub unsafe fn iocsrwr_w(a: i32, b: i32) { | ||
| 283 | __iocsrwr_w(a, b) | ||
| 284 | } | ||
| 285 | |||
| 286 | /// Writes the 64-bit IO-CSR | 103 | /// Writes the 64-bit IO-CSR |
| 287 | #[inline] | 104 | #[inline] |
| 288 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 105 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| ... | @@ -290,29 +107,6 @@ pub unsafe fn iocsrwr_d(a: i64, b: i32) { | ... | @@ -290,29 +107,6 @@ pub unsafe fn iocsrwr_d(a: i64, b: i32) { |
| 290 | __iocsrwr_d(a, b) | 107 | __iocsrwr_d(a, b) |
| 291 | } | 108 | } |
| 292 | 109 | ||
| 293 | /// Generates the breakpoint instruction | ||
| 294 | #[inline] | ||
| 295 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 296 | pub unsafe fn brk<const IMM15: i32>() { | ||
| 297 | static_assert_uimm_bits!(IMM15, 15); | ||
| 298 | __break(IMM15); | ||
| 299 | } | ||
| 300 | |||
| 301 | /// Reads the CPU configuration register | ||
| 302 | #[inline] | ||
| 303 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 304 | pub unsafe fn cpucfg(a: i32) -> i32 { | ||
| 305 | __cpucfg(a) | ||
| 306 | } | ||
| 307 | |||
| 308 | /// Generates the syscall instruction | ||
| 309 | #[inline] | ||
| 310 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 311 | pub unsafe fn syscall<const IMM15: i32>() { | ||
| 312 | static_assert_uimm_bits!(IMM15, 15); | ||
| 313 | __syscall(IMM15); | ||
| 314 | } | ||
| 315 | |||
| 316 | /// Generates the less-than-or-equal asseration instruction | 110 | /// Generates the less-than-or-equal asseration instruction |
| 317 | #[inline] | 111 | #[inline] |
| 318 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 112 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| ... | @@ -342,35 +136,3 @@ pub unsafe fn lddir<const B: i64>(a: i64) -> i64 { | ... | @@ -342,35 +136,3 @@ pub unsafe fn lddir<const B: i64>(a: i64) -> i64 { |
| 342 | pub unsafe fn ldpte<const B: i64>(a: i64) { | 136 | pub unsafe fn ldpte<const B: i64>(a: i64) { |
| 343 | __ldpte(a, B) | 137 | __ldpte(a, B) |
| 344 | } | 138 | } |
| 345 | |||
| 346 | /// Calculate the approximate single-precision result of 1.0 divided | ||
| 347 | #[inline] | ||
| 348 | #[target_feature(enable = "frecipe")] | ||
| 349 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 350 | pub unsafe fn frecipe_s(a: f32) -> f32 { | ||
| 351 | __frecipe_s(a) | ||
| 352 | } | ||
| 353 | |||
| 354 | /// Calculate the approximate double-precision result of 1.0 divided | ||
| 355 | #[inline] | ||
| 356 | #[target_feature(enable = "frecipe")] | ||
| 357 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 358 | pub unsafe fn frecipe_d(a: f64) -> f64 { | ||
| 359 | __frecipe_d(a) | ||
| 360 | } | ||
| 361 | |||
| 362 | /// Calculate the approximate single-precision result of dividing 1.0 by the square root | ||
| 363 | #[inline] | ||
| 364 | #[target_feature(enable = "frecipe")] | ||
| 365 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 366 | pub unsafe fn frsqrte_s(a: f32) -> f32 { | ||
| 367 | __frsqrte_s(a) | ||
| 368 | } | ||
| 369 | |||
| 370 | /// Calculate the approximate double-precision result of dividing 1.0 by the square root | ||
| 371 | #[inline] | ||
| 372 | #[target_feature(enable = "frecipe")] | ||
| 373 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 374 | pub unsafe fn frsqrte_d(a: f64) -> f64 { | ||
| 375 | __frsqrte_d(a) | ||
| 376 | } |
library/stdarch/crates/core_arch/src/loongarch_shared/mod.rs created+242| ... | @@ -0,0 +1,242 @@ | ||
| 1 | //! `Shared LoongArch` intrinsics | ||
| 2 | |||
| 3 | use crate::arch::asm; | ||
| 4 | |||
| 5 | /// Reads the lower 32-bit stable counter value and the counter ID | ||
| 6 | #[inline] | ||
| 7 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 8 | pub fn rdtimel_w() -> (i32, isize) { | ||
| 9 | let (val, tid): (i32, isize); | ||
| 10 | unsafe { asm!("rdtimel.w {}, {}", out(reg) val, out(reg) tid, options(readonly, nostack)) }; | ||
| 11 | (val, tid) | ||
| 12 | } | ||
| 13 | |||
| 14 | /// Reads the upper 32-bit stable counter value and the counter ID | ||
| 15 | #[inline] | ||
| 16 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 17 | pub fn rdtimeh_w() -> (i32, isize) { | ||
| 18 | let (val, tid): (i32, isize); | ||
| 19 | unsafe { asm!("rdtimeh.w {}, {}", out(reg) val, out(reg) tid, options(readonly, nostack)) }; | ||
| 20 | (val, tid) | ||
| 21 | } | ||
| 22 | |||
| 23 | #[allow(improper_ctypes)] | ||
| 24 | unsafe extern "unadjusted" { | ||
| 25 | #[link_name = "llvm.loongarch.crc.w.b.w"] | ||
| 26 | fn __crc_w_b_w(a: i32, b: i32) -> i32; | ||
| 27 | #[link_name = "llvm.loongarch.crc.w.h.w"] | ||
| 28 | fn __crc_w_h_w(a: i32, b: i32) -> i32; | ||
| 29 | #[link_name = "llvm.loongarch.crc.w.w.w"] | ||
| 30 | fn __crc_w_w_w(a: i32, b: i32) -> i32; | ||
| 31 | #[link_name = "llvm.loongarch.crcc.w.b.w"] | ||
| 32 | fn __crcc_w_b_w(a: i32, b: i32) -> i32; | ||
| 33 | #[link_name = "llvm.loongarch.crcc.w.h.w"] | ||
| 34 | fn __crcc_w_h_w(a: i32, b: i32) -> i32; | ||
| 35 | #[link_name = "llvm.loongarch.crcc.w.w.w"] | ||
| 36 | fn __crcc_w_w_w(a: i32, b: i32) -> i32; | ||
| 37 | #[link_name = "llvm.loongarch.dbar"] | ||
| 38 | fn __dbar(a: i32); | ||
| 39 | #[link_name = "llvm.loongarch.ibar"] | ||
| 40 | fn __ibar(a: i32); | ||
| 41 | #[link_name = "llvm.loongarch.movgr2fcsr"] | ||
| 42 | fn __movgr2fcsr(a: i32, b: i32); | ||
| 43 | #[link_name = "llvm.loongarch.movfcsr2gr"] | ||
| 44 | fn __movfcsr2gr(a: i32) -> i32; | ||
| 45 | #[link_name = "llvm.loongarch.iocsrrd.b"] | ||
| 46 | fn __iocsrrd_b(a: i32) -> i32; | ||
| 47 | #[link_name = "llvm.loongarch.iocsrrd.h"] | ||
| 48 | fn __iocsrrd_h(a: i32) -> i32; | ||
| 49 | #[link_name = "llvm.loongarch.iocsrrd.w"] | ||
| 50 | fn __iocsrrd_w(a: i32) -> i32; | ||
| 51 | #[link_name = "llvm.loongarch.iocsrwr.b"] | ||
| 52 | fn __iocsrwr_b(a: i32, b: i32); | ||
| 53 | #[link_name = "llvm.loongarch.iocsrwr.h"] | ||
| 54 | fn __iocsrwr_h(a: i32, b: i32); | ||
| 55 | #[link_name = "llvm.loongarch.iocsrwr.w"] | ||
| 56 | fn __iocsrwr_w(a: i32, b: i32); | ||
| 57 | #[link_name = "llvm.loongarch.break"] | ||
| 58 | fn __break(a: i32); | ||
| 59 | #[link_name = "llvm.loongarch.cpucfg"] | ||
| 60 | fn __cpucfg(a: i32) -> i32; | ||
| 61 | #[link_name = "llvm.loongarch.syscall"] | ||
| 62 | fn __syscall(a: i32); | ||
| 63 | #[link_name = "llvm.loongarch.frecipe.s"] | ||
| 64 | fn __frecipe_s(a: f32) -> f32; | ||
| 65 | #[link_name = "llvm.loongarch.frecipe.d"] | ||
| 66 | fn __frecipe_d(a: f64) -> f64; | ||
| 67 | #[link_name = "llvm.loongarch.frsqrte.s"] | ||
| 68 | fn __frsqrte_s(a: f32) -> f32; | ||
| 69 | #[link_name = "llvm.loongarch.frsqrte.d"] | ||
| 70 | fn __frsqrte_d(a: f64) -> f64; | ||
| 71 | } | ||
| 72 | |||
| 73 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) | ||
| 74 | #[inline] | ||
| 75 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 76 | pub fn crc_w_b_w(a: i32, b: i32) -> i32 { | ||
| 77 | unsafe { __crc_w_b_w(a, b) } | ||
| 78 | } | ||
| 79 | |||
| 80 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) | ||
| 81 | #[inline] | ||
| 82 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 83 | pub fn crc_w_h_w(a: i32, b: i32) -> i32 { | ||
| 84 | unsafe { __crc_w_h_w(a, b) } | ||
| 85 | } | ||
| 86 | |||
| 87 | /// Calculate the CRC value using the IEEE 802.3 polynomial (0xEDB88320) | ||
| 88 | #[inline] | ||
| 89 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 90 | pub fn crc_w_w_w(a: i32, b: i32) -> i32 { | ||
| 91 | unsafe { __crc_w_w_w(a, b) } | ||
| 92 | } | ||
| 93 | |||
| 94 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) | ||
| 95 | #[inline] | ||
| 96 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 97 | pub fn crcc_w_b_w(a: i32, b: i32) -> i32 { | ||
| 98 | unsafe { __crcc_w_b_w(a, b) } | ||
| 99 | } | ||
| 100 | |||
| 101 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) | ||
| 102 | #[inline] | ||
| 103 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 104 | pub fn crcc_w_h_w(a: i32, b: i32) -> i32 { | ||
| 105 | unsafe { __crcc_w_h_w(a, b) } | ||
| 106 | } | ||
| 107 | |||
| 108 | /// Calculate the CRC value using the Castagnoli polynomial (0x82F63B78) | ||
| 109 | #[inline] | ||
| 110 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 111 | pub fn crcc_w_w_w(a: i32, b: i32) -> i32 { | ||
| 112 | unsafe { __crcc_w_w_w(a, b) } | ||
| 113 | } | ||
| 114 | |||
| 115 | /// Generates the memory barrier instruction | ||
| 116 | #[inline] | ||
| 117 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 118 | pub fn dbar<const IMM15: i32>() { | ||
| 119 | static_assert_uimm_bits!(IMM15, 15); | ||
| 120 | unsafe { __dbar(IMM15) }; | ||
| 121 | } | ||
| 122 | |||
| 123 | /// Generates the instruction-fetch barrier instruction | ||
| 124 | #[inline] | ||
| 125 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 126 | pub fn ibar<const IMM15: i32>() { | ||
| 127 | static_assert_uimm_bits!(IMM15, 15); | ||
| 128 | unsafe { __ibar(IMM15) }; | ||
| 129 | } | ||
| 130 | |||
| 131 | /// Moves data from a GPR to the FCSR | ||
| 132 | #[inline] | ||
| 133 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 134 | pub unsafe fn movgr2fcsr<const IMM5: i32>(a: i32) { | ||
| 135 | static_assert_uimm_bits!(IMM5, 5); | ||
| 136 | __movgr2fcsr(IMM5, a); | ||
| 137 | } | ||
| 138 | |||
| 139 | /// Moves data from a FCSR to the GPR | ||
| 140 | #[inline] | ||
| 141 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 142 | pub fn movfcsr2gr<const IMM5: i32>() -> i32 { | ||
| 143 | static_assert_uimm_bits!(IMM5, 5); | ||
| 144 | unsafe { __movfcsr2gr(IMM5) } | ||
| 145 | } | ||
| 146 | |||
| 147 | /// Reads the 8-bit IO-CSR | ||
| 148 | #[inline] | ||
| 149 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 150 | pub unsafe fn iocsrrd_b(a: i32) -> i32 { | ||
| 151 | __iocsrrd_b(a) | ||
| 152 | } | ||
| 153 | |||
| 154 | /// Reads the 16-bit IO-CSR | ||
| 155 | #[inline] | ||
| 156 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 157 | pub unsafe fn iocsrrd_h(a: i32) -> i32 { | ||
| 158 | __iocsrrd_h(a) | ||
| 159 | } | ||
| 160 | |||
| 161 | /// Reads the 32-bit IO-CSR | ||
| 162 | #[inline] | ||
| 163 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 164 | pub unsafe fn iocsrrd_w(a: i32) -> i32 { | ||
| 165 | __iocsrrd_w(a) | ||
| 166 | } | ||
| 167 | |||
| 168 | /// Writes the 8-bit IO-CSR | ||
| 169 | #[inline] | ||
| 170 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 171 | pub unsafe fn iocsrwr_b(a: i32, b: i32) { | ||
| 172 | __iocsrwr_b(a, b) | ||
| 173 | } | ||
| 174 | |||
| 175 | /// Writes the 16-bit IO-CSR | ||
| 176 | #[inline] | ||
| 177 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 178 | pub unsafe fn iocsrwr_h(a: i32, b: i32) { | ||
| 179 | __iocsrwr_h(a, b) | ||
| 180 | } | ||
| 181 | |||
| 182 | /// Writes the 32-bit IO-CSR | ||
| 183 | #[inline] | ||
| 184 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 185 | pub unsafe fn iocsrwr_w(a: i32, b: i32) { | ||
| 186 | __iocsrwr_w(a, b) | ||
| 187 | } | ||
| 188 | |||
| 189 | /// Generates the breakpoint instruction | ||
| 190 | #[inline] | ||
| 191 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 192 | pub unsafe fn brk<const IMM15: i32>() { | ||
| 193 | static_assert_uimm_bits!(IMM15, 15); | ||
| 194 | __break(IMM15); | ||
| 195 | } | ||
| 196 | |||
| 197 | /// Reads the CPU configuration register | ||
| 198 | #[inline] | ||
| 199 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 200 | pub fn cpucfg(a: i32) -> i32 { | ||
| 201 | unsafe { __cpucfg(a) } | ||
| 202 | } | ||
| 203 | |||
| 204 | /// Generates the syscall instruction | ||
| 205 | #[inline] | ||
| 206 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 207 | pub unsafe fn syscall<const IMM15: i32>() { | ||
| 208 | static_assert_uimm_bits!(IMM15, 15); | ||
| 209 | __syscall(IMM15); | ||
| 210 | } | ||
| 211 | |||
| 212 | /// Calculate the approximate single-precision result of 1.0 divided | ||
| 213 | #[inline] | ||
| 214 | #[target_feature(enable = "frecipe")] | ||
| 215 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 216 | pub fn frecipe_s(a: f32) -> f32 { | ||
| 217 | unsafe { __frecipe_s(a) } | ||
| 218 | } | ||
| 219 | |||
| 220 | /// Calculate the approximate double-precision result of 1.0 divided | ||
| 221 | #[inline] | ||
| 222 | #[target_feature(enable = "frecipe")] | ||
| 223 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 224 | pub fn frecipe_d(a: f64) -> f64 { | ||
| 225 | unsafe { __frecipe_d(a) } | ||
| 226 | } | ||
| 227 | |||
| 228 | /// Calculate the approximate single-precision result of dividing 1.0 by the square root | ||
| 229 | #[inline] | ||
| 230 | #[target_feature(enable = "frecipe")] | ||
| 231 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 232 | pub fn frsqrte_s(a: f32) -> f32 { | ||
| 233 | unsafe { __frsqrte_s(a) } | ||
| 234 | } | ||
| 235 | |||
| 236 | /// Calculate the approximate double-precision result of dividing 1.0 by the square root | ||
| 237 | #[inline] | ||
| 238 | #[target_feature(enable = "frecipe")] | ||
| 239 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 240 | pub fn frsqrte_d(a: f64) -> f64 { | ||
| 241 | unsafe { __frsqrte_d(a) } | ||
| 242 | } | ||
library/stdarch/crates/core_arch/src/mod.rs+20-1| ... | @@ -16,6 +16,9 @@ mod riscv_shared; | ... | @@ -16,6 +16,9 @@ mod riscv_shared; |
| 16 | ))] | 16 | ))] |
| 17 | mod arm_shared; | 17 | mod arm_shared; |
| 18 | 18 | ||
| 19 | #[cfg(any(target_arch = "loongarch32", target_arch = "loongarch64", doc))] | ||
| 20 | mod loongarch_shared; | ||
| 21 | |||
| 19 | mod simd; | 22 | mod simd; |
| 20 | 23 | ||
| 21 | #[doc = include_str!("core_arch_docs.md")] | 24 | #[doc = include_str!("core_arch_docs.md")] |
| ... | @@ -271,13 +274,25 @@ pub mod arch { | ... | @@ -271,13 +274,25 @@ pub mod arch { |
| 271 | pub use crate::core_arch::nvptx::*; | 274 | pub use crate::core_arch::nvptx::*; |
| 272 | } | 275 | } |
| 273 | 276 | ||
| 274 | /// Platform-specific intrinsics for the `loongarch` platform. | 277 | /// Platform-specific intrinsics for the `loongarch32` platform. |
| 278 | /// | ||
| 279 | /// See the [module documentation](../index.html) for more details. | ||
| 280 | #[cfg(any(target_arch = "loongarch32", doc))] | ||
| 281 | #[doc(cfg(target_arch = "loongarch32"))] | ||
| 282 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | ||
| 283 | pub mod loongarch32 { | ||
| 284 | pub use crate::core_arch::loongarch_shared::*; | ||
| 285 | pub use crate::core_arch::loongarch32::*; | ||
| 286 | } | ||
| 287 | |||
| 288 | /// Platform-specific intrinsics for the `loongarch64` platform. | ||
| 275 | /// | 289 | /// |
| 276 | /// See the [module documentation](../index.html) for more details. | 290 | /// See the [module documentation](../index.html) for more details. |
| 277 | #[cfg(any(target_arch = "loongarch64", doc))] | 291 | #[cfg(any(target_arch = "loongarch64", doc))] |
| 278 | #[doc(cfg(target_arch = "loongarch64"))] | 292 | #[doc(cfg(target_arch = "loongarch64"))] |
| 279 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] | 293 | #[unstable(feature = "stdarch_loongarch", issue = "117427")] |
| 280 | pub mod loongarch64 { | 294 | pub mod loongarch64 { |
| 295 | pub use crate::core_arch::loongarch_shared::*; | ||
| 281 | pub use crate::core_arch::loongarch64::*; | 296 | pub use crate::core_arch::loongarch64::*; |
| 282 | } | 297 | } |
| 283 | 298 | ||
| ... | @@ -334,6 +349,10 @@ mod powerpc64; | ... | @@ -334,6 +349,10 @@ mod powerpc64; |
| 334 | #[doc(cfg(target_arch = "nvptx64"))] | 349 | #[doc(cfg(target_arch = "nvptx64"))] |
| 335 | mod nvptx; | 350 | mod nvptx; |
| 336 | 351 | ||
| 352 | #[cfg(any(target_arch = "loongarch32", doc))] | ||
| 353 | #[doc(cfg(target_arch = "loongarch32"))] | ||
| 354 | mod loongarch32; | ||
| 355 | |||
| 337 | #[cfg(any(target_arch = "loongarch64", doc))] | 356 | #[cfg(any(target_arch = "loongarch64", doc))] |
| 338 | #[doc(cfg(target_arch = "loongarch64"))] | 357 | #[doc(cfg(target_arch = "loongarch64"))] |
| 339 | mod loongarch64; | 358 | mod loongarch64; |
library/stdarch/crates/core_arch/src/s390x/vector.rs+18-7| ... | @@ -1181,6 +1181,20 @@ mod sealed { | ... | @@ -1181,6 +1181,20 @@ mod sealed { |
| 1181 | 1181 | ||
| 1182 | impl_vec_trait! { [VectorOrc vec_orc]+ 2c (orc) } | 1182 | impl_vec_trait! { [VectorOrc vec_orc]+ 2c (orc) } |
| 1183 | 1183 | ||
| 1184 | // Z vector intrinsic C23 math.h LLVM IR ISO/IEC 60559 operation inexact vfidb parameters | ||
| 1185 | // | ||
| 1186 | // vec_rint rint llvm.rint roundToIntegralExact yes 0, 0 | ||
| 1187 | // vec_roundc nearbyint llvm.nearbyint n/a no 4, 0 | ||
| 1188 | // vec_floor / vec_roundm floor llvm.floor roundToIntegralTowardNegative no 4, 7 | ||
| 1189 | // vec_ceil / vec_roundp ceil llvm.ceil roundToIntegralTowardPositive no 4, 6 | ||
| 1190 | // vec_trunc / vec_roundz trunc llvm.trunc roundToIntegralTowardZero no 4, 5 | ||
| 1191 | // vec_round roundeven llvm.roundeven roundToIntegralTiesToEven no 4, 4 | ||
| 1192 | // n/a round llvm.round roundToIntegralTiesAway no 4, 1 | ||
| 1193 | |||
| 1194 | // `simd_round_ties_even` is implemented as `llvm.rint`. | ||
| 1195 | test_impl! { vec_rint_f32 (a: vector_float) -> vector_float [simd_round_ties_even, "vector-enhancements-1" vfisb] } | ||
| 1196 | test_impl! { vec_rint_f64 (a: vector_double) -> vector_double [simd_round_ties_even, vfidb] } | ||
| 1197 | |||
| 1184 | test_impl! { vec_roundc_f32 (a: vector_float) -> vector_float [nearbyint_v4f32, "vector-enhancements-1" vfisb] } | 1198 | test_impl! { vec_roundc_f32 (a: vector_float) -> vector_float [nearbyint_v4f32, "vector-enhancements-1" vfisb] } |
| 1185 | test_impl! { vec_roundc_f64 (a: vector_double) -> vector_double [nearbyint_v2f64, vfidb] } | 1199 | test_impl! { vec_roundc_f64 (a: vector_double) -> vector_double [nearbyint_v2f64, vfidb] } |
| 1186 | 1200 | ||
| ... | @@ -1189,9 +1203,6 @@ mod sealed { | ... | @@ -1189,9 +1203,6 @@ mod sealed { |
| 1189 | test_impl! { vec_round_f32 (a: vector_float) -> vector_float [roundeven_v4f32, _] } | 1203 | test_impl! { vec_round_f32 (a: vector_float) -> vector_float [roundeven_v4f32, _] } |
| 1190 | test_impl! { vec_round_f64 (a: vector_double) -> vector_double [roundeven_v2f64, _] } | 1204 | test_impl! { vec_round_f64 (a: vector_double) -> vector_double [roundeven_v2f64, _] } |
| 1191 | 1205 | ||
| 1192 | test_impl! { vec_rint_f32 (a: vector_float) -> vector_float [simd_round_ties_even, "vector-enhancements-1" vfisb] } | ||
| 1193 | test_impl! { vec_rint_f64 (a: vector_double) -> vector_double [simd_round_ties_even, vfidb] } | ||
| 1194 | |||
| 1195 | #[unstable(feature = "stdarch_s390x", issue = "135681")] | 1206 | #[unstable(feature = "stdarch_s390x", issue = "135681")] |
| 1196 | pub trait VectorRoundc { | 1207 | pub trait VectorRoundc { |
| 1197 | unsafe fn vec_roundc(self) -> Self; | 1208 | unsafe fn vec_roundc(self) -> Self; |
| ... | @@ -2254,14 +2265,14 @@ mod sealed { | ... | @@ -2254,14 +2265,14 @@ mod sealed { |
| 2254 | 2265 | ||
| 2255 | #[inline] | 2266 | #[inline] |
| 2256 | #[target_feature(enable = "vector")] | 2267 | #[target_feature(enable = "vector")] |
| 2257 | #[cfg_attr(test, assert_instr("vlbb"))] | 2268 | #[cfg_attr(test, assert_instr(vlbb))] |
| 2258 | unsafe fn test_vec_load_bndry(ptr: *const i32) -> MaybeUninit<vector_signed_int> { | 2269 | unsafe fn test_vec_load_bndry(ptr: *const i32) -> MaybeUninit<vector_signed_int> { |
| 2259 | vector_signed_int::vec_load_bndry::<512>(ptr) | 2270 | vector_signed_int::vec_load_bndry::<512>(ptr) |
| 2260 | } | 2271 | } |
| 2261 | 2272 | ||
| 2262 | #[inline] | 2273 | #[inline] |
| 2263 | #[target_feature(enable = "vector")] | 2274 | #[target_feature(enable = "vector")] |
| 2264 | #[cfg_attr(test, assert_instr(vst))] | 2275 | #[cfg_attr(test, assert_instr(vstl))] |
| 2265 | unsafe fn test_vec_store_len(vector: vector_signed_int, ptr: *mut i32, byte_count: u32) { | 2276 | unsafe fn test_vec_store_len(vector: vector_signed_int, ptr: *mut i32, byte_count: u32) { |
| 2266 | vector.vec_store_len(ptr, byte_count) | 2277 | vector.vec_store_len(ptr, byte_count) |
| 2267 | } | 2278 | } |
| ... | @@ -2787,11 +2798,11 @@ mod sealed { | ... | @@ -2787,11 +2798,11 @@ mod sealed { |
| 2787 | } | 2798 | } |
| 2788 | 2799 | ||
| 2789 | test_impl! { vec_vmal_ib(a: vector_signed_char, b: vector_signed_char, c: vector_signed_char) -> vector_signed_char [simd_mladd, vmalb ] } | 2800 | test_impl! { vec_vmal_ib(a: vector_signed_char, b: vector_signed_char, c: vector_signed_char) -> vector_signed_char [simd_mladd, vmalb ] } |
| 2790 | test_impl! { vec_vmal_ih(a: vector_signed_short, b: vector_signed_short, c: vector_signed_short) -> vector_signed_short[simd_mladd, vmalh ] } | 2801 | test_impl! { vec_vmal_ih(a: vector_signed_short, b: vector_signed_short, c: vector_signed_short) -> vector_signed_short[simd_mladd, vmalhw ] } |
| 2791 | test_impl! { vec_vmal_if(a: vector_signed_int, b: vector_signed_int, c: vector_signed_int) -> vector_signed_int [simd_mladd, vmalf ] } | 2802 | test_impl! { vec_vmal_if(a: vector_signed_int, b: vector_signed_int, c: vector_signed_int) -> vector_signed_int [simd_mladd, vmalf ] } |
| 2792 | 2803 | ||
| 2793 | test_impl! { vec_vmal_ub(a: vector_unsigned_char, b: vector_unsigned_char, c: vector_unsigned_char) -> vector_unsigned_char [simd_mladd, vmalb ] } | 2804 | test_impl! { vec_vmal_ub(a: vector_unsigned_char, b: vector_unsigned_char, c: vector_unsigned_char) -> vector_unsigned_char [simd_mladd, vmalb ] } |
| 2794 | test_impl! { vec_vmal_uh(a: vector_unsigned_short, b: vector_unsigned_short, c: vector_unsigned_short) -> vector_unsigned_short[simd_mladd, vmalh ] } | 2805 | test_impl! { vec_vmal_uh(a: vector_unsigned_short, b: vector_unsigned_short, c: vector_unsigned_short) -> vector_unsigned_short[simd_mladd, vmalhw ] } |
| 2795 | test_impl! { vec_vmal_uf(a: vector_unsigned_int, b: vector_unsigned_int, c: vector_unsigned_int) -> vector_unsigned_int [simd_mladd, vmalf ] } | 2806 | test_impl! { vec_vmal_uf(a: vector_unsigned_int, b: vector_unsigned_int, c: vector_unsigned_int) -> vector_unsigned_int [simd_mladd, vmalf ] } |
| 2796 | 2807 | ||
| 2797 | impl_mul!([VectorMladd vec_mladd] vec_vmal_ib (vector_signed_char, vector_signed_char, vector_signed_char) -> vector_signed_char ); | 2808 | impl_mul!([VectorMladd vec_mladd] vec_vmal_ib (vector_signed_char, vector_signed_char, vector_signed_char) -> vector_signed_char ); |
library/stdarch/crates/intrinsic-test/src/arm/compile.rs+35-48| ... | @@ -1,64 +1,51 @@ | ... | @@ -1,64 +1,51 @@ |
| 1 | use crate::common::compile_c::CompilationCommandBuilder; | 1 | use crate::common::cli::ProcessedCli; |
| 2 | use crate::common::gen_c::compile_c_programs; | 2 | use crate::common::compile_c::{CompilationCommandBuilder, CppCompilation}; |
| 3 | |||
| 4 | pub fn build_cpp_compilation(config: &ProcessedCli) -> Option<CppCompilation> { | ||
| 5 | let cpp_compiler = config.cpp_compiler.as_ref()?; | ||
| 3 | 6 | ||
| 4 | pub fn compile_c_arm( | ||
| 5 | intrinsics_name_list: &[String], | ||
| 6 | compiler: &str, | ||
| 7 | target: &str, | ||
| 8 | cxx_toolchain_dir: Option<&str>, | ||
| 9 | ) -> bool { | ||
| 10 | // -ffp-contract=off emulates Rust's approach of not fusing separate mul-add operations | 7 | // -ffp-contract=off emulates Rust's approach of not fusing separate mul-add operations |
| 11 | let mut command = CompilationCommandBuilder::new() | 8 | let mut command = CompilationCommandBuilder::new() |
| 12 | .add_arch_flags(vec!["armv8.6-a", "crypto", "crc", "dotprod", "fp16"]) | 9 | .add_arch_flags(vec!["armv8.6-a", "crypto", "crc", "dotprod", "fp16"]) |
| 13 | .set_compiler(compiler) | 10 | .set_compiler(cpp_compiler) |
| 14 | .set_target(target) | 11 | .set_target(&config.target) |
| 15 | .set_opt_level("2") | 12 | .set_opt_level("2") |
| 16 | .set_cxx_toolchain_dir(cxx_toolchain_dir) | 13 | .set_cxx_toolchain_dir(config.cxx_toolchain_dir.as_deref()) |
| 17 | .set_project_root("c_programs") | 14 | .set_project_root("c_programs") |
| 18 | .add_extra_flags(vec!["-ffp-contract=off", "-Wno-narrowing"]); | 15 | .add_extra_flags(vec!["-ffp-contract=off", "-Wno-narrowing"]); |
| 19 | 16 | ||
| 20 | if !target.contains("v7") { | 17 | if !config.target.contains("v7") { |
| 21 | command = command.add_arch_flags(vec!["faminmax", "lut", "sha3"]); | 18 | command = command.add_arch_flags(vec!["faminmax", "lut", "sha3"]); |
| 22 | } | 19 | } |
| 23 | 20 | ||
| 24 | /* | 21 | if !cpp_compiler.contains("clang") { |
| 25 | * clang++ cannot link an aarch64_be object file, so we invoke | ||
| 26 | * aarch64_be-unknown-linux-gnu's C++ linker. This ensures that we | ||
| 27 | * are testing the intrinsics against LLVM. | ||
| 28 | * | ||
| 29 | * Note: setting `--sysroot=<...>` which is the obvious thing to do | ||
| 30 | * does not work as it gets caught up with `#include_next <stdlib.h>` | ||
| 31 | * not existing... | ||
| 32 | */ | ||
| 33 | if target.contains("aarch64_be") { | ||
| 34 | command = command | ||
| 35 | .set_linker( | ||
| 36 | cxx_toolchain_dir.unwrap_or("").to_string() + "/bin/aarch64_be-none-linux-gnu-g++", | ||
| 37 | ) | ||
| 38 | .set_include_paths(vec![ | ||
| 39 | "/include", | ||
| 40 | "/aarch64_be-none-linux-gnu/include", | ||
| 41 | "/aarch64_be-none-linux-gnu/include/c++/14.2.1", | ||
| 42 | "/aarch64_be-none-linux-gnu/include/c++/14.2.1/aarch64_be-none-linux-gnu", | ||
| 43 | "/aarch64_be-none-linux-gnu/include/c++/14.2.1/backward", | ||
| 44 | "/aarch64_be-none-linux-gnu/libc/usr/include", | ||
| 45 | ]); | ||
| 46 | } | ||
| 47 | |||
| 48 | if !compiler.contains("clang") { | ||
| 49 | command = command.add_extra_flag("-flax-vector-conversions"); | 22 | command = command.add_extra_flag("-flax-vector-conversions"); |
| 50 | } | 23 | } |
| 51 | 24 | ||
| 52 | let compiler_commands = intrinsics_name_list | 25 | let mut cpp_compiler = command.into_cpp_compilation(); |
| 53 | .iter() | 26 | |
| 54 | .map(|intrinsic_name| { | 27 | if config.target.contains("aarch64_be") { |
| 55 | command | 28 | let Some(ref cxx_toolchain_dir) = config.cxx_toolchain_dir else { |
| 56 | .clone() | 29 | panic!( |
| 57 | .set_input_name(intrinsic_name) | 30 | "target `{}` must specify `cxx_toolchain_dir`", |
| 58 | .set_output_name(intrinsic_name) | 31 | config.target |
| 59 | .make_string() | 32 | ) |
| 60 | }) | 33 | }; |
| 61 | .collect::<Vec<_>>(); | 34 | |
| 35 | cpp_compiler.command_mut().args([ | ||
| 36 | &format!("--sysroot={cxx_toolchain_dir}/aarch64_be-none-linux-gnu/libc"), | ||
| 37 | "--include-directory", | ||
| 38 | &format!("{cxx_toolchain_dir}/aarch64_be-none-linux-gnu/include/c++/14.3.1"), | ||
| 39 | "--include-directory", | ||
| 40 | &format!("{cxx_toolchain_dir}/aarch64_be-none-linux-gnu/include/c++/14.3.1/aarch64_be-none-linux-gnu"), | ||
| 41 | "-L", | ||
| 42 | &format!("{cxx_toolchain_dir}/lib/gcc/aarch64_be-none-linux-gnu/14.3.1"), | ||
| 43 | "-L", | ||
| 44 | &format!("{cxx_toolchain_dir}/aarch64_be-none-linux-gnu/libc/usr/lib"), | ||
| 45 | "-B", | ||
| 46 | &format!("{cxx_toolchain_dir}/lib/gcc/aarch64_be-none-linux-gnu/14.3.1"), | ||
| 47 | ]); | ||
| 48 | } | ||
| 62 | 49 | ||
| 63 | compile_c_programs(&compiler_commands) | 50 | Some(cpp_compiler) |
| 64 | } | 51 | } |
library/stdarch/crates/intrinsic-test/src/arm/config.rs-1| ... | @@ -114,7 +114,6 @@ pub const AARCH_CONFIGURATIONS: &str = r#" | ... | @@ -114,7 +114,6 @@ pub const AARCH_CONFIGURATIONS: &str = r#" |
| 114 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_fcma))] | 114 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_fcma))] |
| 115 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_dotprod))] | 115 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_dotprod))] |
| 116 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_i8mm))] | 116 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_i8mm))] |
| 117 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_sha3))] | ||
| 118 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_sm4))] | 117 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_sm4))] |
| 119 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_ftts))] | 118 | #![cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), feature(stdarch_neon_ftts))] |
| 120 | #![feature(fmt_helpers_for_derive)] | 119 | #![feature(fmt_helpers_for_derive)] |
library/stdarch/crates/intrinsic-test/src/arm/intrinsic.rs+11-4| ... | @@ -1,8 +1,8 @@ | ... | @@ -1,8 +1,8 @@ |
| 1 | use crate::common::argument::ArgumentList; | 1 | use crate::common::argument::ArgumentList; |
| 2 | use crate::common::indentation::Indentation; | 2 | use crate::common::indentation::Indentation; |
| 3 | use crate::common::intrinsic::{Intrinsic, IntrinsicDefinition}; | 3 | use crate::common::intrinsic::{Intrinsic, IntrinsicDefinition}; |
| 4 | use crate::common::intrinsic_helpers::{IntrinsicType, IntrinsicTypeDefinition, TypeKind}; | 4 | use crate::common::intrinsic_helpers::{IntrinsicType, IntrinsicTypeDefinition, Sign, TypeKind}; |
| 5 | use std::ops::Deref; | 5 | use std::ops::{Deref, DerefMut}; |
| 6 | 6 | ||
| 7 | #[derive(Debug, Clone, PartialEq)] | 7 | #[derive(Debug, Clone, PartialEq)] |
| 8 | pub struct ArmIntrinsicType(pub IntrinsicType); | 8 | pub struct ArmIntrinsicType(pub IntrinsicType); |
| ... | @@ -15,6 +15,12 @@ impl Deref for ArmIntrinsicType { | ... | @@ -15,6 +15,12 @@ impl Deref for ArmIntrinsicType { |
| 15 | } | 15 | } |
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | impl DerefMut for ArmIntrinsicType { | ||
| 19 | fn deref_mut(&mut self) -> &mut Self::Target { | ||
| 20 | &mut self.0 | ||
| 21 | } | ||
| 22 | } | ||
| 23 | |||
| 18 | impl IntrinsicDefinition<ArmIntrinsicType> for Intrinsic<ArmIntrinsicType> { | 24 | impl IntrinsicDefinition<ArmIntrinsicType> for Intrinsic<ArmIntrinsicType> { |
| 19 | fn arguments(&self) -> ArgumentList<ArmIntrinsicType> { | 25 | fn arguments(&self) -> ArgumentList<ArmIntrinsicType> { |
| 20 | self.arguments.clone() | 26 | self.arguments.clone() |
| ... | @@ -73,8 +79,9 @@ impl IntrinsicDefinition<ArmIntrinsicType> for Intrinsic<ArmIntrinsicType> { | ... | @@ -73,8 +79,9 @@ impl IntrinsicDefinition<ArmIntrinsicType> for Intrinsic<ArmIntrinsicType> { |
| 73 | TypeKind::Float if self.results().inner_size() == 16 => "float16_t".to_string(), | 79 | TypeKind::Float if self.results().inner_size() == 16 => "float16_t".to_string(), |
| 74 | TypeKind::Float if self.results().inner_size() == 32 => "float".to_string(), | 80 | TypeKind::Float if self.results().inner_size() == 32 => "float".to_string(), |
| 75 | TypeKind::Float if self.results().inner_size() == 64 => "double".to_string(), | 81 | TypeKind::Float if self.results().inner_size() == 64 => "double".to_string(), |
| 76 | TypeKind::Int => format!("int{}_t", self.results().inner_size()), | 82 | TypeKind::Int(Sign::Signed) => format!("int{}_t", self.results().inner_size()), |
| 77 | TypeKind::UInt => format!("uint{}_t", self.results().inner_size()), | 83 | TypeKind::Int(Sign::Unsigned) => |
| 84 | format!("uint{}_t", self.results().inner_size()), | ||
| 78 | TypeKind::Poly => format!("poly{}_t", self.results().inner_size()), | 85 | TypeKind::Poly => format!("poly{}_t", self.results().inner_size()), |
| 79 | ty => todo!("print_result_c - Unknown type: {:#?}", ty), | 86 | ty => todo!("print_result_c - Unknown type: {:#?}", ty), |
| 80 | }, | 87 | }, |
library/stdarch/crates/intrinsic-test/src/arm/json_parser.rs+1-1| ... | @@ -110,7 +110,7 @@ fn json_to_intrinsic( | ... | @@ -110,7 +110,7 @@ fn json_to_intrinsic( |
| 110 | Ok(Intrinsic { | 110 | Ok(Intrinsic { |
| 111 | name, | 111 | name, |
| 112 | arguments, | 112 | arguments, |
| 113 | results: *results, | 113 | results: results, |
| 114 | arch_tags: intr.architectures, | 114 | arch_tags: intr.architectures, |
| 115 | }) | 115 | }) |
| 116 | } | 116 | } |
library/stdarch/crates/intrinsic-test/src/arm/mod.rs+65-29| ... | @@ -4,15 +4,20 @@ mod intrinsic; | ... | @@ -4,15 +4,20 @@ mod intrinsic; |
| 4 | mod json_parser; | 4 | mod json_parser; |
| 5 | mod types; | 5 | mod types; |
| 6 | 6 | ||
| 7 | use std::fs::File; | ||
| 8 | |||
| 9 | use rayon::prelude::*; | ||
| 10 | |||
| 11 | use crate::arm::config::POLY128_OSTREAM_DEF; | ||
| 7 | use crate::common::SupportedArchitectureTest; | 12 | use crate::common::SupportedArchitectureTest; |
| 8 | use crate::common::cli::ProcessedCli; | 13 | use crate::common::cli::ProcessedCli; |
| 9 | use crate::common::compare::compare_outputs; | 14 | use crate::common::compare::compare_outputs; |
| 15 | use crate::common::gen_c::{write_main_cpp, write_mod_cpp}; | ||
| 10 | use crate::common::gen_rust::compile_rust_programs; | 16 | use crate::common::gen_rust::compile_rust_programs; |
| 11 | use crate::common::intrinsic::{Intrinsic, IntrinsicDefinition}; | 17 | use crate::common::intrinsic::{Intrinsic, IntrinsicDefinition}; |
| 12 | use crate::common::intrinsic_helpers::TypeKind; | 18 | use crate::common::intrinsic_helpers::TypeKind; |
| 13 | use crate::common::write_file::{write_c_testfiles, write_rust_testfiles}; | 19 | use crate::common::write_file::write_rust_testfiles; |
| 14 | use compile::compile_c_arm; | 20 | use config::{AARCH_CONFIGURATIONS, F16_FORMATTING_DEF, build_notices}; |
| 15 | use config::{AARCH_CONFIGURATIONS, F16_FORMATTING_DEF, POLY128_OSTREAM_DEF, build_notices}; | ||
| 16 | use intrinsic::ArmIntrinsicType; | 21 | use intrinsic::ArmIntrinsicType; |
| 17 | use json_parser::get_neon_intrinsics; | 22 | use json_parser::get_neon_intrinsics; |
| 18 | 23 | ||
| ... | @@ -21,6 +26,13 @@ pub struct ArmArchitectureTest { | ... | @@ -21,6 +26,13 @@ pub struct ArmArchitectureTest { |
| 21 | cli_options: ProcessedCli, | 26 | cli_options: ProcessedCli, |
| 22 | } | 27 | } |
| 23 | 28 | ||
| 29 | fn chunk_info(intrinsic_count: usize) -> (usize, usize) { | ||
| 30 | let available_parallelism = std::thread::available_parallelism().unwrap().get(); | ||
| 31 | let chunk_size = intrinsic_count.div_ceil(Ord::min(available_parallelism, intrinsic_count)); | ||
| 32 | |||
| 33 | (chunk_size, intrinsic_count.div_ceil(chunk_size)) | ||
| 34 | } | ||
| 35 | |||
| 24 | impl SupportedArchitectureTest for ArmArchitectureTest { | 36 | impl SupportedArchitectureTest for ArmArchitectureTest { |
| 25 | fn create(cli_options: ProcessedCli) -> Box<Self> { | 37 | fn create(cli_options: ProcessedCli) -> Box<Self> { |
| 26 | let a32 = cli_options.target.contains("v7"); | 38 | let a32 = cli_options.target.contains("v7"); |
| ... | @@ -51,33 +63,58 @@ impl SupportedArchitectureTest for ArmArchitectureTest { | ... | @@ -51,33 +63,58 @@ impl SupportedArchitectureTest for ArmArchitectureTest { |
| 51 | } | 63 | } |
| 52 | 64 | ||
| 53 | fn build_c_file(&self) -> bool { | 65 | fn build_c_file(&self) -> bool { |
| 54 | let compiler = self.cli_options.cpp_compiler.as_deref(); | ||
| 55 | let target = &self.cli_options.target; | ||
| 56 | let cxx_toolchain_dir = self.cli_options.cxx_toolchain_dir.as_deref(); | ||
| 57 | let c_target = "aarch64"; | 66 | let c_target = "aarch64"; |
| 67 | let platform_headers = &["arm_neon.h", "arm_acle.h", "arm_fp16.h"]; | ||
| 58 | 68 | ||
| 59 | let intrinsics_name_list = write_c_testfiles( | 69 | let (chunk_size, chunk_count) = chunk_info(self.intrinsics.len()); |
| 60 | &self | 70 | |
| 61 | .intrinsics | 71 | let cpp_compiler = compile::build_cpp_compilation(&self.cli_options).unwrap(); |
| 62 | .iter() | 72 | |
| 63 | .map(|i| i as &dyn IntrinsicDefinition<_>) | 73 | let notice = &build_notices("// "); |
| 64 | .collect::<Vec<_>>(), | 74 | self.intrinsics |
| 65 | target, | 75 | .par_chunks(chunk_size) |
| 76 | .enumerate() | ||
| 77 | .map(|(i, chunk)| { | ||
| 78 | let c_filename = format!("c_programs/mod_{i}.cpp"); | ||
| 79 | let mut file = File::create(&c_filename).unwrap(); | ||
| 80 | write_mod_cpp(&mut file, notice, c_target, platform_headers, chunk).unwrap(); | ||
| 81 | |||
| 82 | // compile this cpp file into a .o file | ||
| 83 | let output = cpp_compiler | ||
| 84 | .compile_object_file(&format!("mod_{i}.cpp"), &format!("mod_{i}.o"))?; | ||
| 85 | assert!(output.status.success(), "{output:?}"); | ||
| 86 | |||
| 87 | Ok(()) | ||
| 88 | }) | ||
| 89 | .collect::<Result<(), std::io::Error>>() | ||
| 90 | .unwrap(); | ||
| 91 | |||
| 92 | let mut file = File::create("c_programs/main.cpp").unwrap(); | ||
| 93 | write_main_cpp( | ||
| 94 | &mut file, | ||
| 66 | c_target, | 95 | c_target, |
| 67 | &["arm_neon.h", "arm_acle.h", "arm_fp16.h"], | 96 | POLY128_OSTREAM_DEF, |
| 68 | &build_notices("// "), | 97 | self.intrinsics.iter().map(|i| i.name.as_str()), |
| 69 | &[POLY128_OSTREAM_DEF], | 98 | ) |
| 70 | ); | 99 | .unwrap(); |
| 71 | 100 | ||
| 72 | match compiler { | 101 | // compile this cpp file into a .o file |
| 73 | None => true, | 102 | info!("compiling main.cpp"); |
| 74 | Some(compiler) => compile_c_arm( | 103 | let output = cpp_compiler |
| 75 | intrinsics_name_list.as_slice(), | 104 | .compile_object_file("main.cpp", "intrinsic-test-programs.o") |
| 76 | compiler, | 105 | .unwrap(); |
| 77 | target, | 106 | assert!(output.status.success(), "{output:?}"); |
| 78 | cxx_toolchain_dir, | 107 | |
| 79 | ), | 108 | let object_files = (0..chunk_count) |
| 80 | } | 109 | .map(|i| format!("mod_{i}.o")) |
| 110 | .chain(["intrinsic-test-programs.o".to_owned()]); | ||
| 111 | |||
| 112 | let output = cpp_compiler | ||
| 113 | .link_executable(object_files, "intrinsic-test-programs") | ||
| 114 | .unwrap(); | ||
| 115 | assert!(output.status.success(), "{output:?}"); | ||
| 116 | |||
| 117 | true | ||
| 81 | } | 118 | } |
| 82 | 119 | ||
| 83 | fn build_rust_file(&self) -> bool { | 120 | fn build_rust_file(&self) -> bool { |
| ... | @@ -104,7 +141,7 @@ impl SupportedArchitectureTest for ArmArchitectureTest { | ... | @@ -104,7 +141,7 @@ impl SupportedArchitectureTest for ArmArchitectureTest { |
| 104 | } | 141 | } |
| 105 | 142 | ||
| 106 | fn compare_outputs(&self) -> bool { | 143 | fn compare_outputs(&self) -> bool { |
| 107 | if let Some(ref toolchain) = self.cli_options.toolchain { | 144 | if self.cli_options.toolchain.is_some() { |
| 108 | let intrinsics_name_list = self | 145 | let intrinsics_name_list = self |
| 109 | .intrinsics | 146 | .intrinsics |
| 110 | .iter() | 147 | .iter() |
| ... | @@ -113,8 +150,7 @@ impl SupportedArchitectureTest for ArmArchitectureTest { | ... | @@ -113,8 +150,7 @@ impl SupportedArchitectureTest for ArmArchitectureTest { |
| 113 | 150 | ||
| 114 | compare_outputs( | 151 | compare_outputs( |
| 115 | &intrinsics_name_list, | 152 | &intrinsics_name_list, |
| 116 | toolchain, | 153 | &self.cli_options.runner, |
| 117 | &self.cli_options.c_runner, | ||
| 118 | &self.cli_options.target, | 154 | &self.cli_options.target, |
| 119 | ) | 155 | ) |
| 120 | } else { | 156 | } else { |
library/stdarch/crates/intrinsic-test/src/arm/types.rs+13-14| ... | @@ -1,6 +1,6 @@ | ... | @@ -1,6 +1,6 @@ |
| 1 | use super::intrinsic::ArmIntrinsicType; | 1 | use super::intrinsic::ArmIntrinsicType; |
| 2 | use crate::common::cli::Language; | 2 | use crate::common::cli::Language; |
| 3 | use crate::common::intrinsic_helpers::{IntrinsicType, IntrinsicTypeDefinition, TypeKind}; | 3 | use crate::common::intrinsic_helpers::{IntrinsicType, IntrinsicTypeDefinition, Sign, TypeKind}; |
| 4 | 4 | ||
| 5 | impl IntrinsicTypeDefinition for ArmIntrinsicType { | 5 | impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 6 | /// Gets a string containing the typename for this type in C format. | 6 | /// Gets a string containing the typename for this type in C format. |
| ... | @@ -73,8 +73,8 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { | ... | @@ -73,8 +73,8 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 73 | format!( | 73 | format!( |
| 74 | "vld{len}{quad}_{type}{size}", | 74 | "vld{len}{quad}_{type}{size}", |
| 75 | type = match k { | 75 | type = match k { |
| 76 | TypeKind::UInt => "u", | 76 | TypeKind::Int(Sign::Unsigned) => "u", |
| 77 | TypeKind::Int => "s", | 77 | TypeKind::Int(Sign::Signed) => "s", |
| 78 | TypeKind::Float => "f", | 78 | TypeKind::Float => "f", |
| 79 | // The ACLE doesn't support 64-bit polynomial loads on Armv7 | 79 | // The ACLE doesn't support 64-bit polynomial loads on Armv7 |
| 80 | // if armv7 and bl == 64, use "s", else "p" | 80 | // if armv7 and bl == 64, use "s", else "p" |
| ... | @@ -107,8 +107,8 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { | ... | @@ -107,8 +107,8 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 107 | format!( | 107 | format!( |
| 108 | "vget{quad}_lane_{type}{size}", | 108 | "vget{quad}_lane_{type}{size}", |
| 109 | type = match k { | 109 | type = match k { |
| 110 | TypeKind::UInt => "u", | 110 | TypeKind::Int(Sign::Unsigned) => "u", |
| 111 | TypeKind::Int => "s", | 111 | TypeKind::Int(Sign::Signed) => "s", |
| 112 | TypeKind::Float => "f", | 112 | TypeKind::Float => "f", |
| 113 | TypeKind::Poly => "p", | 113 | TypeKind::Poly => "p", |
| 114 | x => todo!("get_load_function TypeKind: {:#?}", x), | 114 | x => todo!("get_load_function TypeKind: {:#?}", x), |
| ... | @@ -121,7 +121,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { | ... | @@ -121,7 +121,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 121 | } | 121 | } |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | fn from_c(s: &str, target: &str) -> Result<Box<Self>, String> { | 124 | fn from_c(s: &str, target: &str) -> Result<Self, String> { |
| 125 | const CONST_STR: &str = "const"; | 125 | const CONST_STR: &str = "const"; |
| 126 | if let Some(s) = s.strip_suffix('*') { | 126 | if let Some(s) = s.strip_suffix('*') { |
| 127 | let (s, constant) = match s.trim().strip_suffix(CONST_STR) { | 127 | let (s, constant) = match s.trim().strip_suffix(CONST_STR) { |
| ... | @@ -131,9 +131,8 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { | ... | @@ -131,9 +131,8 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 131 | let s = s.trim_end(); | 131 | let s = s.trim_end(); |
| 132 | let temp_return = ArmIntrinsicType::from_c(s, target); | 132 | let temp_return = ArmIntrinsicType::from_c(s, target); |
| 133 | temp_return.map(|mut op| { | 133 | temp_return.map(|mut op| { |
| 134 | let edited = op.as_mut(); | 134 | op.ptr = true; |
| 135 | edited.0.ptr = true; | 135 | op.ptr_constant = constant; |
| 136 | edited.0.ptr_constant = constant; | ||
| 137 | op | 136 | op |
| 138 | }) | 137 | }) |
| 139 | } else { | 138 | } else { |
| ... | @@ -163,7 +162,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { | ... | @@ -163,7 +162,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 163 | ), | 162 | ), |
| 164 | None => None, | 163 | None => None, |
| 165 | }; | 164 | }; |
| 166 | Ok(Box::new(ArmIntrinsicType(IntrinsicType { | 165 | Ok(ArmIntrinsicType(IntrinsicType { |
| 167 | ptr: false, | 166 | ptr: false, |
| 168 | ptr_constant: false, | 167 | ptr_constant: false, |
| 169 | constant, | 168 | constant, |
| ... | @@ -172,14 +171,14 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { | ... | @@ -172,14 +171,14 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 172 | simd_len, | 171 | simd_len, |
| 173 | vec_len, | 172 | vec_len, |
| 174 | target: target.to_string(), | 173 | target: target.to_string(), |
| 175 | }))) | 174 | })) |
| 176 | } else { | 175 | } else { |
| 177 | let kind = start.parse::<TypeKind>()?; | 176 | let kind = start.parse::<TypeKind>()?; |
| 178 | let bit_len = match kind { | 177 | let bit_len = match kind { |
| 179 | TypeKind::Int => Some(32), | 178 | TypeKind::Int(_) => Some(32), |
| 180 | _ => None, | 179 | _ => None, |
| 181 | }; | 180 | }; |
| 182 | Ok(Box::new(ArmIntrinsicType(IntrinsicType { | 181 | Ok(ArmIntrinsicType(IntrinsicType { |
| 183 | ptr: false, | 182 | ptr: false, |
| 184 | ptr_constant: false, | 183 | ptr_constant: false, |
| 185 | constant, | 184 | constant, |
| ... | @@ -188,7 +187,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { | ... | @@ -188,7 +187,7 @@ impl IntrinsicTypeDefinition for ArmIntrinsicType { |
| 188 | simd_len: None, | 187 | simd_len: None, |
| 189 | vec_len: None, | 188 | vec_len: None, |
| 190 | target: target.to_string(), | 189 | target: target.to_string(), |
| 191 | }))) | 190 | })) |
| 192 | } | 191 | } |
| 193 | } | 192 | } |
| 194 | } | 193 | } |
library/stdarch/crates/intrinsic-test/src/common/argument.rs+18-14| ... | @@ -76,7 +76,7 @@ where | ... | @@ -76,7 +76,7 @@ where |
| 76 | Argument { | 76 | Argument { |
| 77 | pos, | 77 | pos, |
| 78 | name: String::from(var_name), | 78 | name: String::from(var_name), |
| 79 | ty: *ty, | 79 | ty: ty, |
| 80 | constraint, | 80 | constraint, |
| 81 | } | 81 | } |
| 82 | } | 82 | } |
| ... | @@ -125,19 +125,23 @@ where | ... | @@ -125,19 +125,23 @@ where |
| 125 | /// Creates a line for each argument that initializes an array for C from which `loads` argument | 125 | /// Creates a line for each argument that initializes an array for C from which `loads` argument |
| 126 | /// values can be loaded as a sliding window. | 126 | /// values can be loaded as a sliding window. |
| 127 | /// e.g `const int32x2_t a_vals = {0x3effffff, 0x3effffff, 0x3f7fffff}`, if loads=2. | 127 | /// e.g `const int32x2_t a_vals = {0x3effffff, 0x3effffff, 0x3f7fffff}`, if loads=2. |
| 128 | pub fn gen_arglists_c(&self, indentation: Indentation, loads: u32) -> String { | 128 | pub fn gen_arglists_c( |
| 129 | self.iter() | 129 | &self, |
| 130 | .filter(|&arg| !arg.has_constraint()) | 130 | w: &mut impl std::io::Write, |
| 131 | .map(|arg| { | 131 | indentation: Indentation, |
| 132 | format!( | 132 | loads: u32, |
| 133 | "{indentation}const {ty} {name}_vals[] = {values};", | 133 | ) -> std::io::Result<()> { |
| 134 | ty = arg.ty.c_scalar_type(), | 134 | for arg in self.iter().filter(|&arg| !arg.has_constraint()) { |
| 135 | name = arg.name, | 135 | writeln!( |
| 136 | values = arg.ty.populate_random(indentation, loads, &Language::C) | 136 | w, |
| 137 | ) | 137 | "{indentation}const {ty} {name}_vals[] = {values};", |
| 138 | }) | 138 | ty = arg.ty.c_scalar_type(), |
| 139 | .collect::<Vec<_>>() | 139 | name = arg.name, |
| 140 | .join("\n") | 140 | values = arg.ty.populate_random(indentation, loads, &Language::C) |
| 141 | )? | ||
| 142 | } | ||
| 143 | |||
| 144 | Ok(()) | ||
| 141 | } | 145 | } |
| 142 | 146 | ||
| 143 | /// Creates a line for each argument that initializes an array for Rust from which `loads` argument | 147 | /// Creates a line for each argument that initializes an array for Rust from which `loads` argument |
library/stdarch/crates/intrinsic-test/src/common/cli.rs+3-3| ... | @@ -60,7 +60,7 @@ pub struct ProcessedCli { | ... | @@ -60,7 +60,7 @@ pub struct ProcessedCli { |
| 60 | pub filename: PathBuf, | 60 | pub filename: PathBuf, |
| 61 | pub toolchain: Option<String>, | 61 | pub toolchain: Option<String>, |
| 62 | pub cpp_compiler: Option<String>, | 62 | pub cpp_compiler: Option<String>, |
| 63 | pub c_runner: String, | 63 | pub runner: String, |
| 64 | pub target: String, | 64 | pub target: String, |
| 65 | pub linker: Option<String>, | 65 | pub linker: Option<String>, |
| 66 | pub cxx_toolchain_dir: Option<String>, | 66 | pub cxx_toolchain_dir: Option<String>, |
| ... | @@ -70,7 +70,7 @@ pub struct ProcessedCli { | ... | @@ -70,7 +70,7 @@ pub struct ProcessedCli { |
| 70 | impl ProcessedCli { | 70 | impl ProcessedCli { |
| 71 | pub fn new(cli_options: Cli) -> Self { | 71 | pub fn new(cli_options: Cli) -> Self { |
| 72 | let filename = cli_options.input; | 72 | let filename = cli_options.input; |
| 73 | let c_runner = cli_options.runner.unwrap_or_default(); | 73 | let runner = cli_options.runner.unwrap_or_default(); |
| 74 | let target = cli_options.target; | 74 | let target = cli_options.target; |
| 75 | let linker = cli_options.linker; | 75 | let linker = cli_options.linker; |
| 76 | let cxx_toolchain_dir = cli_options.cxx_toolchain_dir; | 76 | let cxx_toolchain_dir = cli_options.cxx_toolchain_dir; |
| ... | @@ -102,7 +102,7 @@ impl ProcessedCli { | ... | @@ -102,7 +102,7 @@ impl ProcessedCli { |
| 102 | Self { | 102 | Self { |
| 103 | toolchain, | 103 | toolchain, |
| 104 | cpp_compiler, | 104 | cpp_compiler, |
| 105 | c_runner, | 105 | runner, |
| 106 | target, | 106 | target, |
| 107 | linker, | 107 | linker, |
| 108 | cxx_toolchain_dir, | 108 | cxx_toolchain_dir, |
library/stdarch/crates/intrinsic-test/src/common/compare.rs+16-18| ... | @@ -2,27 +2,25 @@ use super::cli::FailureReason; | ... | @@ -2,27 +2,25 @@ use super::cli::FailureReason; |
| 2 | use rayon::prelude::*; | 2 | use rayon::prelude::*; |
| 3 | use std::process::Command; | 3 | use std::process::Command; |
| 4 | 4 | ||
| 5 | pub fn compare_outputs( | 5 | pub fn compare_outputs(intrinsic_name_list: &Vec<String>, runner: &str, target: &str) -> bool { |
| 6 | intrinsic_name_list: &Vec<String>, | 6 | fn runner_command(runner: &str) -> Command { |
| 7 | toolchain: &str, | 7 | let mut it = runner.split_whitespace(); |
| 8 | runner: &str, | 8 | let mut cmd = Command::new(it.next().unwrap()); |
| 9 | target: &str, | 9 | cmd.args(it); |
| 10 | ) -> bool { | 10 | |
| 11 | cmd | ||
| 12 | } | ||
| 13 | |||
| 11 | let intrinsics = intrinsic_name_list | 14 | let intrinsics = intrinsic_name_list |
| 12 | .par_iter() | 15 | .par_iter() |
| 13 | .filter_map(|intrinsic_name| { | 16 | .filter_map(|intrinsic_name| { |
| 14 | let c = Command::new("sh") | 17 | let c = runner_command(runner) |
| 15 | .arg("-c") | 18 | .arg("./c_programs/intrinsic-test-programs") |
| 16 | .arg(format!("{runner} ./c_programs/{intrinsic_name}")) | 19 | .arg(intrinsic_name) |
| 17 | .output(); | 20 | .output(); |
| 18 | 21 | ||
| 19 | let rust = Command::new("sh") | 22 | let rust = runner_command(runner) |
| 20 | .current_dir("rust_programs") | 23 | .arg(format!("target/{target}/release/{intrinsic_name}")) |
| 21 | .arg("-c") | ||
| 22 | .arg(format!( | ||
| 23 | "cargo {toolchain} run --target {target} --bin {intrinsic_name} --release", | ||
| 24 | )) | ||
| 25 | .env("RUSTFLAGS", "-Cdebuginfo=0") | ||
| 26 | .output(); | 24 | .output(); |
| 27 | 25 | ||
| 28 | let (c, rust) = match (c, rust) { | 26 | let (c, rust) = match (c, rust) { |
| ... | @@ -42,8 +40,8 @@ pub fn compare_outputs( | ... | @@ -42,8 +40,8 @@ pub fn compare_outputs( |
| 42 | if !rust.status.success() { | 40 | if !rust.status.success() { |
| 43 | error!( | 41 | error!( |
| 44 | "Failed to run Rust program for intrinsic {intrinsic_name}\nstdout: {stdout}\nstderr: {stderr}", | 42 | "Failed to run Rust program for intrinsic {intrinsic_name}\nstdout: {stdout}\nstderr: {stderr}", |
| 45 | stdout = std::str::from_utf8(&rust.stdout).unwrap_or(""), | 43 | stdout = String::from_utf8_lossy(&rust.stdout), |
| 46 | stderr = std::str::from_utf8(&rust.stderr).unwrap_or(""), | 44 | stderr = String::from_utf8_lossy(&rust.stderr), |
| 47 | ); | 45 | ); |
| 48 | return Some(FailureReason::RunRust(intrinsic_name.clone())); | 46 | return Some(FailureReason::RunRust(intrinsic_name.clone())); |
| 49 | } | 47 | } |
library/stdarch/crates/intrinsic-test/src/common/compile_c.rs+59-78| ... | @@ -5,11 +5,7 @@ pub struct CompilationCommandBuilder { | ... | @@ -5,11 +5,7 @@ pub struct CompilationCommandBuilder { |
| 5 | cxx_toolchain_dir: Option<String>, | 5 | cxx_toolchain_dir: Option<String>, |
| 6 | arch_flags: Vec<String>, | 6 | arch_flags: Vec<String>, |
| 7 | optimization: String, | 7 | optimization: String, |
| 8 | include_paths: Vec<String>, | ||
| 9 | project_root: Option<String>, | 8 | project_root: Option<String>, |
| 10 | output: String, | ||
| 11 | input: String, | ||
| 12 | linker: Option<String>, | ||
| 13 | extra_flags: Vec<String>, | 9 | extra_flags: Vec<String>, |
| 14 | } | 10 | } |
| 15 | 11 | ||
| ... | @@ -21,11 +17,7 @@ impl CompilationCommandBuilder { | ... | @@ -21,11 +17,7 @@ impl CompilationCommandBuilder { |
| 21 | cxx_toolchain_dir: None, | 17 | cxx_toolchain_dir: None, |
| 22 | arch_flags: Vec::new(), | 18 | arch_flags: Vec::new(), |
| 23 | optimization: "2".to_string(), | 19 | optimization: "2".to_string(), |
| 24 | include_paths: Vec::new(), | ||
| 25 | project_root: None, | 20 | project_root: None, |
| 26 | output: String::new(), | ||
| 27 | input: String::new(), | ||
| 28 | linker: None, | ||
| 29 | extra_flags: Vec::new(), | 21 | extra_flags: Vec::new(), |
| 30 | } | 22 | } |
| 31 | } | 23 | } |
| ... | @@ -57,37 +49,12 @@ impl CompilationCommandBuilder { | ... | @@ -57,37 +49,12 @@ impl CompilationCommandBuilder { |
| 57 | self | 49 | self |
| 58 | } | 50 | } |
| 59 | 51 | ||
| 60 | /// Sets a list of include paths for compilation. | ||
| 61 | /// The paths that are passed must be relative to the | ||
| 62 | /// "cxx_toolchain_dir" directory path. | ||
| 63 | pub fn set_include_paths(mut self, paths: Vec<&str>) -> Self { | ||
| 64 | self.include_paths = paths.into_iter().map(|path| path.to_string()).collect(); | ||
| 65 | self | ||
| 66 | } | ||
| 67 | |||
| 68 | /// Sets the root path of all the generated test files. | 52 | /// Sets the root path of all the generated test files. |
| 69 | pub fn set_project_root(mut self, path: &str) -> Self { | 53 | pub fn set_project_root(mut self, path: &str) -> Self { |
| 70 | self.project_root = Some(path.to_string()); | 54 | self.project_root = Some(path.to_string()); |
| 71 | self | 55 | self |
| 72 | } | 56 | } |
| 73 | 57 | ||
| 74 | /// The name of the output executable, without any suffixes | ||
| 75 | pub fn set_output_name(mut self, path: &str) -> Self { | ||
| 76 | self.output = path.to_string(); | ||
| 77 | self | ||
| 78 | } | ||
| 79 | |||
| 80 | /// The name of the input C file, without any suffixes | ||
| 81 | pub fn set_input_name(mut self, path: &str) -> Self { | ||
| 82 | self.input = path.to_string(); | ||
| 83 | self | ||
| 84 | } | ||
| 85 | |||
| 86 | pub fn set_linker(mut self, linker: String) -> Self { | ||
| 87 | self.linker = Some(linker); | ||
| 88 | self | ||
| 89 | } | ||
| 90 | |||
| 91 | pub fn add_extra_flags(mut self, flags: Vec<&str>) -> Self { | 58 | pub fn add_extra_flags(mut self, flags: Vec<&str>) -> Self { |
| 92 | let mut flags: Vec<String> = flags.into_iter().map(|f| f.to_string()).collect(); | 59 | let mut flags: Vec<String> = flags.into_iter().map(|f| f.to_string()).collect(); |
| 93 | self.extra_flags.append(&mut flags); | 60 | self.extra_flags.append(&mut flags); |
| ... | @@ -100,55 +67,69 @@ impl CompilationCommandBuilder { | ... | @@ -100,55 +67,69 @@ impl CompilationCommandBuilder { |
| 100 | } | 67 | } |
| 101 | 68 | ||
| 102 | impl CompilationCommandBuilder { | 69 | impl CompilationCommandBuilder { |
| 103 | pub fn make_string(self) -> String { | 70 | pub fn into_cpp_compilation(self) -> CppCompilation { |
| 104 | let arch_flags = self.arch_flags.join("+"); | 71 | let mut cpp_compiler = std::process::Command::new(self.compiler); |
| 72 | |||
| 73 | if let Some(project_root) = self.project_root { | ||
| 74 | cpp_compiler.current_dir(project_root); | ||
| 75 | } | ||
| 76 | |||
| 105 | let flags = std::env::var("CPPFLAGS").unwrap_or("".into()); | 77 | let flags = std::env::var("CPPFLAGS").unwrap_or("".into()); |
| 106 | let project_root = self.project_root.unwrap_or_default(); | 78 | cpp_compiler.args(flags.split_whitespace()); |
| 107 | let project_root_str = project_root.as_str(); | 79 | |
| 108 | let mut output = self.output.clone(); | 80 | cpp_compiler.arg(format!("-march={}", self.arch_flags.join("+"))); |
| 109 | if self.linker.is_some() { | 81 | |
| 110 | output += ".o" | 82 | cpp_compiler.arg(format!("-O{}", self.optimization)); |
| 111 | }; | 83 | |
| 112 | let mut command = format!( | 84 | cpp_compiler.args(self.extra_flags); |
| 113 | "{} {flags} -march={arch_flags} \ | ||
| 114 | -O{} \ | ||
| 115 | -o {project_root}/{} \ | ||
| 116 | {project_root}/{}.cpp", | ||
| 117 | self.compiler, self.optimization, output, self.input, | ||
| 118 | ); | ||
| 119 | |||
| 120 | command = command + " " + self.extra_flags.join(" ").as_str(); | ||
| 121 | 85 | ||
| 122 | if let Some(target) = &self.target { | 86 | if let Some(target) = &self.target { |
| 123 | command = command + " --target=" + target; | 87 | cpp_compiler.arg(format!("--target={target}")); |
| 124 | } | 88 | } |
| 125 | 89 | ||
| 126 | if let (Some(linker), Some(cxx_toolchain_dir)) = (&self.linker, &self.cxx_toolchain_dir) { | 90 | CppCompilation(cpp_compiler) |
| 127 | let include_args = self | 91 | } |
| 128 | .include_paths | 92 | } |
| 129 | .iter() | 93 | |
| 130 | .map(|path| "--include-directory=".to_string() + cxx_toolchain_dir + path) | 94 | pub struct CppCompilation(std::process::Command); |
| 131 | .collect::<Vec<_>>() | 95 | |
| 132 | .join(" "); | 96 | fn clone_command(command: &std::process::Command) -> std::process::Command { |
| 133 | 97 | let mut cmd = std::process::Command::new(command.get_program()); | |
| 134 | command = command | 98 | if let Some(current_dir) = command.get_current_dir() { |
| 135 | + " -c " | 99 | cmd.current_dir(current_dir); |
| 136 | + include_args.as_str() | 100 | } |
| 137 | + " && " | 101 | cmd.args(command.get_args()); |
| 138 | + linker | 102 | |
| 139 | + " " | 103 | for (key, val) in command.get_envs() { |
| 140 | + project_root_str | 104 | cmd.env(key, val.unwrap_or_default()); |
| 141 | + "/" | 105 | } |
| 142 | + &output | 106 | |
| 143 | + " -o " | 107 | cmd |
| 144 | + project_root_str | 108 | } |
| 145 | + "/" | 109 | |
| 146 | + &self.output | 110 | impl CppCompilation { |
| 147 | + " && rm " | 111 | pub fn command_mut(&mut self) -> &mut std::process::Command { |
| 148 | + project_root_str | 112 | &mut self.0 |
| 149 | + "/" | 113 | } |
| 150 | + &output; | 114 | |
| 151 | } | 115 | pub fn compile_object_file( |
| 152 | command | 116 | &self, |
| 117 | input: &str, | ||
| 118 | output: &str, | ||
| 119 | ) -> std::io::Result<std::process::Output> { | ||
| 120 | let mut cmd = clone_command(&self.0); | ||
| 121 | cmd.args([input, "-c", "-o", output]); | ||
| 122 | cmd.output() | ||
| 123 | } | ||
| 124 | |||
| 125 | pub fn link_executable( | ||
| 126 | &self, | ||
| 127 | inputs: impl Iterator<Item = String>, | ||
| 128 | output: &str, | ||
| 129 | ) -> std::io::Result<std::process::Output> { | ||
| 130 | let mut cmd = clone_command(&self.0); | ||
| 131 | cmd.args(inputs); | ||
| 132 | cmd.args(["-o", output]); | ||
| 133 | cmd.output() | ||
| 153 | } | 134 | } |
| 154 | } | 135 | } |
library/stdarch/crates/intrinsic-test/src/common/gen_c.rs+162-161| ... | @@ -1,8 +1,3 @@ | ... | @@ -1,8 +1,3 @@ |
| 1 | use itertools::Itertools; | ||
| 2 | use rayon::prelude::*; | ||
| 3 | use std::collections::BTreeMap; | ||
| 4 | use std::process::Command; | ||
| 5 | |||
| 6 | use super::argument::Argument; | 1 | use super::argument::Argument; |
| 7 | use super::indentation::Indentation; | 2 | use super::indentation::Indentation; |
| 8 | use super::intrinsic::IntrinsicDefinition; | 3 | use super::intrinsic::IntrinsicDefinition; |
| ... | @@ -11,104 +6,16 @@ use super::intrinsic_helpers::IntrinsicTypeDefinition; | ... | @@ -11,104 +6,16 @@ use super::intrinsic_helpers::IntrinsicTypeDefinition; |
| 11 | // The number of times each intrinsic will be called. | 6 | // The number of times each intrinsic will be called. |
| 12 | const PASSES: u32 = 20; | 7 | const PASSES: u32 = 20; |
| 13 | 8 | ||
| 14 | // Formats the main C program template with placeholders | ||
| 15 | pub fn format_c_main_template( | ||
| 16 | notices: &str, | ||
| 17 | header_files: &[&str], | ||
| 18 | arch_identifier: &str, | ||
| 19 | arch_specific_definitions: &[&str], | ||
| 20 | arglists: &str, | ||
| 21 | passes: &str, | ||
| 22 | ) -> String { | ||
| 23 | format!( | ||
| 24 | r#"{notices}{header_files} | ||
| 25 | #include <iostream> | ||
| 26 | #include <cstring> | ||
| 27 | #include <iomanip> | ||
| 28 | #include <sstream> | ||
| 29 | |||
| 30 | template<typename T1, typename T2> T1 cast(T2 x) {{ | ||
| 31 | static_assert(sizeof(T1) == sizeof(T2), "sizeof T1 and T2 must be the same"); | ||
| 32 | T1 ret{{}}; | ||
| 33 | memcpy(&ret, &x, sizeof(T1)); | ||
| 34 | return ret; | ||
| 35 | }} | ||
| 36 | |||
| 37 | std::ostream& operator<<(std::ostream& os, float16_t value) {{ | ||
| 38 | uint16_t temp = 0; | ||
| 39 | memcpy(&temp, &value, sizeof(float16_t)); | ||
| 40 | std::stringstream ss; | ||
| 41 | ss << "0x" << std::setfill('0') << std::setw(4) << std::hex << temp; | ||
| 42 | os << ss.str(); | ||
| 43 | return os; | ||
| 44 | }} | ||
| 45 | |||
| 46 | #ifdef __{arch_identifier}__ | ||
| 47 | {arch_specific_definitions} | ||
| 48 | #endif | ||
| 49 | |||
| 50 | {arglists} | ||
| 51 | |||
| 52 | int main(int argc, char **argv) {{ | ||
| 53 | {passes} | ||
| 54 | return 0; | ||
| 55 | }}"#, | ||
| 56 | header_files = header_files | ||
| 57 | .iter() | ||
| 58 | .map(|header| format!("#include <{header}>")) | ||
| 59 | .collect::<Vec<_>>() | ||
| 60 | .join("\n"), | ||
| 61 | arch_specific_definitions = arch_specific_definitions.join("\n"), | ||
| 62 | ) | ||
| 63 | } | ||
| 64 | |||
| 65 | pub fn compile_c_programs(compiler_commands: &[String]) -> bool { | ||
| 66 | compiler_commands | ||
| 67 | .par_iter() | ||
| 68 | .map(|compiler_command| { | ||
| 69 | let output = Command::new("sh").arg("-c").arg(compiler_command).output(); | ||
| 70 | if let Ok(output) = output { | ||
| 71 | if output.status.success() { | ||
| 72 | true | ||
| 73 | } else { | ||
| 74 | error!( | ||
| 75 | "Failed to compile code for intrinsics: \n\nstdout:\n{}\n\nstderr:\n{}", | ||
| 76 | std::str::from_utf8(&output.stdout).unwrap_or(""), | ||
| 77 | std::str::from_utf8(&output.stderr).unwrap_or("") | ||
| 78 | ); | ||
| 79 | false | ||
| 80 | } | ||
| 81 | } else { | ||
| 82 | error!("Command failed: {output:#?}"); | ||
| 83 | false | ||
| 84 | } | ||
| 85 | }) | ||
| 86 | .find_any(|x| !x) | ||
| 87 | .is_none() | ||
| 88 | } | ||
| 89 | |||
| 90 | // Creates directory structure and file path mappings | ||
| 91 | pub fn setup_c_file_paths(identifiers: &Vec<String>) -> BTreeMap<&String, String> { | ||
| 92 | let _ = std::fs::create_dir("c_programs"); | ||
| 93 | identifiers | ||
| 94 | .par_iter() | ||
| 95 | .map(|identifier| { | ||
| 96 | let c_filename = format!(r#"c_programs/{identifier}.cpp"#); | ||
| 97 | |||
| 98 | (identifier, c_filename) | ||
| 99 | }) | ||
| 100 | .collect::<BTreeMap<&String, String>>() | ||
| 101 | } | ||
| 102 | |||
| 103 | pub fn generate_c_test_loop<T: IntrinsicTypeDefinition + Sized>( | 9 | pub fn generate_c_test_loop<T: IntrinsicTypeDefinition + Sized>( |
| 10 | w: &mut impl std::io::Write, | ||
| 104 | intrinsic: &dyn IntrinsicDefinition<T>, | 11 | intrinsic: &dyn IntrinsicDefinition<T>, |
| 105 | indentation: Indentation, | 12 | indentation: Indentation, |
| 106 | additional: &str, | 13 | additional: &str, |
| 107 | passes: u32, | 14 | passes: u32, |
| 108 | _target: &str, | 15 | ) -> std::io::Result<()> { |
| 109 | ) -> String { | ||
| 110 | let body_indentation = indentation.nested(); | 16 | let body_indentation = indentation.nested(); |
| 111 | format!( | 17 | writeln!( |
| 18 | w, | ||
| 112 | "{indentation}for (int i=0; i<{passes}; i++) {{\n\ | 19 | "{indentation}for (int i=0; i<{passes}; i++) {{\n\ |
| 113 | {loaded_args}\ | 20 | {loaded_args}\ |
| 114 | {body_indentation}auto __return_value = {intrinsic_call}({args});\n\ | 21 | {body_indentation}auto __return_value = {intrinsic_call}({args});\n\ |
| ... | @@ -121,78 +28,172 @@ pub fn generate_c_test_loop<T: IntrinsicTypeDefinition + Sized>( | ... | @@ -121,78 +28,172 @@ pub fn generate_c_test_loop<T: IntrinsicTypeDefinition + Sized>( |
| 121 | ) | 28 | ) |
| 122 | } | 29 | } |
| 123 | 30 | ||
| 124 | pub fn generate_c_constraint_blocks<T: IntrinsicTypeDefinition>( | 31 | pub fn generate_c_constraint_blocks<'a, T: IntrinsicTypeDefinition + 'a>( |
| 32 | w: &mut impl std::io::Write, | ||
| 125 | intrinsic: &dyn IntrinsicDefinition<T>, | 33 | intrinsic: &dyn IntrinsicDefinition<T>, |
| 126 | indentation: Indentation, | 34 | indentation: Indentation, |
| 127 | constraints: &[&Argument<T>], | 35 | constraints: &mut (impl Iterator<Item = &'a Argument<T>> + Clone), |
| 128 | name: String, | 36 | name: String, |
| 129 | target: &str, | 37 | ) -> std::io::Result<()> { |
| 130 | ) -> String { | 38 | let Some(current) = constraints.next() else { |
| 131 | if let Some((current, constraints)) = constraints.split_last() { | 39 | return generate_c_test_loop(w, intrinsic, indentation, &name, PASSES); |
| 132 | let range = current | 40 | }; |
| 133 | .constraint | 41 | |
| 134 | .iter() | 42 | let body_indentation = indentation.nested(); |
| 135 | .map(|c| c.to_range()) | 43 | for i in current.constraint.iter().flat_map(|c| c.to_range()) { |
| 136 | .flat_map(|r| r.into_iter()); | 44 | let ty = current.ty.c_type(); |
| 137 | 45 | ||
| 138 | let body_indentation = indentation.nested(); | 46 | writeln!(w, "{indentation}{{")?; |
| 139 | range | 47 | writeln!(w, "{body_indentation}{ty} {} = {i};", current.name)?; |
| 140 | .map(|i| { | 48 | |
| 141 | format!( | 49 | generate_c_constraint_blocks( |
| 142 | "{indentation}{{\n\ | 50 | w, |
| 143 | {body_indentation}{ty} {name} = {val};\n\ | 51 | intrinsic, |
| 144 | {pass}\n\ | 52 | body_indentation, |
| 145 | {indentation}}}", | 53 | &mut constraints.clone(), |
| 146 | name = current.name, | 54 | format!("{name}-{i}"), |
| 147 | ty = current.ty.c_type(), | 55 | )?; |
| 148 | val = i, | 56 | |
| 149 | pass = generate_c_constraint_blocks( | 57 | writeln!(w, "{indentation}}}")?; |
| 150 | intrinsic, | ||
| 151 | body_indentation, | ||
| 152 | constraints, | ||
| 153 | format!("{name}-{i}"), | ||
| 154 | target, | ||
| 155 | ) | ||
| 156 | ) | ||
| 157 | }) | ||
| 158 | .join("\n") | ||
| 159 | } else { | ||
| 160 | generate_c_test_loop(intrinsic, indentation, &name, PASSES, target) | ||
| 161 | } | 58 | } |
| 59 | |||
| 60 | Ok(()) | ||
| 162 | } | 61 | } |
| 163 | 62 | ||
| 164 | // Compiles C test programs using specified compiler | 63 | // Compiles C test programs using specified compiler |
| 165 | pub fn create_c_test_program<T: IntrinsicTypeDefinition>( | 64 | pub fn create_c_test_function<T: IntrinsicTypeDefinition>( |
| 65 | w: &mut impl std::io::Write, | ||
| 166 | intrinsic: &dyn IntrinsicDefinition<T>, | 66 | intrinsic: &dyn IntrinsicDefinition<T>, |
| 167 | header_files: &[&str], | 67 | ) -> std::io::Result<()> { |
| 168 | target: &str, | 68 | let indentation = Indentation::default(); |
| 169 | c_target: &str, | 69 | |
| 170 | notices: &str, | 70 | writeln!(w, "int run_{}() {{", intrinsic.name())?; |
| 171 | arch_specific_definitions: &[&str], | 71 | |
| 172 | ) -> String { | 72 | // Define the arrays of arguments. |
| 173 | let arguments = intrinsic.arguments(); | 73 | let arguments = intrinsic.arguments(); |
| 174 | let constraints = arguments | 74 | arguments.gen_arglists_c(w, indentation.nested(), PASSES)?; |
| 175 | .iter() | ||
| 176 | .filter(|&i| i.has_constraint()) | ||
| 177 | .collect_vec(); | ||
| 178 | 75 | ||
| 179 | let indentation = Indentation::default(); | 76 | generate_c_constraint_blocks( |
| 180 | format_c_main_template( | 77 | w, |
| 181 | notices, | 78 | intrinsic, |
| 182 | header_files, | 79 | indentation.nested(), |
| 183 | c_target, | 80 | &mut arguments.iter().rev().filter(|&i| i.has_constraint()), |
| 184 | arch_specific_definitions, | 81 | Default::default(), |
| 185 | intrinsic | 82 | )?; |
| 186 | .arguments() | 83 | |
| 187 | .gen_arglists_c(indentation, PASSES) | 84 | writeln!(w, " return 0;")?; |
| 188 | .as_str(), | 85 | writeln!(w, "}}")?; |
| 189 | generate_c_constraint_blocks( | 86 | |
| 190 | intrinsic, | 87 | Ok(()) |
| 191 | indentation.nested(), | 88 | } |
| 192 | constraints.as_slice(), | 89 | |
| 193 | Default::default(), | 90 | pub fn write_mod_cpp<T: IntrinsicTypeDefinition>( |
| 194 | target, | 91 | w: &mut impl std::io::Write, |
| 195 | ) | 92 | notice: &str, |
| 196 | .as_str(), | 93 | architecture: &str, |
| 197 | ) | 94 | platform_headers: &[&str], |
| 95 | intrinsics: &[impl IntrinsicDefinition<T>], | ||
| 96 | ) -> std::io::Result<()> { | ||
| 97 | write!(w, "{notice}")?; | ||
| 98 | |||
| 99 | for header in platform_headers { | ||
| 100 | writeln!(w, "#include <{header}>")?; | ||
| 101 | } | ||
| 102 | |||
| 103 | writeln!( | ||
| 104 | w, | ||
| 105 | r#" | ||
| 106 | #include <iostream> | ||
| 107 | #include <cstring> | ||
| 108 | #include <iomanip> | ||
| 109 | #include <sstream> | ||
| 110 | |||
| 111 | template<typename T1, typename T2> T1 cast(T2 x) {{ | ||
| 112 | static_assert(sizeof(T1) == sizeof(T2), "sizeof T1 and T2 must be the same"); | ||
| 113 | T1 ret{{}}; | ||
| 114 | memcpy(&ret, &x, sizeof(T1)); | ||
| 115 | return ret; | ||
| 116 | }} | ||
| 117 | |||
| 118 | std::ostream& operator<<(std::ostream& os, float16_t value); | ||
| 119 | |||
| 120 | |||
| 121 | |||
| 122 | "# | ||
| 123 | )?; | ||
| 124 | |||
| 125 | writeln!(w, "#ifdef __{architecture}__")?; | ||
| 126 | writeln!( | ||
| 127 | w, | ||
| 128 | "std::ostream& operator<<(std::ostream& os, poly128_t value);" | ||
| 129 | )?; | ||
| 130 | writeln!(w, "#endif")?; | ||
| 131 | |||
| 132 | for intrinsic in intrinsics { | ||
| 133 | create_c_test_function(w, intrinsic)?; | ||
| 134 | } | ||
| 135 | |||
| 136 | Ok(()) | ||
| 137 | } | ||
| 138 | |||
| 139 | pub fn write_main_cpp<'a>( | ||
| 140 | w: &mut impl std::io::Write, | ||
| 141 | architecture: &str, | ||
| 142 | arch_specific_definitions: &str, | ||
| 143 | intrinsics: impl Iterator<Item = &'a str> + Clone, | ||
| 144 | ) -> std::io::Result<()> { | ||
| 145 | writeln!(w, "#include <iostream>")?; | ||
| 146 | writeln!(w, "#include <string>")?; | ||
| 147 | |||
| 148 | for header in ["arm_neon.h", "arm_acle.h", "arm_fp16.h"] { | ||
| 149 | writeln!(w, "#include <{header}>")?; | ||
| 150 | } | ||
| 151 | |||
| 152 | writeln!( | ||
| 153 | w, | ||
| 154 | r#" | ||
| 155 | #include <cstring> | ||
| 156 | #include <iomanip> | ||
| 157 | #include <sstream> | ||
| 158 | |||
| 159 | std::ostream& operator<<(std::ostream& os, float16_t value) {{ | ||
| 160 | uint16_t temp = 0; | ||
| 161 | memcpy(&temp, &value, sizeof(float16_t)); | ||
| 162 | std::stringstream ss; | ||
| 163 | ss << "0x" << std::setfill('0') << std::setw(4) << std::hex << temp; | ||
| 164 | os << ss.str(); | ||
| 165 | return os; | ||
| 166 | }} | ||
| 167 | "# | ||
| 168 | )?; | ||
| 169 | |||
| 170 | writeln!(w, "#ifdef __{architecture}__")?; | ||
| 171 | writeln!(w, "{arch_specific_definitions }")?; | ||
| 172 | writeln!(w, "#endif")?; | ||
| 173 | |||
| 174 | for intrinsic in intrinsics.clone() { | ||
| 175 | writeln!(w, "extern int run_{intrinsic}(void);")?; | ||
| 176 | } | ||
| 177 | |||
| 178 | writeln!(w, "int main(int argc, char **argv) {{")?; | ||
| 179 | writeln!(w, " std::string intrinsic_name = argv[1];")?; | ||
| 180 | |||
| 181 | writeln!(w, " if (false) {{")?; | ||
| 182 | |||
| 183 | for intrinsic in intrinsics { | ||
| 184 | writeln!(w, " }} else if (intrinsic_name == \"{intrinsic}\") {{")?; | ||
| 185 | writeln!(w, " return run_{intrinsic}();")?; | ||
| 186 | } | ||
| 187 | |||
| 188 | writeln!(w, " }} else {{")?; | ||
| 189 | writeln!( | ||
| 190 | w, | ||
| 191 | " std::cerr << \"Unknown command: \" << intrinsic_name << \"\\n\";" | ||
| 192 | )?; | ||
| 193 | writeln!(w, " return -1;")?; | ||
| 194 | writeln!(w, " }}")?; | ||
| 195 | |||
| 196 | writeln!(w, "}}")?; | ||
| 197 | |||
| 198 | Ok(()) | ||
| 198 | } | 199 | } |
library/stdarch/crates/intrinsic-test/src/common/gen_rust.rs+49-50| ... | @@ -2,7 +2,6 @@ use itertools::Itertools; | ... | @@ -2,7 +2,6 @@ use itertools::Itertools; |
| 2 | use rayon::prelude::*; | 2 | use rayon::prelude::*; |
| 3 | use std::collections::BTreeMap; | 3 | use std::collections::BTreeMap; |
| 4 | use std::fs::File; | 4 | use std::fs::File; |
| 5 | use std::io::Write; | ||
| 6 | use std::process::Command; | 5 | use std::process::Command; |
| 7 | 6 | ||
| 8 | use super::argument::Argument; | 7 | use super::argument::Argument; |
| ... | @@ -23,8 +22,8 @@ pub fn format_rust_main_template( | ... | @@ -23,8 +22,8 @@ pub fn format_rust_main_template( |
| 23 | ) -> String { | 22 | ) -> String { |
| 24 | format!( | 23 | format!( |
| 25 | r#"{notices}#![feature(simd_ffi)] | 24 | r#"{notices}#![feature(simd_ffi)] |
| 26 | #![feature(link_llvm_intrinsics)] | ||
| 27 | #![feature(f16)] | 25 | #![feature(f16)] |
| 26 | #![allow(unused)] | ||
| 28 | {configurations} | 27 | {configurations} |
| 29 | {definitions} | 28 | {definitions} |
| 30 | 29 | ||
| ... | @@ -38,6 +37,42 @@ fn main() {{ | ... | @@ -38,6 +37,42 @@ fn main() {{ |
| 38 | ) | 37 | ) |
| 39 | } | 38 | } |
| 40 | 39 | ||
| 40 | fn write_cargo_toml(w: &mut impl std::io::Write, binaries: &[String]) -> std::io::Result<()> { | ||
| 41 | writeln!( | ||
| 42 | w, | ||
| 43 | concat!( | ||
| 44 | "[package]\n", | ||
| 45 | "name = \"intrinsic-test-programs\"\n", | ||
| 46 | "version = \"{version}\"\n", | ||
| 47 | "authors = [{authors}]\n", | ||
| 48 | "license = \"{license}\"\n", | ||
| 49 | "edition = \"2018\"\n", | ||
| 50 | "[workspace]\n", | ||
| 51 | "[dependencies]\n", | ||
| 52 | "core_arch = {{ path = \"../crates/core_arch\" }}", | ||
| 53 | ), | ||
| 54 | version = env!("CARGO_PKG_VERSION"), | ||
| 55 | authors = env!("CARGO_PKG_AUTHORS") | ||
| 56 | .split(":") | ||
| 57 | .format_with(", ", |author, fmt| fmt(&format_args!("\"{author}\""))), | ||
| 58 | license = env!("CARGO_PKG_LICENSE"), | ||
| 59 | )?; | ||
| 60 | |||
| 61 | for binary in binaries { | ||
| 62 | writeln!( | ||
| 63 | w, | ||
| 64 | concat!( | ||
| 65 | "[[bin]]\n", | ||
| 66 | "name = \"{binary}\"\n", | ||
| 67 | "path = \"{binary}/main.rs\"\n", | ||
| 68 | ), | ||
| 69 | binary = binary, | ||
| 70 | )?; | ||
| 71 | } | ||
| 72 | |||
| 73 | Ok(()) | ||
| 74 | } | ||
| 75 | |||
| 41 | pub fn compile_rust_programs( | 76 | pub fn compile_rust_programs( |
| 42 | binaries: Vec<String>, | 77 | binaries: Vec<String>, |
| 43 | toolchain: Option<&str>, | 78 | toolchain: Option<&str>, |
| ... | @@ -45,56 +80,20 @@ pub fn compile_rust_programs( | ... | @@ -45,56 +80,20 @@ pub fn compile_rust_programs( |
| 45 | linker: Option<&str>, | 80 | linker: Option<&str>, |
| 46 | ) -> bool { | 81 | ) -> bool { |
| 47 | let mut cargo = File::create("rust_programs/Cargo.toml").unwrap(); | 82 | let mut cargo = File::create("rust_programs/Cargo.toml").unwrap(); |
| 48 | cargo | 83 | write_cargo_toml(&mut cargo, &binaries).unwrap(); |
| 49 | .write_all( | ||
| 50 | format!( | ||
| 51 | r#"[package] | ||
| 52 | name = "intrinsic-test-programs" | ||
| 53 | version = "{version}" | ||
| 54 | authors = [{authors}] | ||
| 55 | license = "{license}" | ||
| 56 | edition = "2018" | ||
| 57 | [workspace] | ||
| 58 | [dependencies] | ||
| 59 | core_arch = {{ path = "../crates/core_arch" }} | ||
| 60 | {binaries}"#, | ||
| 61 | version = env!("CARGO_PKG_VERSION"), | ||
| 62 | authors = env!("CARGO_PKG_AUTHORS") | ||
| 63 | .split(":") | ||
| 64 | .format_with(", ", |author, fmt| fmt(&format_args!("\"{author}\""))), | ||
| 65 | license = env!("CARGO_PKG_LICENSE"), | ||
| 66 | binaries = binaries | ||
| 67 | .iter() | ||
| 68 | .map(|binary| { | ||
| 69 | format!( | ||
| 70 | r#"[[bin]] | ||
| 71 | name = "{binary}" | ||
| 72 | path = "{binary}/main.rs""#, | ||
| 73 | ) | ||
| 74 | }) | ||
| 75 | .collect::<Vec<_>>() | ||
| 76 | .join("\n") | ||
| 77 | ) | ||
| 78 | .into_bytes() | ||
| 79 | .as_slice(), | ||
| 80 | ) | ||
| 81 | .unwrap(); | ||
| 82 | |||
| 83 | let toolchain = match toolchain { | ||
| 84 | None => return true, | ||
| 85 | Some(t) => t, | ||
| 86 | }; | ||
| 87 | 84 | ||
| 88 | /* If there has been a linker explicitly set from the command line then | 85 | /* If there has been a linker explicitly set from the command line then |
| 89 | * we want to set it via setting it in the RUSTFLAGS*/ | 86 | * we want to set it via setting it in the RUSTFLAGS*/ |
| 90 | 87 | ||
| 91 | let cargo_command = format!("cargo {toolchain} build --target {target} --release"); | 88 | let mut cargo_command = Command::new("cargo"); |
| 89 | cargo_command.current_dir("rust_programs"); | ||
| 92 | 90 | ||
| 93 | let mut command = Command::new("sh"); | 91 | if let Some(toolchain) = toolchain { |
| 94 | command | 92 | if !toolchain.is_empty() { |
| 95 | .current_dir("rust_programs") | 93 | cargo_command.arg(toolchain); |
| 96 | .arg("-c") | 94 | } |
| 97 | .arg(cargo_command); | 95 | } |
| 96 | cargo_command.args(["build", "--target", target, "--release"]); | ||
| 98 | 97 | ||
| 99 | let mut rust_flags = "-Cdebuginfo=0".to_string(); | 98 | let mut rust_flags = "-Cdebuginfo=0".to_string(); |
| 100 | if let Some(linker) = linker { | 99 | if let Some(linker) = linker { |
| ... | @@ -102,11 +101,11 @@ path = "{binary}/main.rs""#, | ... | @@ -102,11 +101,11 @@ path = "{binary}/main.rs""#, |
| 102 | rust_flags.push_str(linker); | 101 | rust_flags.push_str(linker); |
| 103 | rust_flags.push_str(" -C link-args=-static"); | 102 | rust_flags.push_str(" -C link-args=-static"); |
| 104 | 103 | ||
| 105 | command.env("CPPFLAGS", "-fuse-ld=lld"); | 104 | cargo_command.env("CPPFLAGS", "-fuse-ld=lld"); |
| 106 | } | 105 | } |
| 107 | 106 | ||
| 108 | command.env("RUSTFLAGS", rust_flags); | 107 | cargo_command.env("RUSTFLAGS", rust_flags); |
| 109 | let output = command.output(); | 108 | let output = cargo_command.output(); |
| 110 | 109 | ||
| 111 | if let Ok(output) = output { | 110 | if let Ok(output) = output { |
| 112 | if output.status.success() { | 111 | if output.status.success() { |
library/stdarch/crates/intrinsic-test/src/common/intrinsic_helpers.rs+65-23| ... | @@ -8,14 +8,22 @@ use super::cli::Language; | ... | @@ -8,14 +8,22 @@ use super::cli::Language; |
| 8 | use super::indentation::Indentation; | 8 | use super::indentation::Indentation; |
| 9 | use super::values::value_for_array; | 9 | use super::values::value_for_array; |
| 10 | 10 | ||
| 11 | #[derive(Debug, PartialEq, Copy, Clone)] | ||
| 12 | pub enum Sign { | ||
| 13 | Signed, | ||
| 14 | Unsigned, | ||
| 15 | } | ||
| 16 | |||
| 11 | #[derive(Debug, PartialEq, Copy, Clone)] | 17 | #[derive(Debug, PartialEq, Copy, Clone)] |
| 12 | pub enum TypeKind { | 18 | pub enum TypeKind { |
| 13 | BFloat, | 19 | BFloat, |
| 14 | Float, | 20 | Float, |
| 15 | Int, | 21 | Int(Sign), |
| 16 | UInt, | 22 | Char(Sign), |
| 17 | Poly, | 23 | Poly, |
| 18 | Void, | 24 | Void, |
| 25 | Mask, | ||
| 26 | Vector, | ||
| 19 | } | 27 | } |
| 20 | 28 | ||
| 21 | impl FromStr for TypeKind { | 29 | impl FromStr for TypeKind { |
| ... | @@ -23,12 +31,17 @@ impl FromStr for TypeKind { | ... | @@ -23,12 +31,17 @@ impl FromStr for TypeKind { |
| 23 | 31 | ||
| 24 | fn from_str(s: &str) -> Result<Self, Self::Err> { | 32 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
| 25 | match s { | 33 | match s { |
| 26 | "bfloat" => Ok(Self::BFloat), | 34 | "bfloat" | "BF16" => Ok(Self::BFloat), |
| 27 | "float" => Ok(Self::Float), | 35 | "float" | "double" | "FP16" | "FP32" | "FP64" => Ok(Self::Float), |
| 28 | "int" => Ok(Self::Int), | 36 | "int" | "long" | "short" | "SI8" | "SI16" | "SI32" | "SI64" => { |
| 37 | Ok(Self::Int(Sign::Signed)) | ||
| 38 | } | ||
| 29 | "poly" => Ok(Self::Poly), | 39 | "poly" => Ok(Self::Poly), |
| 30 | "uint" | "unsigned" => Ok(Self::UInt), | 40 | "char" => Ok(Self::Char(Sign::Signed)), |
| 41 | "uint" | "unsigned" | "UI8" | "UI16" | "UI32" | "UI64" => Ok(Self::Int(Sign::Unsigned)), | ||
| 31 | "void" => Ok(Self::Void), | 42 | "void" => Ok(Self::Void), |
| 43 | "MASK" => Ok(Self::Mask), | ||
| 44 | "M64" | "M128" | "M256" | "M512" => Ok(Self::Vector), | ||
| 32 | _ => Err(format!("Impossible to parse argument kind {s}")), | 45 | _ => Err(format!("Impossible to parse argument kind {s}")), |
| 33 | } | 46 | } |
| 34 | } | 47 | } |
| ... | @@ -42,10 +55,14 @@ impl fmt::Display for TypeKind { | ... | @@ -42,10 +55,14 @@ impl fmt::Display for TypeKind { |
| 42 | match self { | 55 | match self { |
| 43 | Self::BFloat => "bfloat", | 56 | Self::BFloat => "bfloat", |
| 44 | Self::Float => "float", | 57 | Self::Float => "float", |
| 45 | Self::Int => "int", | 58 | Self::Int(Sign::Signed) => "int", |
| 46 | Self::UInt => "uint", | 59 | Self::Int(Sign::Unsigned) => "uint", |
| 47 | Self::Poly => "poly", | 60 | Self::Poly => "poly", |
| 48 | Self::Void => "void", | 61 | Self::Void => "void", |
| 62 | Self::Char(Sign::Signed) => "char", | ||
| 63 | Self::Char(Sign::Unsigned) => "unsigned char", | ||
| 64 | Self::Mask => "mask", | ||
| 65 | Self::Vector => "vector", | ||
| 49 | } | 66 | } |
| 50 | ) | 67 | ) |
| 51 | } | 68 | } |
| ... | @@ -56,9 +73,10 @@ impl TypeKind { | ... | @@ -56,9 +73,10 @@ impl TypeKind { |
| 56 | pub fn c_prefix(&self) -> &str { | 73 | pub fn c_prefix(&self) -> &str { |
| 57 | match self { | 74 | match self { |
| 58 | Self::Float => "float", | 75 | Self::Float => "float", |
| 59 | Self::Int => "int", | 76 | Self::Int(Sign::Signed) => "int", |
| 60 | Self::UInt => "uint", | 77 | Self::Int(Sign::Unsigned) => "uint", |
| 61 | Self::Poly => "poly", | 78 | Self::Poly => "poly", |
| 79 | Self::Char(Sign::Signed) => "char", | ||
| 62 | _ => unreachable!("Not used: {:#?}", self), | 80 | _ => unreachable!("Not used: {:#?}", self), |
| 63 | } | 81 | } |
| 64 | } | 82 | } |
| ... | @@ -66,10 +84,13 @@ impl TypeKind { | ... | @@ -66,10 +84,13 @@ impl TypeKind { |
| 66 | /// Gets the rust prefix for the type kind i.e. i, u, f. | 84 | /// Gets the rust prefix for the type kind i.e. i, u, f. |
| 67 | pub fn rust_prefix(&self) -> &str { | 85 | pub fn rust_prefix(&self) -> &str { |
| 68 | match self { | 86 | match self { |
| 87 | Self::BFloat => "bf", | ||
| 69 | Self::Float => "f", | 88 | Self::Float => "f", |
| 70 | Self::Int => "i", | 89 | Self::Int(Sign::Signed) => "i", |
| 71 | Self::UInt => "u", | 90 | Self::Int(Sign::Unsigned) => "u", |
| 72 | Self::Poly => "u", | 91 | Self::Poly => "u", |
| 92 | Self::Char(Sign::Unsigned) => "u", | ||
| 93 | Self::Char(Sign::Signed) => "i", | ||
| 73 | _ => unreachable!("Unused type kind: {:#?}", self), | 94 | _ => unreachable!("Unused type kind: {:#?}", self), |
| 74 | } | 95 | } |
| 75 | } | 96 | } |
| ... | @@ -133,11 +154,14 @@ impl IntrinsicType { | ... | @@ -133,11 +154,14 @@ impl IntrinsicType { |
| 133 | } | 154 | } |
| 134 | 155 | ||
| 135 | pub fn c_scalar_type(&self) -> String { | 156 | pub fn c_scalar_type(&self) -> String { |
| 136 | format!( | 157 | match self.kind() { |
| 137 | "{prefix}{bits}_t", | 158 | TypeKind::Char(_) => String::from("char"), |
| 138 | prefix = self.kind().c_prefix(), | 159 | _ => format!( |
| 139 | bits = self.inner_size() | 160 | "{prefix}{bits}_t", |
| 140 | ) | 161 | prefix = self.kind().c_prefix(), |
| 162 | bits = self.inner_size() | ||
| 163 | ), | ||
| 164 | } | ||
| 141 | } | 165 | } |
| 142 | 166 | ||
| 143 | pub fn rust_scalar_type(&self) -> String { | 167 | pub fn rust_scalar_type(&self) -> String { |
| ... | @@ -155,8 +179,8 @@ impl IntrinsicType { | ... | @@ -155,8 +179,8 @@ impl IntrinsicType { |
| 155 | bit_len: Some(8), | 179 | bit_len: Some(8), |
| 156 | .. | 180 | .. |
| 157 | } => match kind { | 181 | } => match kind { |
| 158 | TypeKind::Int => "(int)", | 182 | TypeKind::Int(Sign::Signed) => "(int)", |
| 159 | TypeKind::UInt => "(unsigned int)", | 183 | TypeKind::Int(Sign::Unsigned) => "(unsigned int)", |
| 160 | TypeKind::Poly => "(unsigned int)(uint8_t)", | 184 | TypeKind::Poly => "(unsigned int)(uint8_t)", |
| 161 | _ => "", | 185 | _ => "", |
| 162 | }, | 186 | }, |
| ... | @@ -172,6 +196,21 @@ impl IntrinsicType { | ... | @@ -172,6 +196,21 @@ impl IntrinsicType { |
| 172 | 128 => "", | 196 | 128 => "", |
| 173 | _ => panic!("invalid bit_len"), | 197 | _ => panic!("invalid bit_len"), |
| 174 | }, | 198 | }, |
| 199 | IntrinsicType { | ||
| 200 | kind: TypeKind::Float, | ||
| 201 | bit_len: Some(bit_len), | ||
| 202 | .. | ||
| 203 | } => match bit_len { | ||
| 204 | 16 => "(float16_t)", | ||
| 205 | 32 => "(float)", | ||
| 206 | 64 => "(double)", | ||
| 207 | 128 => "", | ||
| 208 | _ => panic!("invalid bit_len"), | ||
| 209 | }, | ||
| 210 | IntrinsicType { | ||
| 211 | kind: TypeKind::Char(_), | ||
| 212 | .. | ||
| 213 | } => "(char)", | ||
| 175 | _ => "", | 214 | _ => "", |
| 176 | } | 215 | } |
| 177 | } | 216 | } |
| ... | @@ -185,7 +224,7 @@ impl IntrinsicType { | ... | @@ -185,7 +224,7 @@ impl IntrinsicType { |
| 185 | match self { | 224 | match self { |
| 186 | IntrinsicType { | 225 | IntrinsicType { |
| 187 | bit_len: Some(bit_len @ (8 | 16 | 32 | 64)), | 226 | bit_len: Some(bit_len @ (8 | 16 | 32 | 64)), |
| 188 | kind: kind @ (TypeKind::Int | TypeKind::UInt | TypeKind::Poly), | 227 | kind: kind @ (TypeKind::Int(_) | TypeKind::Poly | TypeKind::Char(_)), |
| 189 | simd_len, | 228 | simd_len, |
| 190 | vec_len, | 229 | vec_len, |
| 191 | .. | 230 | .. |
| ... | @@ -201,7 +240,8 @@ impl IntrinsicType { | ... | @@ -201,7 +240,8 @@ impl IntrinsicType { |
| 201 | .format_with(",\n", |i, fmt| { | 240 | .format_with(",\n", |i, fmt| { |
| 202 | let src = value_for_array(*bit_len, i); | 241 | let src = value_for_array(*bit_len, i); |
| 203 | assert!(src == 0 || src.ilog2() < *bit_len); | 242 | assert!(src == 0 || src.ilog2() < *bit_len); |
| 204 | if *kind == TypeKind::Int && (src >> (*bit_len - 1)) != 0 { | 243 | if *kind == TypeKind::Int(Sign::Signed) && (src >> (*bit_len - 1)) != 0 |
| 244 | { | ||
| 205 | // `src` is a two's complement representation of a negative value. | 245 | // `src` is a two's complement representation of a negative value. |
| 206 | let mask = !0u64 >> (64 - *bit_len); | 246 | let mask = !0u64 >> (64 - *bit_len); |
| 207 | let ones_compl = src ^ mask; | 247 | let ones_compl = src ^ mask; |
| ... | @@ -257,7 +297,7 @@ impl IntrinsicType { | ... | @@ -257,7 +297,7 @@ impl IntrinsicType { |
| 257 | .. | 297 | .. |
| 258 | } => false, | 298 | } => false, |
| 259 | IntrinsicType { | 299 | IntrinsicType { |
| 260 | kind: TypeKind::Int | TypeKind::UInt | TypeKind::Poly, | 300 | kind: TypeKind::Int(_) | TypeKind::Poly, |
| 261 | .. | 301 | .. |
| 262 | } => true, | 302 | } => true, |
| 263 | _ => unimplemented!(), | 303 | _ => unimplemented!(), |
| ... | @@ -282,7 +322,9 @@ pub trait IntrinsicTypeDefinition: Deref<Target = IntrinsicType> { | ... | @@ -282,7 +322,9 @@ pub trait IntrinsicTypeDefinition: Deref<Target = IntrinsicType> { |
| 282 | fn get_lane_function(&self) -> String; | 322 | fn get_lane_function(&self) -> String; |
| 283 | 323 | ||
| 284 | /// can be implemented in an `impl` block | 324 | /// can be implemented in an `impl` block |
| 285 | fn from_c(_s: &str, _target: &str) -> Result<Box<Self>, String>; | 325 | fn from_c(_s: &str, _target: &str) -> Result<Self, String> |
| 326 | where | ||
| 327 | Self: Sized; | ||
| 286 | 328 | ||
| 287 | /// Gets a string containing the typename for this type in C format. | 329 | /// Gets a string containing the typename for this type in C format. |
| 288 | /// can be directly defined in `impl` blocks | 330 | /// can be directly defined in `impl` blocks |
library/stdarch/crates/intrinsic-test/src/common/write_file.rs-33| ... | @@ -1,5 +1,3 @@ | ... | @@ -1,5 +1,3 @@ |
| 1 | use super::gen_c::create_c_test_program; | ||
| 2 | use super::gen_c::setup_c_file_paths; | ||
| 3 | use super::gen_rust::{create_rust_test_program, setup_rust_file_paths}; | 1 | use super::gen_rust::{create_rust_test_program, setup_rust_file_paths}; |
| 4 | use super::intrinsic::IntrinsicDefinition; | 2 | use super::intrinsic::IntrinsicDefinition; |
| 5 | use super::intrinsic_helpers::IntrinsicTypeDefinition; | 3 | use super::intrinsic_helpers::IntrinsicTypeDefinition; |
| ... | @@ -11,37 +9,6 @@ pub fn write_file(filename: &String, code: String) { | ... | @@ -11,37 +9,6 @@ pub fn write_file(filename: &String, code: String) { |
| 11 | file.write_all(code.into_bytes().as_slice()).unwrap(); | 9 | file.write_all(code.into_bytes().as_slice()).unwrap(); |
| 12 | } | 10 | } |
| 13 | 11 | ||
| 14 | pub fn write_c_testfiles<T: IntrinsicTypeDefinition + Sized>( | ||
| 15 | intrinsics: &Vec<&dyn IntrinsicDefinition<T>>, | ||
| 16 | target: &str, | ||
| 17 | c_target: &str, | ||
| 18 | headers: &[&str], | ||
| 19 | notice: &str, | ||
| 20 | arch_specific_definitions: &[&str], | ||
| 21 | ) -> Vec<String> { | ||
| 22 | let intrinsics_name_list = intrinsics | ||
| 23 | .iter() | ||
| 24 | .map(|i| i.name().clone()) | ||
| 25 | .collect::<Vec<_>>(); | ||
| 26 | let filename_mapping = setup_c_file_paths(&intrinsics_name_list); | ||
| 27 | |||
| 28 | intrinsics.iter().for_each(|&i| { | ||
| 29 | let c_code = create_c_test_program( | ||
| 30 | i, | ||
| 31 | headers, | ||
| 32 | target, | ||
| 33 | c_target, | ||
| 34 | notice, | ||
| 35 | arch_specific_definitions, | ||
| 36 | ); | ||
| 37 | if let Some(filename) = filename_mapping.get(&i.name()) { | ||
| 38 | write_file(filename, c_code) | ||
| 39 | }; | ||
| 40 | }); | ||
| 41 | |||
| 42 | intrinsics_name_list | ||
| 43 | } | ||
| 44 | |||
| 45 | pub fn write_rust_testfiles<T: IntrinsicTypeDefinition>( | 12 | pub fn write_rust_testfiles<T: IntrinsicTypeDefinition>( |
| 46 | intrinsics: Vec<&dyn IntrinsicDefinition<T>>, | 13 | intrinsics: Vec<&dyn IntrinsicDefinition<T>>, |
| 47 | rust_target: &str, | 14 | rust_target: &str, |
library/stdarch/crates/intrinsic-test/src/main.rs+3| ... | @@ -30,12 +30,15 @@ fn main() { | ... | @@ -30,12 +30,15 @@ fn main() { |
| 30 | 30 | ||
| 31 | let test_environment = test_environment_result.unwrap(); | 31 | let test_environment = test_environment_result.unwrap(); |
| 32 | 32 | ||
| 33 | info!("building C binaries"); | ||
| 33 | if !test_environment.build_c_file() { | 34 | if !test_environment.build_c_file() { |
| 34 | std::process::exit(2); | 35 | std::process::exit(2); |
| 35 | } | 36 | } |
| 37 | info!("building Rust binaries"); | ||
| 36 | if !test_environment.build_rust_file() { | 38 | if !test_environment.build_rust_file() { |
| 37 | std::process::exit(3); | 39 | std::process::exit(3); |
| 38 | } | 40 | } |
| 41 | info!("comaparing outputs"); | ||
| 39 | if !test_environment.compare_outputs() { | 42 | if !test_environment.compare_outputs() { |
| 40 | std::process::exit(1); | 43 | std::process::exit(1); |
| 41 | } | 44 | } |
library/stdarch/crates/simd-test-macro/src/lib.rs+2-2| ... | @@ -57,12 +57,12 @@ pub fn simd_test( | ... | @@ -57,12 +57,12 @@ pub fn simd_test( |
| 57 | .unwrap_or_else(|| panic!("target triple contained no \"-\": {target}")) | 57 | .unwrap_or_else(|| panic!("target triple contained no \"-\": {target}")) |
| 58 | { | 58 | { |
| 59 | "i686" | "x86_64" | "i586" => "is_x86_feature_detected", | 59 | "i686" | "x86_64" | "i586" => "is_x86_feature_detected", |
| 60 | "arm" | "armv7" => "is_arm_feature_detected", | 60 | "arm" | "armv7" | "thumbv7neon" => "is_arm_feature_detected", |
| 61 | "aarch64" | "arm64ec" | "aarch64_be" => "is_aarch64_feature_detected", | 61 | "aarch64" | "arm64ec" | "aarch64_be" => "is_aarch64_feature_detected", |
| 62 | maybe_riscv if maybe_riscv.starts_with("riscv") => "is_riscv_feature_detected", | 62 | maybe_riscv if maybe_riscv.starts_with("riscv") => "is_riscv_feature_detected", |
| 63 | "powerpc" | "powerpcle" => "is_powerpc_feature_detected", | 63 | "powerpc" | "powerpcle" => "is_powerpc_feature_detected", |
| 64 | "powerpc64" | "powerpc64le" => "is_powerpc64_feature_detected", | 64 | "powerpc64" | "powerpc64le" => "is_powerpc64_feature_detected", |
| 65 | "loongarch64" => "is_loongarch_feature_detected", | 65 | "loongarch32" | "loongarch64" => "is_loongarch_feature_detected", |
| 66 | "s390x" => "is_s390x_feature_detected", | 66 | "s390x" => "is_s390x_feature_detected", |
| 67 | t => panic!("unknown target: {t}"), | 67 | t => panic!("unknown target: {t}"), |
| 68 | }; | 68 | }; |
library/stdarch/crates/std_detect/README.md+1-1| ... | @@ -55,7 +55,7 @@ crate from working on applications in which `std` is not available. | ... | @@ -55,7 +55,7 @@ crate from working on applications in which `std` is not available. |
| 55 | application. | 55 | application. |
| 56 | 56 | ||
| 57 | * Linux/Android: | 57 | * Linux/Android: |
| 58 | * `arm{32, 64}`, `mips{32,64}{,el}`, `powerpc{32,64}{,le}`, `loongarch64`, `s390x`: | 58 | * `arm{32, 64}`, `mips{32,64}{,el}`, `powerpc{32,64}{,le}`, `loongarch{32,64}`, `s390x`: |
| 59 | `std_detect` supports these on Linux by querying ELF auxiliary vectors (using `getauxval` | 59 | `std_detect` supports these on Linux by querying ELF auxiliary vectors (using `getauxval` |
| 60 | when available), and if that fails, by querying `/proc/self/auxv`. | 60 | when available), and if that fails, by querying `/proc/self/auxv`. |
| 61 | * `arm64`: partial support for doing run-time feature detection by directly | 61 | * `arm64`: partial support for doing run-time feature detection by directly |
library/stdarch/crates/std_detect/src/detect/arch/loongarch.rs+1-1| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | ||
| 3 | features! { | 3 | features! { |
| 4 | @TARGET: loongarch; | 4 | @TARGET: loongarch; |
| 5 | @CFG: target_arch = "loongarch64"; | 5 | @CFG: any(target_arch = "loongarch32", target_arch = "loongarch64"); |
| 6 | @MACRO_NAME: is_loongarch_feature_detected; | 6 | @MACRO_NAME: is_loongarch_feature_detected; |
| 7 | @MACRO_ATTRS: | 7 | @MACRO_ATTRS: |
| 8 | /// Checks if `loongarch` feature is enabled. | 8 | /// Checks if `loongarch` feature is enabled. |
library/stdarch/crates/std_detect/src/detect/arch/mod.rs+1-1| ... | @@ -49,7 +49,7 @@ cfg_if! { | ... | @@ -49,7 +49,7 @@ cfg_if! { |
| 49 | } else if #[cfg(target_arch = "mips64")] { | 49 | } else if #[cfg(target_arch = "mips64")] { |
| 50 | #[unstable(feature = "stdarch_mips_feature_detection", issue = "111188")] | 50 | #[unstable(feature = "stdarch_mips_feature_detection", issue = "111188")] |
| 51 | pub use mips64::*; | 51 | pub use mips64::*; |
| 52 | } else if #[cfg(target_arch = "loongarch64")] { | 52 | } else if #[cfg(any(target_arch = "loongarch32", target_arch = "loongarch64"))] { |
| 53 | #[stable(feature = "stdarch_loongarch_feature", since = "1.89.0")] | 53 | #[stable(feature = "stdarch_loongarch_feature", since = "1.89.0")] |
| 54 | pub use loongarch::*; | 54 | pub use loongarch::*; |
| 55 | } else if #[cfg(target_arch = "s390x")] { | 55 | } else if #[cfg(target_arch = "s390x")] { |
library/stdarch/crates/std_detect/src/detect/mod.rs+1| ... | @@ -103,6 +103,7 @@ pub fn features() -> impl Iterator<Item = (&'static str, bool)> { | ... | @@ -103,6 +103,7 @@ pub fn features() -> impl Iterator<Item = (&'static str, bool)> { |
| 103 | target_arch = "powerpc64", | 103 | target_arch = "powerpc64", |
| 104 | target_arch = "mips", | 104 | target_arch = "mips", |
| 105 | target_arch = "mips64", | 105 | target_arch = "mips64", |
| 106 | target_arch = "loongarch32", | ||
| 106 | target_arch = "loongarch64", | 107 | target_arch = "loongarch64", |
| 107 | target_arch = "s390x", | 108 | target_arch = "s390x", |
| 108 | ))] { | 109 | ))] { |
library/stdarch/crates/std_detect/src/detect/os/linux/auxvec.rs+2| ... | @@ -80,6 +80,7 @@ pub(crate) fn auxv() -> Result<AuxVec, ()> { | ... | @@ -80,6 +80,7 @@ pub(crate) fn auxv() -> Result<AuxVec, ()> { |
| 80 | target_arch = "riscv64", | 80 | target_arch = "riscv64", |
| 81 | target_arch = "mips", | 81 | target_arch = "mips", |
| 82 | target_arch = "mips64", | 82 | target_arch = "mips64", |
| 83 | target_arch = "loongarch32", | ||
| 83 | target_arch = "loongarch64", | 84 | target_arch = "loongarch64", |
| 84 | ))] | 85 | ))] |
| 85 | { | 86 | { |
| ... | @@ -182,6 +183,7 @@ fn auxv_from_buf(buf: &[usize]) -> Result<AuxVec, ()> { | ... | @@ -182,6 +183,7 @@ fn auxv_from_buf(buf: &[usize]) -> Result<AuxVec, ()> { |
| 182 | target_arch = "riscv64", | 183 | target_arch = "riscv64", |
| 183 | target_arch = "mips", | 184 | target_arch = "mips", |
| 184 | target_arch = "mips64", | 185 | target_arch = "mips64", |
| 186 | target_arch = "loongarch32", | ||
| 185 | target_arch = "loongarch64", | 187 | target_arch = "loongarch64", |
| 186 | ))] | 188 | ))] |
| 187 | { | 189 | { |
library/stdarch/crates/std_detect/src/detect/os/linux/mod.rs+1-1| ... | @@ -51,7 +51,7 @@ cfg_if::cfg_if! { | ... | @@ -51,7 +51,7 @@ cfg_if::cfg_if! { |
| 51 | } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] { | 51 | } else if #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))] { |
| 52 | mod powerpc; | 52 | mod powerpc; |
| 53 | pub(crate) use self::powerpc::detect_features; | 53 | pub(crate) use self::powerpc::detect_features; |
| 54 | } else if #[cfg(target_arch = "loongarch64")] { | 54 | } else if #[cfg(any(target_arch = "loongarch32", target_arch = "loongarch64"))] { |
| 55 | mod loongarch; | 55 | mod loongarch; |
| 56 | pub(crate) use self::loongarch::detect_features; | 56 | pub(crate) use self::loongarch::detect_features; |
| 57 | } else if #[cfg(target_arch = "s390x")] { | 57 | } else if #[cfg(target_arch = "s390x")] { |
library/stdarch/crates/std_detect/tests/macro_trailing_commas.rs+5-3| ... | @@ -11,6 +11,7 @@ | ... | @@ -11,6 +11,7 @@ |
| 11 | target_arch = "s390x", | 11 | target_arch = "s390x", |
| 12 | target_arch = "riscv32", | 12 | target_arch = "riscv32", |
| 13 | target_arch = "riscv64", | 13 | target_arch = "riscv64", |
| 14 | target_arch = "loongarch32", | ||
| 14 | target_arch = "loongarch64" | 15 | target_arch = "loongarch64" |
| 15 | ), | 16 | ), |
| 16 | feature(stdarch_internal) | 17 | feature(stdarch_internal) |
| ... | @@ -30,7 +31,7 @@ | ... | @@ -30,7 +31,7 @@ |
| 30 | feature(stdarch_riscv_feature_detection) | 31 | feature(stdarch_riscv_feature_detection) |
| 31 | )] | 32 | )] |
| 32 | #![cfg_attr( | 33 | #![cfg_attr( |
| 33 | target_arch = "loongarch64", | 34 | any(target_arch = "loongarch32", target_arch = "loongarch64"), |
| 34 | feature(stdarch_loongarch_feature_detection) | 35 | feature(stdarch_loongarch_feature_detection) |
| 35 | )] | 36 | )] |
| 36 | 37 | ||
| ... | @@ -45,6 +46,7 @@ | ... | @@ -45,6 +46,7 @@ |
| 45 | target_arch = "s390x", | 46 | target_arch = "s390x", |
| 46 | target_arch = "riscv32", | 47 | target_arch = "riscv32", |
| 47 | target_arch = "riscv64", | 48 | target_arch = "riscv64", |
| 49 | target_arch = "loongarch32", | ||
| 48 | target_arch = "loongarch64" | 50 | target_arch = "loongarch64" |
| 49 | ))] | 51 | ))] |
| 50 | #[macro_use] | 52 | #[macro_use] |
| ... | @@ -65,8 +67,8 @@ fn aarch64() { | ... | @@ -65,8 +67,8 @@ fn aarch64() { |
| 65 | } | 67 | } |
| 66 | 68 | ||
| 67 | #[test] | 69 | #[test] |
| 68 | #[cfg(target_arch = "loongarch64")] | 70 | #[cfg(any(target_arch = "loongarch32", target_arch = "loongarch64"))] |
| 69 | fn loongarch64() { | 71 | fn loongarch() { |
| 70 | let _ = is_loongarch_feature_detected!("lsx"); | 72 | let _ = is_loongarch_feature_detected!("lsx"); |
| 71 | let _ = is_loongarch_feature_detected!("lsx",); | 73 | let _ = is_loongarch_feature_detected!("lsx",); |
| 72 | } | 74 | } |
library/stdarch/crates/stdarch-gen-arm/Cargo.toml-1| ... | @@ -13,7 +13,6 @@ edition = "2024" | ... | @@ -13,7 +13,6 @@ edition = "2024" |
| 13 | 13 | ||
| 14 | [dependencies] | 14 | [dependencies] |
| 15 | itertools = "0.14.0" | 15 | itertools = "0.14.0" |
| 16 | lazy_static = "1.4.0" | ||
| 17 | proc-macro2 = "1.0" | 16 | proc-macro2 = "1.0" |
| 18 | quote = "1.0" | 17 | quote = "1.0" |
| 19 | regex = "1.5" | 18 | regex = "1.5" |
library/stdarch/crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml+66-128| ... | @@ -187,7 +187,7 @@ intrinsics: | ... | @@ -187,7 +187,7 @@ intrinsics: |
| 187 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] | 187 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] |
| 188 | return_type: "{neon_type[1]}" | 188 | return_type: "{neon_type[1]}" |
| 189 | attr: [*neon-stable] | 189 | attr: [*neon-stable] |
| 190 | assert_instr: [sabdl] | 190 | assert_instr: [sabdl2] |
| 191 | safety: safe | 191 | safety: safe |
| 192 | types: | 192 | types: |
| 193 | - [int8x16_t, int16x8_t, int8x8_t, uint8x8_t] | 193 | - [int8x16_t, int16x8_t, int8x8_t, uint8x8_t] |
| ... | @@ -230,7 +230,7 @@ intrinsics: | ... | @@ -230,7 +230,7 @@ intrinsics: |
| 230 | - stable | 230 | - stable |
| 231 | - - 'feature = "neon_intrinsics"' | 231 | - - 'feature = "neon_intrinsics"' |
| 232 | - 'since = "1.59.0"' | 232 | - 'since = "1.59.0"' |
| 233 | assert_instr: [sabdl] | 233 | assert_instr: [sabdl2] |
| 234 | safety: safe | 234 | safety: safe |
| 235 | types: | 235 | types: |
| 236 | - [int16x8_t, int32x4_t, int16x4_t, uint16x4_t] | 236 | - [int16x8_t, int32x4_t, int16x4_t, uint16x4_t] |
| ... | @@ -273,7 +273,7 @@ intrinsics: | ... | @@ -273,7 +273,7 @@ intrinsics: |
| 273 | - stable | 273 | - stable |
| 274 | - - 'feature = "neon_intrinsics"' | 274 | - - 'feature = "neon_intrinsics"' |
| 275 | - 'since = "1.59.0"' | 275 | - 'since = "1.59.0"' |
| 276 | assert_instr: [sabdl] | 276 | assert_instr: [sabdl2] |
| 277 | safety: safe | 277 | safety: safe |
| 278 | types: | 278 | types: |
| 279 | - [int32x4_t, int64x2_t, int32x2_t, uint32x2_t] | 279 | - [int32x4_t, int64x2_t, int32x2_t, uint32x2_t] |
| ... | @@ -1462,7 +1462,7 @@ intrinsics: | ... | @@ -1462,7 +1462,7 @@ intrinsics: |
| 1462 | arguments: ["a: {neon_type[0]}"] | 1462 | arguments: ["a: {neon_type[0]}"] |
| 1463 | return_type: "{neon_type[1]}" | 1463 | return_type: "{neon_type[1]}" |
| 1464 | attr: | 1464 | attr: |
| 1465 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [fcvtl]]}]] | 1465 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [fcvtl2]]}]] |
| 1466 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] | 1466 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] |
| 1467 | safety: safe | 1467 | safety: safe |
| 1468 | types: | 1468 | types: |
| ... | @@ -1530,7 +1530,7 @@ intrinsics: | ... | @@ -1530,7 +1530,7 @@ intrinsics: |
| 1530 | arguments: ["a: {neon_type[0]}", "b: {neon_type[1]}"] | 1530 | arguments: ["a: {neon_type[0]}", "b: {neon_type[1]}"] |
| 1531 | return_type: "{neon_type[2]}" | 1531 | return_type: "{neon_type[2]}" |
| 1532 | attr: | 1532 | attr: |
| 1533 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [fcvtn]]}]] | 1533 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [fcvtn2]]}]] |
| 1534 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] | 1534 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] |
| 1535 | safety: safe | 1535 | safety: safe |
| 1536 | types: | 1536 | types: |
| ... | @@ -1582,7 +1582,7 @@ intrinsics: | ... | @@ -1582,7 +1582,7 @@ intrinsics: |
| 1582 | arguments: ["a: {type[0]}", "b: {neon_type[1]}"] | 1582 | arguments: ["a: {type[0]}", "b: {neon_type[1]}"] |
| 1583 | return_type: "{type[2]}" | 1583 | return_type: "{type[2]}" |
| 1584 | attr: | 1584 | attr: |
| 1585 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [fcvtxn]]}]] | 1585 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [fcvtxn2]]}]] |
| 1586 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] | 1586 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] |
| 1587 | safety: safe | 1587 | safety: safe |
| 1588 | types: | 1588 | types: |
| ... | @@ -5147,7 +5147,7 @@ intrinsics: | ... | @@ -5147,7 +5147,7 @@ intrinsics: |
| 5147 | attr: | 5147 | attr: |
| 5148 | - *neon-stable | 5148 | - *neon-stable |
| 5149 | safety: safe | 5149 | safety: safe |
| 5150 | assert_instr: [pmull] | 5150 | assert_instr: [pmull2] |
| 5151 | types: | 5151 | types: |
| 5152 | - [poly8x16_t, poly8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', poly16x8_t] | 5152 | - [poly8x16_t, poly8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', poly16x8_t] |
| 5153 | compose: | 5153 | compose: |
| ... | @@ -5169,7 +5169,7 @@ intrinsics: | ... | @@ -5169,7 +5169,7 @@ intrinsics: |
| 5169 | - *neon-aes | 5169 | - *neon-aes |
| 5170 | - *neon-stable | 5170 | - *neon-stable |
| 5171 | safety: safe | 5171 | safety: safe |
| 5172 | assert_instr: [pmull] | 5172 | assert_instr: [pmull2] |
| 5173 | types: | 5173 | types: |
| 5174 | - [poly64x2_t, "p128"] | 5174 | - [poly64x2_t, "p128"] |
| 5175 | compose: | 5175 | compose: |
| ... | @@ -5741,7 +5741,7 @@ intrinsics: | ... | @@ -5741,7 +5741,7 @@ intrinsics: |
| 5741 | arguments: ["a: {neon_type[0]}", "b: {neon_type[1]}"] | 5741 | arguments: ["a: {neon_type[0]}", "b: {neon_type[1]}"] |
| 5742 | return_type: "{neon_type[0]}" | 5742 | return_type: "{neon_type[0]}" |
| 5743 | attr: [*neon-stable] | 5743 | attr: [*neon-stable] |
| 5744 | assert_instr: [ssubw] | 5744 | assert_instr: [ssubw2] |
| 5745 | safety: safe | 5745 | safety: safe |
| 5746 | types: | 5746 | types: |
| 5747 | - [int16x8_t, int8x16_t, int8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]'] | 5747 | - [int16x8_t, int8x16_t, int8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]'] |
| ... | @@ -5762,7 +5762,7 @@ intrinsics: | ... | @@ -5762,7 +5762,7 @@ intrinsics: |
| 5762 | arguments: ["a: {neon_type[0]}", "b: {neon_type[1]}"] | 5762 | arguments: ["a: {neon_type[0]}", "b: {neon_type[1]}"] |
| 5763 | return_type: "{neon_type[0]}" | 5763 | return_type: "{neon_type[0]}" |
| 5764 | attr: [*neon-stable] | 5764 | attr: [*neon-stable] |
| 5765 | assert_instr: [usubw] | 5765 | assert_instr: [usubw2] |
| 5766 | safety: safe | 5766 | safety: safe |
| 5767 | types: | 5767 | types: |
| 5768 | - [uint16x8_t, uint8x16_t, uint8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]'] | 5768 | - [uint16x8_t, uint8x16_t, uint8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]'] |
| ... | @@ -5783,7 +5783,7 @@ intrinsics: | ... | @@ -5783,7 +5783,7 @@ intrinsics: |
| 5783 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] | 5783 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] |
| 5784 | return_type: "{neon_type[1]}" | 5784 | return_type: "{neon_type[1]}" |
| 5785 | attr: [*neon-stable] | 5785 | attr: [*neon-stable] |
| 5786 | assert_instr: [ssubl] | 5786 | assert_instr: [ssubl2] |
| 5787 | safety: safe | 5787 | safety: safe |
| 5788 | types: | 5788 | types: |
| 5789 | - [int8x16_t, int16x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', int8x8_t] | 5789 | - [int8x16_t, int16x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', int8x8_t] |
| ... | @@ -5813,7 +5813,7 @@ intrinsics: | ... | @@ -5813,7 +5813,7 @@ intrinsics: |
| 5813 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] | 5813 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] |
| 5814 | return_type: "{neon_type[1]}" | 5814 | return_type: "{neon_type[1]}" |
| 5815 | attr: [*neon-stable] | 5815 | attr: [*neon-stable] |
| 5816 | assert_instr: [usubl] | 5816 | assert_instr: [usubl2] |
| 5817 | safety: safe | 5817 | safety: safe |
| 5818 | types: | 5818 | types: |
| 5819 | - [uint8x16_t, uint16x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', uint8x8_t] | 5819 | - [uint8x16_t, uint16x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', uint8x8_t] |
| ... | @@ -6580,7 +6580,6 @@ intrinsics: | ... | @@ -6580,7 +6580,6 @@ intrinsics: |
| 6580 | arch: aarch64,arm64ec | 6580 | arch: aarch64,arm64ec |
| 6581 | 6581 | ||
| 6582 | 6582 | ||
| 6583 | |||
| 6584 | - name: "vmaxnm{neon_type.no}" | 6583 | - name: "vmaxnm{neon_type.no}" |
| 6585 | doc: Floating-point Maximum Number (vector) | 6584 | doc: Floating-point Maximum Number (vector) |
| 6586 | arguments: ["a: {neon_type}", "b: {neon_type}"] | 6585 | arguments: ["a: {neon_type}", "b: {neon_type}"] |
| ... | @@ -6592,11 +6591,7 @@ intrinsics: | ... | @@ -6592,11 +6591,7 @@ intrinsics: |
| 6592 | - float64x1_t | 6591 | - float64x1_t |
| 6593 | - float64x2_t | 6592 | - float64x2_t |
| 6594 | compose: | 6593 | compose: |
| 6595 | - LLVMLink: | 6594 | - FnCall: [simd_fmax, [a, b]] |
| 6596 | name: "fmaxnm.{neon_type}" | ||
| 6597 | links: | ||
| 6598 | - link: "llvm.aarch64.neon.fmaxnm.{neon_type}" | ||
| 6599 | arch: aarch64,arm64ec | ||
| 6600 | 6595 | ||
| 6601 | 6596 | ||
| 6602 | - name: "vmaxnmh_{type}" | 6597 | - name: "vmaxnmh_{type}" |
| ... | @@ -6611,11 +6606,7 @@ intrinsics: | ... | @@ -6611,11 +6606,7 @@ intrinsics: |
| 6611 | types: | 6606 | types: |
| 6612 | - f16 | 6607 | - f16 |
| 6613 | compose: | 6608 | compose: |
| 6614 | - LLVMLink: | 6609 | - FnCall: ["f16::max", [a, b]] |
| 6615 | name: "vmaxh.{neon_type}" | ||
| 6616 | links: | ||
| 6617 | - link: "llvm.aarch64.neon.fmaxnm.{type}" | ||
| 6618 | arch: aarch64,arm64ec | ||
| 6619 | 6610 | ||
| 6620 | 6611 | ||
| 6621 | - name: "vminnmh_{type}" | 6612 | - name: "vminnmh_{type}" |
| ... | @@ -6630,11 +6621,7 @@ intrinsics: | ... | @@ -6630,11 +6621,7 @@ intrinsics: |
| 6630 | types: | 6621 | types: |
| 6631 | - f16 | 6622 | - f16 |
| 6632 | compose: | 6623 | compose: |
| 6633 | - LLVMLink: | 6624 | - FnCall: ["f16::min", [a, b]] |
| 6634 | name: "vminh.{neon_type}" | ||
| 6635 | links: | ||
| 6636 | - link: "llvm.aarch64.neon.fminnm.{type}" | ||
| 6637 | arch: aarch64,arm64ec | ||
| 6638 | 6625 | ||
| 6639 | 6626 | ||
| 6640 | - name: "vmaxnmv{neon_type[0].no}" | 6627 | - name: "vmaxnmv{neon_type[0].no}" |
| ... | @@ -6648,11 +6635,7 @@ intrinsics: | ... | @@ -6648,11 +6635,7 @@ intrinsics: |
| 6648 | - [float32x2_t, f32] | 6635 | - [float32x2_t, f32] |
| 6649 | - [float64x2_t, f64] | 6636 | - [float64x2_t, f64] |
| 6650 | compose: | 6637 | compose: |
| 6651 | - LLVMLink: | 6638 | - FnCall: [simd_reduce_max, [a]] |
| 6652 | name: "fmaxnmv.{neon_type[0]}" | ||
| 6653 | links: | ||
| 6654 | - link: "llvm.aarch64.neon.fmaxnmv.{type[1]}.{neon_type[0]}" | ||
| 6655 | arch: aarch64,arm64ec | ||
| 6656 | 6639 | ||
| 6657 | - name: "vmaxnmv{neon_type[0].no}" | 6640 | - name: "vmaxnmv{neon_type[0].no}" |
| 6658 | doc: Floating-point maximum number across vector | 6641 | doc: Floating-point maximum number across vector |
| ... | @@ -6664,11 +6647,7 @@ intrinsics: | ... | @@ -6664,11 +6647,7 @@ intrinsics: |
| 6664 | types: | 6647 | types: |
| 6665 | - [float32x4_t, f32] | 6648 | - [float32x4_t, f32] |
| 6666 | compose: | 6649 | compose: |
| 6667 | - LLVMLink: | 6650 | - FnCall: [simd_reduce_max, [a]] |
| 6668 | name: "fmaxnmv.{neon_type[0]}" | ||
| 6669 | links: | ||
| 6670 | - link: "llvm.aarch64.neon.fmaxnmv.{type[1]}.{neon_type[0]}" | ||
| 6671 | arch: aarch64,arm64ec | ||
| 6672 | 6651 | ||
| 6673 | 6652 | ||
| 6674 | - name: "vmaxnmv{neon_type[0].no}" | 6653 | - name: "vmaxnmv{neon_type[0].no}" |
| ... | @@ -6684,11 +6663,7 @@ intrinsics: | ... | @@ -6684,11 +6663,7 @@ intrinsics: |
| 6684 | - [float16x4_t, f16] | 6663 | - [float16x4_t, f16] |
| 6685 | - [float16x8_t, f16] | 6664 | - [float16x8_t, f16] |
| 6686 | compose: | 6665 | compose: |
| 6687 | - LLVMLink: | 6666 | - FnCall: [simd_reduce_max, [a]] |
| 6688 | name: "fmaxnmv.{neon_type[0]}" | ||
| 6689 | links: | ||
| 6690 | - link: "llvm.aarch64.neon.fmaxnmv.{type[1]}.{neon_type[0]}" | ||
| 6691 | arch: aarch64,arm64ec | ||
| 6692 | 6667 | ||
| 6693 | 6668 | ||
| 6694 | - name: "vminnmv{neon_type[0].no}" | 6669 | - name: "vminnmv{neon_type[0].no}" |
| ... | @@ -6704,11 +6679,7 @@ intrinsics: | ... | @@ -6704,11 +6679,7 @@ intrinsics: |
| 6704 | - [float16x4_t, f16] | 6679 | - [float16x4_t, f16] |
| 6705 | - [float16x8_t, f16] | 6680 | - [float16x8_t, f16] |
| 6706 | compose: | 6681 | compose: |
| 6707 | - LLVMLink: | 6682 | - FnCall: [simd_reduce_min, [a]] |
| 6708 | name: "fminnmv.{neon_type[0]}" | ||
| 6709 | links: | ||
| 6710 | - link: "llvm.aarch64.neon.fminnmv.{type[1]}.{neon_type[0]}" | ||
| 6711 | arch: aarch64,arm64ec | ||
| 6712 | 6683 | ||
| 6713 | 6684 | ||
| 6714 | - name: "vmaxv{neon_type[0].no}" | 6685 | - name: "vmaxv{neon_type[0].no}" |
| ... | @@ -6814,11 +6785,7 @@ intrinsics: | ... | @@ -6814,11 +6785,7 @@ intrinsics: |
| 6814 | - float64x1_t | 6785 | - float64x1_t |
| 6815 | - float64x2_t | 6786 | - float64x2_t |
| 6816 | compose: | 6787 | compose: |
| 6817 | - LLVMLink: | 6788 | - FnCall: [simd_fmin, [a, b]] |
| 6818 | name: "fminnm.{neon_type}" | ||
| 6819 | links: | ||
| 6820 | - link: "llvm.aarch64.neon.fminnm.{neon_type}" | ||
| 6821 | arch: aarch64,arm64ec | ||
| 6822 | 6789 | ||
| 6823 | - name: "vminnmv{neon_type[0].no}" | 6790 | - name: "vminnmv{neon_type[0].no}" |
| 6824 | doc: "Floating-point minimum number across vector" | 6791 | doc: "Floating-point minimum number across vector" |
| ... | @@ -6832,11 +6799,7 @@ intrinsics: | ... | @@ -6832,11 +6799,7 @@ intrinsics: |
| 6832 | - [float32x2_t, "f32"] | 6799 | - [float32x2_t, "f32"] |
| 6833 | - [float64x2_t, "f64"] | 6800 | - [float64x2_t, "f64"] |
| 6834 | compose: | 6801 | compose: |
| 6835 | - LLVMLink: | 6802 | - FnCall: [simd_reduce_min, [a]] |
| 6836 | name: "vminnmv.{neon_type[0]}" | ||
| 6837 | links: | ||
| 6838 | - link: "llvm.aarch64.neon.fminnmv.{type[1]}.{neon_type[0]}" | ||
| 6839 | arch: aarch64,arm64ec | ||
| 6840 | 6803 | ||
| 6841 | - name: "vminnmv{neon_type[0].no}" | 6804 | - name: "vminnmv{neon_type[0].no}" |
| 6842 | doc: "Floating-point minimum number across vector" | 6805 | doc: "Floating-point minimum number across vector" |
| ... | @@ -6849,11 +6812,7 @@ intrinsics: | ... | @@ -6849,11 +6812,7 @@ intrinsics: |
| 6849 | types: | 6812 | types: |
| 6850 | - [float32x4_t, "f32"] | 6813 | - [float32x4_t, "f32"] |
| 6851 | compose: | 6814 | compose: |
| 6852 | - LLVMLink: | 6815 | - FnCall: [simd_reduce_min, [a]] |
| 6853 | name: "vminnmv.{neon_type[0]}" | ||
| 6854 | links: | ||
| 6855 | - link: "llvm.aarch64.neon.fminnmv.{type[1]}.{neon_type[0]}" | ||
| 6856 | arch: aarch64,arm64ec | ||
| 6857 | 6816 | ||
| 6858 | - name: "vmovl_high{neon_type[0].noq}" | 6817 | - name: "vmovl_high{neon_type[0].noq}" |
| 6859 | doc: Vector move | 6818 | doc: Vector move |
| ... | @@ -9950,7 +9909,7 @@ intrinsics: | ... | @@ -9950,7 +9909,7 @@ intrinsics: |
| 9950 | return_type: "{neon_type[0]}" | 9909 | return_type: "{neon_type[0]}" |
| 9951 | attr: | 9910 | attr: |
| 9952 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] | 9911 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] |
| 9953 | - FnCall: [cfg_attr, [{FnCall: [all, [test, {FnCall: [not, ['target_env = "msvc"']]}]]}, {FnCall: [assert_instr, [uabal]]}]] | 9912 | - FnCall: [cfg_attr, [{FnCall: [all, [test, {FnCall: [not, ['target_env = "msvc"']]}]]}, {FnCall: [assert_instr, [uabal2]]}]] |
| 9954 | safety: safe | 9913 | safety: safe |
| 9955 | types: | 9914 | types: |
| 9956 | - [uint16x8_t, uint8x16_t, uint8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', '[8, 9, 10, 11, 12, 13, 14, 15]'] | 9915 | - [uint16x8_t, uint8x16_t, uint8x8_t, '[8, 9, 10, 11, 12, 13, 14, 15]', '[8, 9, 10, 11, 12, 13, 14, 15]'] |
| ... | @@ -9977,7 +9936,7 @@ intrinsics: | ... | @@ -9977,7 +9936,7 @@ intrinsics: |
| 9977 | return_type: "{neon_type[0]}" | 9936 | return_type: "{neon_type[0]}" |
| 9978 | attr: | 9937 | attr: |
| 9979 | - *neon-stable | 9938 | - *neon-stable |
| 9980 | - FnCall: [cfg_attr, [{FnCall: [all, [test, {FnCall: [not, ['target_env = "msvc"']]}]]}, {FnCall: [assert_instr, [sabal]]}]] | 9939 | - FnCall: [cfg_attr, [{FnCall: [all, [test, {FnCall: [not, ['target_env = "msvc"']]}]]}, {FnCall: [assert_instr, [sabal2]]}]] |
| 9981 | safety: safe | 9940 | safety: safe |
| 9982 | types: | 9941 | types: |
| 9983 | - [int16x8_t, int8x16_t, int8x16_t, '[8, 9, 10, 11, 12, 13, 14, 15]', int8x8_t, uint8x8_t] | 9942 | - [int16x8_t, int8x16_t, int8x16_t, '[8, 9, 10, 11, 12, 13, 14, 15]', int8x8_t, uint8x8_t] |
| ... | @@ -11386,7 +11345,7 @@ intrinsics: | ... | @@ -11386,7 +11345,7 @@ intrinsics: |
| 11386 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] | 11345 | arguments: ["a: {neon_type[0]}", "b: {neon_type[0]}"] |
| 11387 | return_type: "{neon_type[1]}" | 11346 | return_type: "{neon_type[1]}" |
| 11388 | attr: | 11347 | attr: |
| 11389 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [uabdl]]}]] | 11348 | - FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [uabdl2]]}]] |
| 11390 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] | 11349 | - FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']] |
| 11391 | safety: safe | 11350 | safety: safe |
| 11392 | types: | 11351 | types: |
| ... | @@ -13023,6 +12982,26 @@ intrinsics: | ... | @@ -13023,6 +12982,26 @@ intrinsics: |
| 13023 | - link: "llvm.aarch64.crc32cx" | 12982 | - link: "llvm.aarch64.crc32cx" |
| 13024 | arch: aarch64,arm64ec | 12983 | arch: aarch64,arm64ec |
| 13025 | 12984 | ||
| 12985 | - name: "vabsd_s64" | ||
| 12986 | doc: "Absolute Value (wrapping)." | ||
| 12987 | arguments: ["a: {type[1]}"] | ||
| 12988 | return_type: "{type[1]}" | ||
| 12989 | attr: | ||
| 12990 | - *neon-stable | ||
| 12991 | assert_instr: [abs] | ||
| 12992 | safety: safe | ||
| 12993 | types: | ||
| 12994 | - [i64, i64] | ||
| 12995 | compose: | ||
| 12996 | # This is behaviorally equivalent to `i64::wrapping_abs`, but keeps the value in a SIMD | ||
| 12997 | # register. That can be beneficial when combined with other instructions. This LLVM | ||
| 12998 | # issue provides some extra context https://github.com/llvm/llvm-project/issues/148388. | ||
| 12999 | - LLVMLink: | ||
| 13000 | name: "vabsd_s64" | ||
| 13001 | links: | ||
| 13002 | - link: "llvm.aarch64.neon.abs.i64" | ||
| 13003 | arch: aarch64,arm64ec | ||
| 13004 | |||
| 13026 | - name: "{type[0]}" | 13005 | - name: "{type[0]}" |
| 13027 | doc: "Absolute Value (wrapping)." | 13006 | doc: "Absolute Value (wrapping)." |
| 13028 | arguments: ["a: {type[1]}"] | 13007 | arguments: ["a: {type[1]}"] |
| ... | @@ -13032,15 +13011,18 @@ intrinsics: | ... | @@ -13032,15 +13011,18 @@ intrinsics: |
| 13032 | assert_instr: [abs] | 13011 | assert_instr: [abs] |
| 13033 | safety: safe | 13012 | safety: safe |
| 13034 | types: | 13013 | types: |
| 13035 | - ['vabsd_s64', i64, i64] | ||
| 13036 | - ['vabs_s64', int64x1_t, v1i64] | 13014 | - ['vabs_s64', int64x1_t, v1i64] |
| 13037 | - ['vabsq_s64', int64x2_t, v2i64] | 13015 | - ['vabsq_s64', int64x2_t, v2i64] |
| 13038 | compose: | 13016 | compose: |
| 13039 | - LLVMLink: | 13017 | - Let: |
| 13040 | name: "{type[0]}" | 13018 | - neg |
| 13041 | links: | 13019 | - "{type[1]}" |
| 13042 | - link: "llvm.aarch64.neon.abs.{type[2]}" | 13020 | - FnCall: [simd_neg, [a]] |
| 13043 | arch: aarch64,arm64ec | 13021 | - Let: |
| 13022 | - mask | ||
| 13023 | - "{type[1]}" | ||
| 13024 | - FnCall: [simd_ge, [a, neg]] | ||
| 13025 | - FnCall: [simd_select, [mask, a, neg]] | ||
| 13044 | 13026 | ||
| 13045 | - name: "vuqadd{neon_type[0].no}" | 13027 | - name: "vuqadd{neon_type[0].no}" |
| 13046 | doc: "Signed saturating Accumulate of Unsigned value." | 13028 | doc: "Signed saturating Accumulate of Unsigned value." |
| ... | @@ -13142,11 +13124,7 @@ intrinsics: | ... | @@ -13142,11 +13124,7 @@ intrinsics: |
| 13142 | types: | 13124 | types: |
| 13143 | - [int64x2_t, i64] | 13125 | - [int64x2_t, i64] |
| 13144 | compose: | 13126 | compose: |
| 13145 | - FnCall: | 13127 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13146 | - transmute | ||
| 13147 | - - FnCall: | ||
| 13148 | - "vaddvq_u64" | ||
| 13149 | - - FnCall: [transmute, [a]] | ||
| 13150 | 13128 | ||
| 13151 | - name: "vpaddd_u64" | 13129 | - name: "vpaddd_u64" |
| 13152 | doc: "Add pairwise" | 13130 | doc: "Add pairwise" |
| ... | @@ -13159,7 +13137,7 @@ intrinsics: | ... | @@ -13159,7 +13137,7 @@ intrinsics: |
| 13159 | types: | 13137 | types: |
| 13160 | - [uint64x2_t, u64] | 13138 | - [uint64x2_t, u64] |
| 13161 | compose: | 13139 | compose: |
| 13162 | - FnCall: [vaddvq_u64, [a]] | 13140 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13163 | 13141 | ||
| 13164 | - name: "vaddv{neon_type[0].no}" | 13142 | - name: "vaddv{neon_type[0].no}" |
| 13165 | doc: "Add across vector" | 13143 | doc: "Add across vector" |
| ... | @@ -13176,11 +13154,7 @@ intrinsics: | ... | @@ -13176,11 +13154,7 @@ intrinsics: |
| 13176 | - [int16x8_t, i16] | 13154 | - [int16x8_t, i16] |
| 13177 | - [int32x4_t, i32] | 13155 | - [int32x4_t, i32] |
| 13178 | compose: | 13156 | compose: |
| 13179 | - LLVMLink: | 13157 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13180 | name: "vaddv{neon_type[0].no}" | ||
| 13181 | links: | ||
| 13182 | - link: "llvm.aarch64.neon.saddv.{type[1]}.{neon_type[0]}" | ||
| 13183 | arch: aarch64,arm64ec | ||
| 13184 | 13158 | ||
| 13185 | - name: "vaddv{neon_type[0].no}" | 13159 | - name: "vaddv{neon_type[0].no}" |
| 13186 | doc: "Add across vector" | 13160 | doc: "Add across vector" |
| ... | @@ -13193,11 +13167,7 @@ intrinsics: | ... | @@ -13193,11 +13167,7 @@ intrinsics: |
| 13193 | types: | 13167 | types: |
| 13194 | - [int32x2_t, i32] | 13168 | - [int32x2_t, i32] |
| 13195 | compose: | 13169 | compose: |
| 13196 | - LLVMLink: | 13170 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13197 | name: "vaddv{neon_type[0].no}" | ||
| 13198 | links: | ||
| 13199 | - link: "llvm.aarch64.neon.saddv.i32.{neon_type[0]}" | ||
| 13200 | arch: aarch64,arm64ec | ||
| 13201 | 13171 | ||
| 13202 | - name: "vaddv{neon_type[0].no}" | 13172 | - name: "vaddv{neon_type[0].no}" |
| 13203 | doc: "Add across vector" | 13173 | doc: "Add across vector" |
| ... | @@ -13210,11 +13180,7 @@ intrinsics: | ... | @@ -13210,11 +13180,7 @@ intrinsics: |
| 13210 | types: | 13180 | types: |
| 13211 | - [int64x2_t, i64] | 13181 | - [int64x2_t, i64] |
| 13212 | compose: | 13182 | compose: |
| 13213 | - LLVMLink: | 13183 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13214 | name: "vaddv{neon_type[0].no}" | ||
| 13215 | links: | ||
| 13216 | - link: "llvm.aarch64.neon.saddv.i64.{neon_type[0]}" | ||
| 13217 | arch: aarch64,arm64ec | ||
| 13218 | 13184 | ||
| 13219 | - name: "vaddv{neon_type[0].no}" | 13185 | - name: "vaddv{neon_type[0].no}" |
| 13220 | doc: "Add across vector" | 13186 | doc: "Add across vector" |
| ... | @@ -13231,11 +13197,7 @@ intrinsics: | ... | @@ -13231,11 +13197,7 @@ intrinsics: |
| 13231 | - [uint16x8_t, u16] | 13197 | - [uint16x8_t, u16] |
| 13232 | - [uint32x4_t, u32] | 13198 | - [uint32x4_t, u32] |
| 13233 | compose: | 13199 | compose: |
| 13234 | - LLVMLink: | 13200 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13235 | name: "vaddv{neon_type[0].no}" | ||
| 13236 | links: | ||
| 13237 | - link: "llvm.aarch64.neon.uaddv.{type[1]}.{neon_type[0]}" | ||
| 13238 | arch: aarch64,arm64ec | ||
| 13239 | 13201 | ||
| 13240 | - name: "vaddv{neon_type[0].no}" | 13202 | - name: "vaddv{neon_type[0].no}" |
| 13241 | doc: "Add across vector" | 13203 | doc: "Add across vector" |
| ... | @@ -13248,11 +13210,7 @@ intrinsics: | ... | @@ -13248,11 +13210,7 @@ intrinsics: |
| 13248 | types: | 13210 | types: |
| 13249 | - [uint32x2_t, u32, i32] | 13211 | - [uint32x2_t, u32, i32] |
| 13250 | compose: | 13212 | compose: |
| 13251 | - LLVMLink: | 13213 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13252 | name: "vaddv{neon_type[0].no}" | ||
| 13253 | links: | ||
| 13254 | - link: "llvm.aarch64.neon.uaddv.{type[2]}.{neon_type[0]}" | ||
| 13255 | arch: aarch64,arm64ec | ||
| 13256 | 13214 | ||
| 13257 | - name: "vaddv{neon_type[0].no}" | 13215 | - name: "vaddv{neon_type[0].no}" |
| 13258 | doc: "Add across vector" | 13216 | doc: "Add across vector" |
| ... | @@ -13265,11 +13223,7 @@ intrinsics: | ... | @@ -13265,11 +13223,7 @@ intrinsics: |
| 13265 | types: | 13223 | types: |
| 13266 | - [uint64x2_t, u64, i64] | 13224 | - [uint64x2_t, u64, i64] |
| 13267 | compose: | 13225 | compose: |
| 13268 | - LLVMLink: | 13226 | - FnCall: [simd_reduce_add_unordered, [a]] |
| 13269 | name: "vaddv{neon_type[0].no}" | ||
| 13270 | links: | ||
| 13271 | - link: "llvm.aarch64.neon.uaddv.{type[2]}.{neon_type[0]}" | ||
| 13272 | arch: aarch64,arm64ec | ||
| 13273 | 13227 | ||
| 13274 | - name: "vaddlv{neon_type[0].no}" | 13228 | - name: "vaddlv{neon_type[0].no}" |
| 13275 | doc: "Signed Add Long across Vector" | 13229 | doc: "Signed Add Long across Vector" |
| ... | @@ -13327,11 +13281,7 @@ intrinsics: | ... | @@ -13327,11 +13281,7 @@ intrinsics: |
| 13327 | - [int16x8_t, i16, 'smaxv'] | 13281 | - [int16x8_t, i16, 'smaxv'] |
| 13328 | - [int32x4_t, i32, 'smaxv'] | 13282 | - [int32x4_t, i32, 'smaxv'] |
| 13329 | compose: | 13283 | compose: |
| 13330 | - LLVMLink: | 13284 | - FnCall: [simd_reduce_max, [a]] |
| 13331 | name: "vmaxv{neon_type[0].no}" | ||
| 13332 | links: | ||
| 13333 | - link: "llvm.aarch64.neon.smaxv.{type[1]}.{neon_type[0]}" | ||
| 13334 | arch: aarch64,arm64ec | ||
| 13335 | 13285 | ||
| 13336 | - name: "vmaxv{neon_type[0].no}" | 13286 | - name: "vmaxv{neon_type[0].no}" |
| 13337 | doc: "Horizontal vector max." | 13287 | doc: "Horizontal vector max." |
| ... | @@ -13349,11 +13299,7 @@ intrinsics: | ... | @@ -13349,11 +13299,7 @@ intrinsics: |
| 13349 | - [uint16x8_t, u16, 'umaxv'] | 13299 | - [uint16x8_t, u16, 'umaxv'] |
| 13350 | - [uint32x4_t, u32, 'umaxv'] | 13300 | - [uint32x4_t, u32, 'umaxv'] |
| 13351 | compose: | 13301 | compose: |
| 13352 | - LLVMLink: | 13302 | - FnCall: [simd_reduce_max, [a]] |
| 13353 | name: "vmaxv{neon_type[0].no}" | ||
| 13354 | links: | ||
| 13355 | - link: "llvm.aarch64.neon.umaxv.{type[1]}.{neon_type[0]}" | ||
| 13356 | arch: aarch64,arm64ec | ||
| 13357 | 13303 | ||
| 13358 | - name: "vmaxv{neon_type[0].no}" | 13304 | - name: "vmaxv{neon_type[0].no}" |
| 13359 | doc: "Horizontal vector max." | 13305 | doc: "Horizontal vector max." |
| ... | @@ -13390,11 +13336,7 @@ intrinsics: | ... | @@ -13390,11 +13336,7 @@ intrinsics: |
| 13390 | - [int16x8_t, i16, 'sminv'] | 13336 | - [int16x8_t, i16, 'sminv'] |
| 13391 | - [int32x4_t, i32, 'sminv'] | 13337 | - [int32x4_t, i32, 'sminv'] |
| 13392 | compose: | 13338 | compose: |
| 13393 | - LLVMLink: | 13339 | - FnCall: [simd_reduce_min, [a]] |
| 13394 | name: "vminv{neon_type[0].no}" | ||
| 13395 | links: | ||
| 13396 | - link: "llvm.aarch64.neon.sminv.{type[1]}.{neon_type[0]}" | ||
| 13397 | arch: aarch64,arm64ec | ||
| 13398 | 13340 | ||
| 13399 | - name: "vminv{neon_type[0].no}" | 13341 | - name: "vminv{neon_type[0].no}" |
| 13400 | doc: "Horizontal vector min." | 13342 | doc: "Horizontal vector min." |
| ... | @@ -13412,11 +13354,7 @@ intrinsics: | ... | @@ -13412,11 +13354,7 @@ intrinsics: |
| 13412 | - [uint16x8_t, u16, 'uminv'] | 13354 | - [uint16x8_t, u16, 'uminv'] |
| 13413 | - [uint32x4_t, u32, 'uminv'] | 13355 | - [uint32x4_t, u32, 'uminv'] |
| 13414 | compose: | 13356 | compose: |
| 13415 | - LLVMLink: | 13357 | - FnCall: [simd_reduce_min, [a]] |
| 13416 | name: "vminv{neon_type[0].no}" | ||
| 13417 | links: | ||
| 13418 | - link: "llvm.aarch64.neon.uminv.{type[1]}.{neon_type[0]}" | ||
| 13419 | arch: aarch64,arm64ec | ||
| 13420 | 13358 | ||
| 13421 | - name: "vminv{neon_type[0].no}" | 13359 | - name: "vminv{neon_type[0].no}" |
| 13422 | doc: "Horizontal vector min." | 13360 | doc: "Horizontal vector min." |
library/stdarch/crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml+85-119| ... | @@ -7135,13 +7135,8 @@ intrinsics: | ... | @@ -7135,13 +7135,8 @@ intrinsics: |
| 7135 | - int32x2_t | 7135 | - int32x2_t |
| 7136 | - int32x4_t | 7136 | - int32x4_t |
| 7137 | compose: | 7137 | compose: |
| 7138 | - LLVMLink: | 7138 | - Let: [mask, "{neon_type}", {FnCall: [simd_ge, [a, b]]}] |
| 7139 | name: "smax.{neon_type}" | 7139 | - FnCall: [simd_select, [mask, a, b]] |
| 7140 | links: | ||
| 7141 | - link: "llvm.arm.neon.vmaxs.{neon_type}" | ||
| 7142 | arch: arm | ||
| 7143 | - link: "llvm.aarch64.neon.smax.{neon_type}" | ||
| 7144 | arch: aarch64,arm64ec | ||
| 7145 | 7140 | ||
| 7146 | - name: "vmax{neon_type.no}" | 7141 | - name: "vmax{neon_type.no}" |
| 7147 | doc: Maximum (vector) | 7142 | doc: Maximum (vector) |
| ... | @@ -7162,13 +7157,8 @@ intrinsics: | ... | @@ -7162,13 +7157,8 @@ intrinsics: |
| 7162 | - uint32x2_t | 7157 | - uint32x2_t |
| 7163 | - uint32x4_t | 7158 | - uint32x4_t |
| 7164 | compose: | 7159 | compose: |
| 7165 | - LLVMLink: | 7160 | - Let: [mask, "{neon_type}", {FnCall: [simd_ge, [a, b]]}] |
| 7166 | name: "smax.{neon_type}" | 7161 | - FnCall: [simd_select, [mask, a, b]] |
| 7167 | links: | ||
| 7168 | - link: "llvm.arm.neon.vmaxu.{neon_type}" | ||
| 7169 | arch: arm | ||
| 7170 | - link: "llvm.aarch64.neon.umax.{neon_type}" | ||
| 7171 | arch: aarch64,arm64ec | ||
| 7172 | 7162 | ||
| 7173 | - name: "vmax{neon_type.no}" | 7163 | - name: "vmax{neon_type.no}" |
| 7174 | doc: Maximum (vector) | 7164 | doc: Maximum (vector) |
| ... | @@ -7233,13 +7223,7 @@ intrinsics: | ... | @@ -7233,13 +7223,7 @@ intrinsics: |
| 7233 | - float32x2_t | 7223 | - float32x2_t |
| 7234 | - float32x4_t | 7224 | - float32x4_t |
| 7235 | compose: | 7225 | compose: |
| 7236 | - LLVMLink: | 7226 | - FnCall: [simd_fmax, [a, b]] |
| 7237 | name: "fmaxnm.{neon_type}" | ||
| 7238 | links: | ||
| 7239 | - link: "llvm.arm.neon.vmaxnm.{neon_type}" | ||
| 7240 | arch: arm | ||
| 7241 | - link: "llvm.aarch64.neon.fmaxnm.{neon_type}" | ||
| 7242 | arch: aarch64,arm64ec | ||
| 7243 | 7227 | ||
| 7244 | 7228 | ||
| 7245 | - name: "vmaxnm{neon_type.no}" | 7229 | - name: "vmaxnm{neon_type.no}" |
| ... | @@ -7257,13 +7241,7 @@ intrinsics: | ... | @@ -7257,13 +7241,7 @@ intrinsics: |
| 7257 | - float16x4_t | 7241 | - float16x4_t |
| 7258 | - float16x8_t | 7242 | - float16x8_t |
| 7259 | compose: | 7243 | compose: |
| 7260 | - LLVMLink: | 7244 | - FnCall: [simd_fmax, [a, b]] |
| 7261 | name: "fmaxnm.{neon_type}" | ||
| 7262 | links: | ||
| 7263 | - link: "llvm.arm.neon.vmaxnm.{neon_type}" | ||
| 7264 | arch: arm | ||
| 7265 | - link: "llvm.aarch64.neon.fmaxnm.{neon_type}" | ||
| 7266 | arch: aarch64,arm64ec | ||
| 7267 | 7245 | ||
| 7268 | 7246 | ||
| 7269 | - name: "vminnm{neon_type.no}" | 7247 | - name: "vminnm{neon_type.no}" |
| ... | @@ -7281,13 +7259,7 @@ intrinsics: | ... | @@ -7281,13 +7259,7 @@ intrinsics: |
| 7281 | - float16x4_t | 7259 | - float16x4_t |
| 7282 | - float16x8_t | 7260 | - float16x8_t |
| 7283 | compose: | 7261 | compose: |
| 7284 | - LLVMLink: | 7262 | - FnCall: [simd_fmin, [a, b]] |
| 7285 | name: "fminnm.{neon_type}" | ||
| 7286 | links: | ||
| 7287 | - link: "llvm.arm.neon.vminnm.{neon_type}" | ||
| 7288 | arch: arm | ||
| 7289 | - link: "llvm.aarch64.neon.fminnm.{neon_type}" | ||
| 7290 | arch: aarch64,arm64ec | ||
| 7291 | 7263 | ||
| 7292 | 7264 | ||
| 7293 | - name: "vmin{neon_type.no}" | 7265 | - name: "vmin{neon_type.no}" |
| ... | @@ -7309,13 +7281,8 @@ intrinsics: | ... | @@ -7309,13 +7281,8 @@ intrinsics: |
| 7309 | - int32x2_t | 7281 | - int32x2_t |
| 7310 | - int32x4_t | 7282 | - int32x4_t |
| 7311 | compose: | 7283 | compose: |
| 7312 | - LLVMLink: | 7284 | - Let: [mask, "{neon_type}", {FnCall: [simd_le, [a, b]]}] |
| 7313 | name: "smin.{neon_type}" | 7285 | - FnCall: [simd_select, [mask, a, b]] |
| 7314 | links: | ||
| 7315 | - link: "llvm.arm.neon.vmins.{neon_type}" | ||
| 7316 | arch: arm | ||
| 7317 | - link: "llvm.aarch64.neon.smin.{neon_type}" | ||
| 7318 | arch: aarch64,arm64ec | ||
| 7319 | 7286 | ||
| 7320 | - name: "vmin{neon_type.no}" | 7287 | - name: "vmin{neon_type.no}" |
| 7321 | doc: "Minimum (vector)" | 7288 | doc: "Minimum (vector)" |
| ... | @@ -7336,13 +7303,8 @@ intrinsics: | ... | @@ -7336,13 +7303,8 @@ intrinsics: |
| 7336 | - uint32x2_t | 7303 | - uint32x2_t |
| 7337 | - uint32x4_t | 7304 | - uint32x4_t |
| 7338 | compose: | 7305 | compose: |
| 7339 | - LLVMLink: | 7306 | - Let: [mask, "{neon_type}", {FnCall: [simd_le, [a, b]]}] |
| 7340 | name: "umin.{neon_type}" | 7307 | - FnCall: [simd_select, [mask, a, b]] |
| 7341 | links: | ||
| 7342 | - link: "llvm.arm.neon.vminu.{neon_type}" | ||
| 7343 | arch: arm | ||
| 7344 | - link: "llvm.aarch64.neon.umin.{neon_type}" | ||
| 7345 | arch: aarch64,arm64ec | ||
| 7346 | 7308 | ||
| 7347 | - name: "vmin{neon_type.no}" | 7309 | - name: "vmin{neon_type.no}" |
| 7348 | doc: "Minimum (vector)" | 7310 | doc: "Minimum (vector)" |
| ... | @@ -7408,13 +7370,7 @@ intrinsics: | ... | @@ -7408,13 +7370,7 @@ intrinsics: |
| 7408 | - float32x2_t | 7370 | - float32x2_t |
| 7409 | - float32x4_t | 7371 | - float32x4_t |
| 7410 | compose: | 7372 | compose: |
| 7411 | - LLVMLink: | 7373 | - FnCall: [simd_fmin, [a, b]] |
| 7412 | name: "fminnm.{neon_type}" | ||
| 7413 | links: | ||
| 7414 | - link: "llvm.arm.neon.vminnm.{neon_type}" | ||
| 7415 | arch: arm | ||
| 7416 | - link: "llvm.aarch64.neon.fminnm.{neon_type}" | ||
| 7417 | arch: aarch64,arm64ec | ||
| 7418 | 7374 | ||
| 7419 | - name: "vpadd{neon_type.no}" | 7375 | - name: "vpadd{neon_type.no}" |
| 7420 | doc: Floating-point add pairwise | 7376 | doc: Floating-point add pairwise |
| ... | @@ -7874,9 +7830,9 @@ intrinsics: | ... | @@ -7874,9 +7830,9 @@ intrinsics: |
| 7874 | static_defs: ['const N: i32'] | 7830 | static_defs: ['const N: i32'] |
| 7875 | safety: safe | 7831 | safety: safe |
| 7876 | types: | 7832 | types: |
| 7877 | - [int16x8_t, int8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) }'] | 7833 | - [int16x8_t, int8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16; 8]) }'] |
| 7878 | - [int32x4_t, int16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }'] | 7834 | - [int32x4_t, int16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N; 4]) }'] |
| 7879 | - [int64x2_t, int32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64, -N as i64]) }'] | 7835 | - [int64x2_t, int32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64; 2]) }'] |
| 7880 | compose: | 7836 | compose: |
| 7881 | - FnCall: [static_assert!, ["{type[2]}"]] | 7837 | - FnCall: [static_assert!, ["{type[2]}"]] |
| 7882 | - LLVMLink: | 7838 | - LLVMLink: |
| ... | @@ -7929,9 +7885,9 @@ intrinsics: | ... | @@ -7929,9 +7885,9 @@ intrinsics: |
| 7929 | static_defs: ['const N: i32'] | 7885 | static_defs: ['const N: i32'] |
| 7930 | safety: safe | 7886 | safety: safe |
| 7931 | types: | 7887 | types: |
| 7932 | - [int16x8_t, uint8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) }'] | 7888 | - [int16x8_t, uint8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16; 8]) }'] |
| 7933 | - [int32x4_t, uint16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }'] | 7889 | - [int32x4_t, uint16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N; 4]) }'] |
| 7934 | - [int64x2_t, uint32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64, -N as i64]) }'] | 7890 | - [int64x2_t, uint32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64; 2]) }'] |
| 7935 | compose: | 7891 | compose: |
| 7936 | - FnCall: [static_assert!, ["{type[2]}"]] | 7892 | - FnCall: [static_assert!, ["{type[2]}"]] |
| 7937 | - LLVMLink: | 7893 | - LLVMLink: |
| ... | @@ -8105,9 +8061,9 @@ intrinsics: | ... | @@ -8105,9 +8061,9 @@ intrinsics: |
| 8105 | static_defs: ['const N: i32'] | 8061 | static_defs: ['const N: i32'] |
| 8106 | safety: safe | 8062 | safety: safe |
| 8107 | types: | 8063 | types: |
| 8108 | - [int16x8_t, int8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) }'] | 8064 | - [int16x8_t, int8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16; 8]) }'] |
| 8109 | - [int32x4_t, int16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }'] | 8065 | - [int32x4_t, int16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N; 4]) }'] |
| 8110 | - [int64x2_t, int32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64, -N as i64]) }'] | 8066 | - [int64x2_t, int32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64; 2]) }'] |
| 8111 | compose: | 8067 | compose: |
| 8112 | - FnCall: [static_assert!, ["{type[2]}"]] | 8068 | - FnCall: [static_assert!, ["{type[2]}"]] |
| 8113 | - LLVMLink: | 8069 | - LLVMLink: |
| ... | @@ -8215,9 +8171,9 @@ intrinsics: | ... | @@ -8215,9 +8171,9 @@ intrinsics: |
| 8215 | static_defs: ['const N: i32'] | 8171 | static_defs: ['const N: i32'] |
| 8216 | safety: safe | 8172 | safety: safe |
| 8217 | types: | 8173 | types: |
| 8218 | - [int16x8_t, uint8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) }'] | 8174 | - [int16x8_t, uint8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16; 8]) }'] |
| 8219 | - [int32x4_t, uint16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }'] | 8175 | - [int32x4_t, uint16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N; 4]) }'] |
| 8220 | - [int64x2_t, uint32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64, -N as i64]) }'] | 8176 | - [int64x2_t, uint32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64; 2]) }'] |
| 8221 | compose: | 8177 | compose: |
| 8222 | - FnCall: [static_assert!, ["{type[2]}"]] | 8178 | - FnCall: [static_assert!, ["{type[2]}"]] |
| 8223 | - LLVMLink: | 8179 | - LLVMLink: |
| ... | @@ -8939,9 +8895,9 @@ intrinsics: | ... | @@ -8939,9 +8895,9 @@ intrinsics: |
| 8939 | static_defs: ['const N: i32'] | 8895 | static_defs: ['const N: i32'] |
| 8940 | safety: safe | 8896 | safety: safe |
| 8941 | types: | 8897 | types: |
| 8942 | - [int16x8_t, int8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) }'] | 8898 | - [int16x8_t, int8x8_t, 'N >= 1 && N <= 8', 'const { int16x8_t([-N as i16; 8]) }'] |
| 8943 | - [int32x4_t, int16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) }'] | 8899 | - [int32x4_t, int16x4_t, 'N >= 1 && N <= 16', 'const { int32x4_t([-N; 4]) }'] |
| 8944 | - [int64x2_t, int32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64, -N as i64]) }'] | 8900 | - [int64x2_t, int32x2_t, 'N >= 1 && N <= 32', 'const { int64x2_t([-N as i64; 2]) }'] |
| 8945 | compose: | 8901 | compose: |
| 8946 | - FnCall: [static_assert!, ["{type[2]}"]] | 8902 | - FnCall: [static_assert!, ["{type[2]}"]] |
| 8947 | - LLVMLink: | 8903 | - LLVMLink: |
| ... | @@ -9576,7 +9532,8 @@ intrinsics: | ... | @@ -9576,7 +9532,8 @@ intrinsics: |
| 9576 | attr: | 9532 | attr: |
| 9577 | - *neon-v7 | 9533 | - *neon-v7 |
| 9578 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] | 9534 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] |
| 9579 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [trn]]}]] | 9535 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [trn1]]}]] |
| 9536 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [trn2]]}]] | ||
| 9580 | - *neon-not-arm-stable | 9537 | - *neon-not-arm-stable |
| 9581 | - *neon-cfg-arm-unstable | 9538 | - *neon-cfg-arm-unstable |
| 9582 | safety: safe | 9539 | safety: safe |
| ... | @@ -9617,7 +9574,8 @@ intrinsics: | ... | @@ -9617,7 +9574,8 @@ intrinsics: |
| 9617 | attr: | 9574 | attr: |
| 9618 | - *neon-v7 | 9575 | - *neon-v7 |
| 9619 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] | 9576 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] |
| 9620 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [trn]]}]] | 9577 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [trn1]]}]] |
| 9578 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [trn2]]}]] | ||
| 9621 | - *neon-fp16 | 9579 | - *neon-fp16 |
| 9622 | - *neon-unstable-f16 | 9580 | - *neon-unstable-f16 |
| 9623 | safety: safe | 9581 | safety: safe |
| ... | @@ -9645,7 +9603,8 @@ intrinsics: | ... | @@ -9645,7 +9603,8 @@ intrinsics: |
| 9645 | attr: | 9603 | attr: |
| 9646 | - *neon-v7 | 9604 | - *neon-v7 |
| 9647 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] | 9605 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] |
| 9648 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip]]}]] | 9606 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip1]]}]] |
| 9607 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip2]]}]] | ||
| 9649 | - *neon-not-arm-stable | 9608 | - *neon-not-arm-stable |
| 9650 | - *neon-cfg-arm-unstable | 9609 | - *neon-cfg-arm-unstable |
| 9651 | safety: safe | 9610 | safety: safe |
| ... | @@ -9673,7 +9632,8 @@ intrinsics: | ... | @@ -9673,7 +9632,8 @@ intrinsics: |
| 9673 | attr: | 9632 | attr: |
| 9674 | - *neon-v7 | 9633 | - *neon-v7 |
| 9675 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vorr]]}]] | 9634 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vorr]]}]] |
| 9676 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip]]}]] | 9635 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip1]]}]] |
| 9636 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip2]]}]] | ||
| 9677 | - *neon-not-arm-stable | 9637 | - *neon-not-arm-stable |
| 9678 | - *neon-cfg-arm-unstable | 9638 | - *neon-cfg-arm-unstable |
| 9679 | safety: safe | 9639 | safety: safe |
| ... | @@ -9707,7 +9667,8 @@ intrinsics: | ... | @@ -9707,7 +9667,8 @@ intrinsics: |
| 9707 | attr: | 9667 | attr: |
| 9708 | - *neon-v7 | 9668 | - *neon-v7 |
| 9709 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] | 9669 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] |
| 9710 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip]]}]] | 9670 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip1]]}]] |
| 9671 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip2]]}]] | ||
| 9711 | - *neon-not-arm-stable | 9672 | - *neon-not-arm-stable |
| 9712 | - *neon-cfg-arm-unstable | 9673 | - *neon-cfg-arm-unstable |
| 9713 | safety: safe | 9674 | safety: safe |
| ... | @@ -9735,7 +9696,8 @@ intrinsics: | ... | @@ -9735,7 +9696,8 @@ intrinsics: |
| 9735 | attr: | 9696 | attr: |
| 9736 | - *neon-v7 | 9697 | - *neon-v7 |
| 9737 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vzip]]}]] | 9698 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vzip]]}]] |
| 9738 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip]]}]] | 9699 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip1]]}]] |
| 9700 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip2]]}]] | ||
| 9739 | - *neon-not-arm-stable | 9701 | - *neon-not-arm-stable |
| 9740 | - *neon-cfg-arm-unstable | 9702 | - *neon-cfg-arm-unstable |
| 9741 | safety: safe | 9703 | safety: safe |
| ... | @@ -9767,7 +9729,8 @@ intrinsics: | ... | @@ -9767,7 +9729,8 @@ intrinsics: |
| 9767 | attr: | 9729 | attr: |
| 9768 | - *neon-v7 | 9730 | - *neon-v7 |
| 9769 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, ['"vzip.16"']]}]] | 9731 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, ['"vzip.16"']]}]] |
| 9770 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip]]}]] | 9732 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip1]]}]] |
| 9733 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip2]]}]] | ||
| 9771 | - *neon-fp16 | 9734 | - *neon-fp16 |
| 9772 | - *neon-unstable-f16 | 9735 | - *neon-unstable-f16 |
| 9773 | safety: safe | 9736 | safety: safe |
| ... | @@ -9794,7 +9757,8 @@ intrinsics: | ... | @@ -9794,7 +9757,8 @@ intrinsics: |
| 9794 | attr: | 9757 | attr: |
| 9795 | - *neon-v7 | 9758 | - *neon-v7 |
| 9796 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vuzp]]}]] | 9759 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vuzp]]}]] |
| 9797 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [uzp]]}]] | 9760 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [uzp1]]}]] |
| 9761 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [uzp2]]}]] | ||
| 9798 | - *neon-not-arm-stable | 9762 | - *neon-not-arm-stable |
| 9799 | - *neon-cfg-arm-unstable | 9763 | - *neon-cfg-arm-unstable |
| 9800 | safety: safe | 9764 | safety: safe |
| ... | @@ -9835,7 +9799,8 @@ intrinsics: | ... | @@ -9835,7 +9799,8 @@ intrinsics: |
| 9835 | attr: | 9799 | attr: |
| 9836 | - *neon-v7 | 9800 | - *neon-v7 |
| 9837 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vuzp]]}]] | 9801 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vuzp]]}]] |
| 9838 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [uzp]]}]] | 9802 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [uzp1]]}]] |
| 9803 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [uzp2]]}]] | ||
| 9839 | - *neon-fp16 | 9804 | - *neon-fp16 |
| 9840 | - *neon-unstable-f16 | 9805 | - *neon-unstable-f16 |
| 9841 | safety: safe | 9806 | safety: safe |
| ... | @@ -9863,7 +9828,8 @@ intrinsics: | ... | @@ -9863,7 +9828,8 @@ intrinsics: |
| 9863 | attr: | 9828 | attr: |
| 9864 | - *neon-v7 | 9829 | - *neon-v7 |
| 9865 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] | 9830 | - FnCall: [cfg_attr, [*test-is-arm, {FnCall: [assert_instr, [vtrn]]}]] |
| 9866 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip]]}]] | 9831 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip1]]}]] |
| 9832 | - FnCall: [cfg_attr, [*neon-target-aarch64-arm64ec, {FnCall: [assert_instr, [zip2]]}]] | ||
| 9867 | - *neon-not-arm-stable | 9833 | - *neon-not-arm-stable |
| 9868 | - *neon-cfg-arm-unstable | 9834 | - *neon-cfg-arm-unstable |
| 9869 | safety: safe | 9835 | safety: safe |
| ... | @@ -12881,13 +12847,16 @@ intrinsics: | ... | @@ -12881,13 +12847,16 @@ intrinsics: |
| 12881 | - int16x8_t | 12847 | - int16x8_t |
| 12882 | - int32x4_t | 12848 | - int32x4_t |
| 12883 | compose: | 12849 | compose: |
| 12884 | - LLVMLink: | 12850 | - Let: |
| 12885 | name: "vabs{neon_type.no}" | 12851 | - neg |
| 12886 | links: | 12852 | - "{neon_type}" |
| 12887 | - link: "llvm.aarch64.neon.abs.{neon_type}" | 12853 | - FnCall: [simd_neg, [a]] |
| 12888 | arch: aarch64,arm64ec | 12854 | - Let: |
| 12889 | - link: "llvm.arm.neon.vabs.{neon_type}" | 12855 | - mask |
| 12890 | arch: arm | 12856 | - "{neon_type}" |
| 12857 | - FnCall: [simd_ge, [a, neg]] | ||
| 12858 | - FnCall: [simd_select, [mask, a, neg]] | ||
| 12859 | |||
| 12891 | 12860 | ||
| 12892 | - name: "vpmin{neon_type.no}" | 12861 | - name: "vpmin{neon_type.no}" |
| 12893 | doc: "Folding minimum of adjacent pairs" | 12862 | doc: "Folding minimum of adjacent pairs" |
| ... | @@ -13862,8 +13831,8 @@ intrinsics: | ... | @@ -13862,8 +13831,8 @@ intrinsics: |
| 13862 | - [int8x16_t, '8', '1 <= N && N <= 8', 'v16i8', 'int8x16_t::splat', '-N as i8'] | 13831 | - [int8x16_t, '8', '1 <= N && N <= 8', 'v16i8', 'int8x16_t::splat', '-N as i8'] |
| 13863 | - [int16x4_t, '16', '1 <= N && N <= 16', 'v4i16', 'int16x4_t::splat', '-N as i16'] | 13832 | - [int16x4_t, '16', '1 <= N && N <= 16', 'v4i16', 'int16x4_t::splat', '-N as i16'] |
| 13864 | - [int16x8_t, '16', '1 <= N && N <= 16', 'v8i16', 'int16x8_t::splat', '-N as i16'] | 13833 | - [int16x8_t, '16', '1 <= N && N <= 16', 'v8i16', 'int16x8_t::splat', '-N as i16'] |
| 13865 | - [int32x2_t, '32', '1 <= N && N <= 32', 'v2i32', 'int32x2_t::splat', '-N as i32'] | 13834 | - [int32x2_t, '32', '1 <= N && N <= 32', 'v2i32', 'int32x2_t::splat', '-N'] |
| 13866 | - [int32x4_t, '32', '1 <= N && N <= 32', 'v4i32', 'int32x4_t::splat', '-N as i32'] | 13835 | - [int32x4_t, '32', '1 <= N && N <= 32', 'v4i32', 'int32x4_t::splat', '-N'] |
| 13867 | - [int64x1_t, '64', '1 <= N && N <= 64', 'v1i64', 'int64x1_t::splat', '-N as i64'] | 13836 | - [int64x1_t, '64', '1 <= N && N <= 64', 'v1i64', 'int64x1_t::splat', '-N as i64'] |
| 13868 | - [int64x2_t, '64', '1 <= N && N <= 64', 'v2i64', 'int64x2_t::splat', '-N as i64'] | 13837 | - [int64x2_t, '64', '1 <= N && N <= 64', 'v2i64', 'int64x2_t::splat', '-N as i64'] |
| 13869 | compose: | 13838 | compose: |
| ... | @@ -13891,8 +13860,8 @@ intrinsics: | ... | @@ -13891,8 +13860,8 @@ intrinsics: |
| 13891 | - [uint8x16_t, "neon,v7", '8', 'static_assert_uimm_bits!', 'N, 3', 'v16i8', 'int8x16_t::splat', 'N as i8'] | 13860 | - [uint8x16_t, "neon,v7", '8', 'static_assert_uimm_bits!', 'N, 3', 'v16i8', 'int8x16_t::splat', 'N as i8'] |
| 13892 | - [uint16x4_t, "neon,v7", '16', 'static_assert_uimm_bits!', 'N, 4', 'v4i16', 'int16x4_t::splat', 'N as i16'] | 13861 | - [uint16x4_t, "neon,v7", '16', 'static_assert_uimm_bits!', 'N, 4', 'v4i16', 'int16x4_t::splat', 'N as i16'] |
| 13893 | - [uint16x8_t, "neon,v7", '16', 'static_assert_uimm_bits!', 'N, 4', 'v8i16', 'int16x8_t::splat', 'N as i16'] | 13862 | - [uint16x8_t, "neon,v7", '16', 'static_assert_uimm_bits!', 'N, 4', 'v8i16', 'int16x8_t::splat', 'N as i16'] |
| 13894 | - [uint32x2_t, "neon,v7", '32', 'static_assert!', 'N >= 0 && N <= 31', 'v2i32', 'int32x2_t::splat', 'N as i32'] | 13863 | - [uint32x2_t, "neon,v7", '32', 'static_assert!', 'N >= 0 && N <= 31', 'v2i32', 'int32x2_t::splat', 'N'] |
| 13895 | - [uint32x4_t, "neon,v7", '32', 'static_assert!', 'N >= 0 && N <= 31', 'v4i32', 'int32x4_t::splat', 'N as i32'] | 13864 | - [uint32x4_t, "neon,v7", '32', 'static_assert!', 'N >= 0 && N <= 31', 'v4i32', 'int32x4_t::splat', 'N'] |
| 13896 | - [uint64x1_t, "neon,v7", '64', 'static_assert!', 'N >= 0 && N <= 63', 'v1i64', 'int64x1_t::splat', 'N as i64'] | 13865 | - [uint64x1_t, "neon,v7", '64', 'static_assert!', 'N >= 0 && N <= 63', 'v1i64', 'int64x1_t::splat', 'N as i64'] |
| 13897 | - [uint64x2_t, "neon,v7", '64', 'static_assert!', 'N >= 0 && N <= 63', 'v2i64', 'int64x2_t::splat', 'N as i64'] | 13866 | - [uint64x2_t, "neon,v7", '64', 'static_assert!', 'N >= 0 && N <= 63', 'v2i64', 'int64x2_t::splat', 'N as i64'] |
| 13898 | - [poly8x8_t, "neon,v7", '8', 'static_assert_uimm_bits!', 'N, 3', 'v8i8', 'int8x8_t::splat', 'N as i8'] | 13867 | - [poly8x8_t, "neon,v7", '8', 'static_assert_uimm_bits!', 'N, 3', 'v8i8', 'int8x8_t::splat', 'N as i8'] |
| ... | @@ -14138,6 +14107,7 @@ intrinsics: | ... | @@ -14138,6 +14107,7 @@ intrinsics: |
| 14138 | doc: "Load one single-element structure and Replicate to all lanes (of one register)." | 14107 | doc: "Load one single-element structure and Replicate to all lanes (of one register)." |
| 14139 | arguments: ["ptr: {type[1]}"] | 14108 | arguments: ["ptr: {type[1]}"] |
| 14140 | return_type: "{neon_type[2]}" | 14109 | return_type: "{neon_type[2]}" |
| 14110 | big_endian_inverse: false | ||
| 14141 | attr: | 14111 | attr: |
| 14142 | - *neon-v7 | 14112 | - *neon-v7 |
| 14143 | - FnCall: [cfg_attr, [*test-is-arm, { FnCall: [assert_instr, ['"{type[3]}"']] } ]] | 14113 | - FnCall: [cfg_attr, [*test-is-arm, { FnCall: [assert_instr, ['"{type[3]}"']] } ]] |
| ... | @@ -14147,40 +14117,36 @@ intrinsics: | ... | @@ -14147,40 +14117,36 @@ intrinsics: |
| 14147 | safety: | 14117 | safety: |
| 14148 | unsafe: [neon] | 14118 | unsafe: [neon] |
| 14149 | types: | 14119 | types: |
| 14150 | - ['vld1_dup_s8', '*const i8', 'int8x8_t', 'vld1.8', 'ld1r', 'vld1_lane_s8::<0>', 'i8x8::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0]'] | 14120 | - ['vld1_dup_s8', '*const i8', 'int8x8_t', 'vld1.8', 'ld1r', 'i8x8::splat'] |
| 14151 | - ['vld1_dup_u8', '*const u8', 'uint8x8_t', 'vld1.8', 'ld1r', 'vld1_lane_u8::<0>', 'u8x8::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0]'] | 14121 | - ['vld1_dup_u8', '*const u8', 'uint8x8_t', 'vld1.8', 'ld1r', 'u8x8::splat'] |
| 14152 | - ['vld1_dup_p8', '*const p8', 'poly8x8_t', 'vld1.8', 'ld1r', 'vld1_lane_p8::<0>', 'u8x8::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0]'] | 14122 | - ['vld1_dup_p8', '*const p8', 'poly8x8_t', 'vld1.8', 'ld1r', 'u8x8::splat'] |
| 14153 | 14123 | ||
| 14154 | - ['vld1q_dup_s8', '*const i8', 'int8x16_t', 'vld1.8', 'ld1r', 'vld1q_lane_s8::<0>', 'i8x16::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'] | 14124 | - ['vld1q_dup_s8', '*const i8', 'int8x16_t', 'vld1.8', 'ld1r', 'i8x16::splat'] |
| 14155 | - ['vld1q_dup_u8', '*const u8', 'uint8x16_t', 'vld1.8', 'ld1r', 'vld1q_lane_u8::<0>', 'u8x16::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'] | 14125 | - ['vld1q_dup_u8', '*const u8', 'uint8x16_t', 'vld1.8', 'ld1r', 'u8x16::splat'] |
| 14156 | - ['vld1q_dup_p8', '*const p8', 'poly8x16_t', 'vld1.8', 'ld1r', 'vld1q_lane_p8::<0>', 'u8x16::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'] | 14126 | - ['vld1q_dup_p8', '*const p8', 'poly8x16_t', 'vld1.8', 'ld1r', 'u8x16::splat'] |
| 14157 | 14127 | ||
| 14158 | - ['vld1_dup_s16', '*const i16', 'int16x4_t', 'vld1.16', 'ld1r', 'vld1_lane_s16::<0>', 'i16x4::splat(0)', '[0, 0, 0, 0]'] | 14128 | - ['vld1_dup_s16', '*const i16', 'int16x4_t', 'vld1.16', 'ld1r', 'i16x4::splat'] |
| 14159 | - ['vld1_dup_u16', '*const u16', 'uint16x4_t', 'vld1.16', 'ld1r', 'vld1_lane_u16::<0>', 'u16x4::splat(0)', '[0, 0, 0, 0]'] | 14129 | - ['vld1_dup_u16', '*const u16', 'uint16x4_t', 'vld1.16', 'ld1r', 'u16x4::splat'] |
| 14160 | - ['vld1_dup_p16', '*const p16', 'poly16x4_t', 'vld1.16', 'ld1r', 'vld1_lane_p16::<0>', 'u16x4::splat(0)', '[0, 0, 0, 0]'] | 14130 | - ['vld1_dup_p16', '*const p16', 'poly16x4_t', 'vld1.16', 'ld1r', 'u16x4::splat'] |
| 14161 | 14131 | ||
| 14162 | - ['vld1q_dup_s16', '*const i16', 'int16x8_t', 'vld1.16', 'ld1r', 'vld1q_lane_s16::<0>', 'i16x8::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0]'] | 14132 | - ['vld1q_dup_s16', '*const i16', 'int16x8_t', 'vld1.16', 'ld1r', 'i16x8::splat'] |
| 14163 | - ['vld1q_dup_u16', '*const u16', 'uint16x8_t', 'vld1.16', 'ld1r', 'vld1q_lane_u16::<0>', 'u16x8::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0]'] | 14133 | - ['vld1q_dup_u16', '*const u16', 'uint16x8_t', 'vld1.16', 'ld1r', 'u16x8::splat'] |
| 14164 | - ['vld1q_dup_p16', '*const p16', 'poly16x8_t', 'vld1.16', 'ld1r', 'vld1q_lane_p16::<0>', 'u16x8::splat(0)', '[0, 0, 0, 0, 0, 0, 0, 0]'] | 14134 | - ['vld1q_dup_p16', '*const p16', 'poly16x8_t', 'vld1.16', 'ld1r', 'u16x8::splat'] |
| 14165 | 14135 | ||
| 14166 | - ['vld1_dup_s32', '*const i32', 'int32x2_t', 'vld1.32', 'ld1r', 'vld1_lane_s32::<0>', 'i32x2::splat(0)', '[0, 0]'] | 14136 | - ['vld1_dup_s32', '*const i32', 'int32x2_t', 'vld1.32', 'ld1r', 'i32x2::splat'] |
| 14167 | - ['vld1_dup_u32', '*const u32', 'uint32x2_t', 'vld1.32', 'ld1r', 'vld1_lane_u32::<0>', 'u32x2::splat(0)', '[0, 0]'] | 14137 | - ['vld1_dup_u32', '*const u32', 'uint32x2_t', 'vld1.32', 'ld1r', 'u32x2::splat'] |
| 14168 | - ['vld1_dup_f32', '*const f32', 'float32x2_t', 'vld1.32', 'ld1r', 'vld1_lane_f32::<0>', 'f32x2::splat(0.0)', '[0, 0]'] | 14138 | - ['vld1_dup_f32', '*const f32', 'float32x2_t', 'vld1.32', 'ld1r', 'f32x2::splat'] |
| 14169 | 14139 | ||
| 14170 | - ['vld1q_dup_s32', '*const i32', 'int32x4_t', 'vld1.32', 'ld1r', 'vld1q_lane_s32::<0>', 'i32x4::splat(0)', '[0, 0, 0, 0]'] | 14140 | - ['vld1q_dup_s32', '*const i32', 'int32x4_t', 'vld1.32', 'ld1r', 'i32x4::splat'] |
| 14171 | - ['vld1q_dup_u32', '*const u32', 'uint32x4_t', 'vld1.32', 'ld1r', 'vld1q_lane_u32::<0>', 'u32x4::splat(0)', '[0, 0, 0, 0]'] | 14141 | - ['vld1q_dup_u32', '*const u32', 'uint32x4_t', 'vld1.32', 'ld1r', 'u32x4::splat'] |
| 14172 | - ['vld1q_dup_f32', '*const f32', 'float32x4_t', 'vld1.32', 'ld1r', 'vld1q_lane_f32::<0>', 'f32x4::splat(0.0)', '[0, 0, 0, 0]'] | 14142 | - ['vld1q_dup_f32', '*const f32', 'float32x4_t', 'vld1.32', 'ld1r', 'f32x4::splat'] |
| 14173 | 14143 | ||
| 14174 | - ['vld1q_dup_s64', '*const i64', 'int64x2_t', 'vldr', 'ld1', 'vld1q_lane_s64::<0>', 'i64x2::splat(0)', '[0, 0]'] | 14144 | - ['vld1q_dup_s64', '*const i64', 'int64x2_t', 'vldr', 'ld1r', 'i64x2::splat'] |
| 14175 | - ['vld1q_dup_u64', '*const u64', 'uint64x2_t', 'vldr', 'ld1', 'vld1q_lane_u64::<0>', 'u64x2::splat(0)', '[0, 0]'] | 14145 | - ['vld1q_dup_u64', '*const u64', 'uint64x2_t', 'vldr', 'ld1r', 'u64x2::splat'] |
| 14176 | compose: | 14146 | compose: |
| 14177 | - Let: | 14147 | - FnCall: |
| 14178 | - x | 14148 | - transmute |
| 14179 | - FnCall: | 14149 | - - FnCall: ['{type[5]}', ["*ptr"]] |
| 14180 | - '{type[5]}' | ||
| 14181 | - - ptr | ||
| 14182 | - FnCall: [transmute, ['{type[6]}']] | ||
| 14183 | - FnCall: ['simd_shuffle!', [x, x, '{type[7]}']] | ||
| 14184 | 14150 | ||
| 14185 | - name: "{type[0]}" | 14151 | - name: "{type[0]}" |
| 14186 | doc: "Absolute difference and accumulate (64-bit)" | 14152 | doc: "Absolute difference and accumulate (64-bit)" |
library/stdarch/crates/stdarch-gen-arm/src/expression.rs+3-5| ... | @@ -1,5 +1,4 @@ | ... | @@ -1,5 +1,4 @@ |
| 1 | use itertools::Itertools; | 1 | use itertools::Itertools; |
| 2 | use lazy_static::lazy_static; | ||
| 3 | use proc_macro2::{Literal, Punct, Spacing, TokenStream}; | 2 | use proc_macro2::{Literal, Punct, Spacing, TokenStream}; |
| 4 | use quote::{ToTokens, TokenStreamExt, format_ident, quote}; | 3 | use quote::{ToTokens, TokenStreamExt, format_ident, quote}; |
| 5 | use regex::Regex; | 4 | use regex::Regex; |
| ... | @@ -7,6 +6,7 @@ use serde::de::{self, MapAccess, Visitor}; | ... | @@ -7,6 +6,7 @@ use serde::de::{self, MapAccess, Visitor}; |
| 7 | use serde::{Deserialize, Deserializer, Serialize}; | 6 | use serde::{Deserialize, Deserializer, Serialize}; |
| 8 | use std::fmt; | 7 | use std::fmt; |
| 9 | use std::str::FromStr; | 8 | use std::str::FromStr; |
| 9 | use std::sync::LazyLock; | ||
| 10 | 10 | ||
| 11 | use crate::intrinsic::Intrinsic; | 11 | use crate::intrinsic::Intrinsic; |
| 12 | use crate::wildstring::WildStringPart; | 12 | use crate::wildstring::WildStringPart; |
| ... | @@ -374,10 +374,8 @@ impl FromStr for Expression { | ... | @@ -374,10 +374,8 @@ impl FromStr for Expression { |
| 374 | type Err = String; | 374 | type Err = String; |
| 375 | 375 | ||
| 376 | fn from_str(s: &str) -> Result<Self, Self::Err> { | 376 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
| 377 | lazy_static! { | 377 | static MACRO_RE: LazyLock<Regex> = |
| 378 | static ref MACRO_RE: Regex = | 378 | LazyLock::new(|| Regex::new(r"^(?P<name>[\w\d_]+)!\((?P<ex>.*?)\);?$").unwrap()); |
| 379 | Regex::new(r"^(?P<name>[\w\d_]+)!\((?P<ex>.*?)\);?$").unwrap(); | ||
| 380 | } | ||
| 381 | 379 | ||
| 382 | if s == "SvUndef" { | 380 | if s == "SvUndef" { |
| 383 | Ok(Expression::SvUndef) | 381 | Ok(Expression::SvUndef) |
library/stdarch/crates/stdarch-gen-arm/src/load_store_tests.rs+8-12| ... | @@ -2,6 +2,7 @@ use std::fs::File; | ... | @@ -2,6 +2,7 @@ use std::fs::File; |
| 2 | use std::io::Write; | 2 | use std::io::Write; |
| 3 | use std::path::PathBuf; | 3 | use std::path::PathBuf; |
| 4 | use std::str::FromStr; | 4 | use std::str::FromStr; |
| 5 | use std::sync::LazyLock; | ||
| 5 | 6 | ||
| 6 | use crate::format_code; | 7 | use crate::format_code; |
| 7 | use crate::input::InputType; | 8 | use crate::input::InputType; |
| ... | @@ -10,7 +11,6 @@ use crate::typekinds::BaseType; | ... | @@ -10,7 +11,6 @@ use crate::typekinds::BaseType; |
| 10 | use crate::typekinds::{ToRepr, TypeKind}; | 11 | use crate::typekinds::{ToRepr, TypeKind}; |
| 11 | 12 | ||
| 12 | use itertools::Itertools; | 13 | use itertools::Itertools; |
| 13 | use lazy_static::lazy_static; | ||
| 14 | use proc_macro2::TokenStream; | 14 | use proc_macro2::TokenStream; |
| 15 | use quote::{format_ident, quote}; | 15 | use quote::{format_ident, quote}; |
| 16 | 16 | ||
| ... | @@ -639,8 +639,8 @@ impl LdIntrCharacteristics { | ... | @@ -639,8 +639,8 @@ impl LdIntrCharacteristics { |
| 639 | } | 639 | } |
| 640 | } | 640 | } |
| 641 | 641 | ||
| 642 | lazy_static! { | 642 | static PREAMBLE: LazyLock<String> = LazyLock::new(|| { |
| 643 | static ref PREAMBLE: String = format!( | 643 | format!( |
| 644 | r#"#![allow(unused)] | 644 | r#"#![allow(unused)] |
| 645 | 645 | ||
| 646 | use super::*; | 646 | use super::*; |
| ... | @@ -801,13 +801,11 @@ fn assert_vector_matches_u64(vector: svuint64_t, expected: svuint64_t) {{ | ... | @@ -801,13 +801,11 @@ fn assert_vector_matches_u64(vector: svuint64_t, expected: svuint64_t) {{ |
| 801 | assert!(!svptest_any(defined, cmp)) | 801 | assert!(!svptest_any(defined, cmp)) |
| 802 | }} | 802 | }} |
| 803 | "# | 803 | "# |
| 804 | ); | 804 | ) |
| 805 | } | 805 | }); |
| 806 | 806 | ||
| 807 | lazy_static! { | 807 | const MANUAL_TESTS: &str = "#[simd_test(enable = \"sve\")] |
| 808 | static ref MANUAL_TESTS: String = format!( | 808 | unsafe fn test_ffr() { |
| 809 | "#[simd_test(enable = \"sve\")] | ||
| 810 | unsafe fn test_ffr() {{ | ||
| 811 | svsetffr(); | 809 | svsetffr(); |
| 812 | let ffr = svrdffr(); | 810 | let ffr = svrdffr(); |
| 813 | assert_vector_matches_u8(svdup_n_u8_z(ffr, 1), svindex_u8(1, 0)); | 811 | assert_vector_matches_u8(svdup_n_u8_z(ffr, 1), svindex_u8(1, 0)); |
| ... | @@ -816,7 +814,5 @@ unsafe fn test_ffr() {{ | ... | @@ -816,7 +814,5 @@ unsafe fn test_ffr() {{ |
| 816 | svwrffr(pred); | 814 | svwrffr(pred); |
| 817 | let ffr = svrdffr_z(svptrue_b8()); | 815 | let ffr = svrdffr_z(svptrue_b8()); |
| 818 | assert_vector_matches_u8(svdup_n_u8_z(ffr, 1), svdup_n_u8_z(pred, 1)); | 816 | assert_vector_matches_u8(svdup_n_u8_z(ffr, 1), svdup_n_u8_z(pred, 1)); |
| 819 | }} | ||
| 820 | " | ||
| 821 | ); | ||
| 822 | } | 817 | } |
| 818 | "; |
library/stdarch/crates/stdarch-gen-arm/src/typekinds.rs+6-7| ... | @@ -1,10 +1,10 @@ | ... | @@ -1,10 +1,10 @@ |
| 1 | use lazy_static::lazy_static; | ||
| 2 | use proc_macro2::TokenStream; | 1 | use proc_macro2::TokenStream; |
| 3 | use quote::{ToTokens, TokenStreamExt, quote}; | 2 | use quote::{ToTokens, TokenStreamExt, quote}; |
| 4 | use regex::Regex; | 3 | use regex::Regex; |
| 5 | use serde_with::{DeserializeFromStr, SerializeDisplay}; | 4 | use serde_with::{DeserializeFromStr, SerializeDisplay}; |
| 6 | use std::fmt; | 5 | use std::fmt; |
| 7 | use std::str::FromStr; | 6 | use std::str::FromStr; |
| 7 | use std::sync::LazyLock; | ||
| 8 | 8 | ||
| 9 | use crate::context; | 9 | use crate::context; |
| 10 | use crate::expression::{Expression, FnCall}; | 10 | use crate::expression::{Expression, FnCall}; |
| ... | @@ -496,9 +496,9 @@ impl FromStr for VectorType { | ... | @@ -496,9 +496,9 @@ impl FromStr for VectorType { |
| 496 | type Err = String; | 496 | type Err = String; |
| 497 | 497 | ||
| 498 | fn from_str(s: &str) -> Result<Self, Self::Err> { | 498 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
| 499 | lazy_static! { | 499 | static RE: LazyLock<Regex> = LazyLock::new(|| { |
| 500 | static ref RE: Regex = Regex::new(r"^(?:(?:sv(?P<sv_ty>(?:uint|int|bool|float)(?:\d+)?))|(?:(?P<ty>(?:uint|int|bool|poly|float)(?:\d+)?)x(?P<lanes>(?:\d+)?)))(?:x(?P<tuple_size>2|3|4))?_t$").unwrap(); | 500 | Regex::new(r"^(?:(?:sv(?P<sv_ty>(?:uint|int|bool|float)(?:\d+)?))|(?:(?P<ty>(?:uint|int|bool|poly|float)(?:\d+)?)x(?P<lanes>(?:\d+)?)))(?:x(?P<tuple_size>2|3|4))?_t$").unwrap() |
| 501 | } | 501 | }); |
| 502 | 502 | ||
| 503 | if let Some(c) = RE.captures(s) { | 503 | if let Some(c) = RE.captures(s) { |
| 504 | let (base_type, lanes) = Self::sanitise_lanes( | 504 | let (base_type, lanes) = Self::sanitise_lanes( |
| ... | @@ -698,9 +698,8 @@ impl FromStr for BaseType { | ... | @@ -698,9 +698,8 @@ impl FromStr for BaseType { |
| 698 | type Err = String; | 698 | type Err = String; |
| 699 | 699 | ||
| 700 | fn from_str(s: &str) -> Result<Self, Self::Err> { | 700 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
| 701 | lazy_static! { | 701 | static RE: LazyLock<Regex> = |
| 702 | static ref RE: Regex = Regex::new(r"^(?P<kind>[a-zA-Z]+)(?P<size>\d+)?(_t)?$").unwrap(); | 702 | LazyLock::new(|| Regex::new(r"^(?P<kind>[a-zA-Z]+)(?P<size>\d+)?(_t)?$").unwrap()); |
| 703 | } | ||
| 704 | 703 | ||
| 705 | if let Some(c) = RE.captures(s) { | 704 | if let Some(c) = RE.captures(s) { |
| 706 | let kind = c["kind"].parse()?; | 705 | let kind = c["kind"].parse()?; |
library/stdarch/crates/stdarch-gen-arm/src/wildcards.rs+4-5| ... | @@ -1,8 +1,7 @@ | ... | @@ -1,8 +1,7 @@ |
| 1 | use lazy_static::lazy_static; | ||
| 2 | use regex::Regex; | 1 | use regex::Regex; |
| 3 | use serde_with::{DeserializeFromStr, SerializeDisplay}; | 2 | use serde_with::{DeserializeFromStr, SerializeDisplay}; |
| 4 | use std::fmt; | ||
| 5 | use std::str::FromStr; | 3 | use std::str::FromStr; |
| 4 | use std::{fmt, sync::LazyLock}; | ||
| 6 | 5 | ||
| 7 | use crate::{ | 6 | use crate::{ |
| 8 | fn_suffix::SuffixKind, | 7 | fn_suffix::SuffixKind, |
| ... | @@ -66,9 +65,9 @@ impl FromStr for Wildcard { | ... | @@ -66,9 +65,9 @@ impl FromStr for Wildcard { |
| 66 | type Err = String; | 65 | type Err = String; |
| 67 | 66 | ||
| 68 | fn from_str(s: &str) -> Result<Self, Self::Err> { | 67 | fn from_str(s: &str) -> Result<Self, Self::Err> { |
| 69 | lazy_static! { | 68 | static RE: LazyLock<Regex> = LazyLock::new(|| { |
| 70 | static ref RE: Regex = Regex::new(r"^(?P<wildcard>\w+?)(?:_x(?P<tuple_size>[2-4]))?(?:\[(?P<index>\d+)\])?(?:\.(?P<modifiers>\w+))?(?:\s+as\s+(?P<scale_to>.*?))?$").unwrap(); | 69 | Regex::new(r"^(?P<wildcard>\w+?)(?:_x(?P<tuple_size>[2-4]))?(?:\[(?P<index>\d+)\])?(?:\.(?P<modifiers>\w+))?(?:\s+as\s+(?P<scale_to>.*?))?$").unwrap() |
| 71 | } | 70 | }); |
| 72 | 71 | ||
| 73 | if let Some(c) = RE.captures(s) { | 72 | if let Some(c) = RE.captures(s) { |
| 74 | let wildcard_name = &c["wildcard"]; | 73 | let wildcard_name = &c["wildcard"]; |
library/stdarch/crates/stdarch-gen-loongarch/README.md-2| ... | @@ -11,7 +11,6 @@ LSX: | ... | @@ -11,7 +11,6 @@ LSX: |
| 11 | # Generate bindings | 11 | # Generate bindings |
| 12 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsxintrin.h | 12 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsxintrin.h |
| 13 | OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsx.spec | 13 | OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsx.spec |
| 14 | rustfmt crates/core_arch/src/loongarch64/lsx/generated.rs | ||
| 15 | 14 | ||
| 16 | # Generate tests | 15 | # Generate tests |
| 17 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsx.spec test | 16 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsx.spec test |
| ... | @@ -25,7 +24,6 @@ LASX: | ... | @@ -25,7 +24,6 @@ LASX: |
| 25 | # Generate bindings | 24 | # Generate bindings |
| 26 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasxintrin.h | 25 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasxintrin.h |
| 27 | OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasx.spec | 26 | OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasx.spec |
| 28 | rustfmt crates/core_arch/src/loongarch64/lasx/generated.rs | ||
| 29 | 27 | ||
| 30 | # Generate tests | 28 | # Generate tests |
| 31 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasx.spec test | 29 | OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasx.spec test |
library/stdarch/crates/stdarch-gen-loongarch/src/main.rs+29-17| ... | @@ -274,13 +274,14 @@ fn gen_bind_body( | ... | @@ -274,13 +274,14 @@ fn gen_bind_body( |
| 274 | } | 274 | } |
| 275 | }; | 275 | }; |
| 276 | 276 | ||
| 277 | let is_mem = in_t.iter().any(|s| s.contains("POINTER")); | ||
| 277 | let is_store = current_name.to_string().contains("vst"); | 278 | let is_store = current_name.to_string().contains("vst"); |
| 278 | let link_function = { | 279 | let link_function = { |
| 279 | let fn_decl = { | 280 | let fn_decl = { |
| 280 | let fn_output = if out_t.to_lowercase() == "void" { | 281 | let fn_output = if out_t.to_lowercase() == "void" { |
| 281 | String::new() | 282 | String::new() |
| 282 | } else { | 283 | } else { |
| 283 | format!("-> {}", type_to_rst(out_t, is_store)) | 284 | format!(" -> {}", type_to_rst(out_t, is_store)) |
| 284 | }; | 285 | }; |
| 285 | let fn_inputs = match para_num { | 286 | let fn_inputs = match para_num { |
| 286 | 1 => format!("(a: {})", type_to_rst(in_t[0], is_store)), | 287 | 1 => format!("(a: {})", type_to_rst(in_t[0], is_store)), |
| ... | @@ -304,7 +305,7 @@ fn gen_bind_body( | ... | @@ -304,7 +305,7 @@ fn gen_bind_body( |
| 304 | ), | 305 | ), |
| 305 | _ => panic!("unsupported parameter number"), | 306 | _ => panic!("unsupported parameter number"), |
| 306 | }; | 307 | }; |
| 307 | format!("fn __{current_name}{fn_inputs} {fn_output};") | 308 | format!("fn __{current_name}{fn_inputs}{fn_output};") |
| 308 | }; | 309 | }; |
| 309 | let function = format!( | 310 | let function = format!( |
| 310 | r#" #[link_name = "llvm.loongarch.{}"] | 311 | r#" #[link_name = "llvm.loongarch.{}"] |
| ... | @@ -456,31 +457,40 @@ fn gen_bind_body( | ... | @@ -456,31 +457,40 @@ fn gen_bind_body( |
| 456 | }; | 457 | }; |
| 457 | rustc_legacy_const_generics = "rustc_legacy_const_generics(2, 3)"; | 458 | rustc_legacy_const_generics = "rustc_legacy_const_generics(2, 3)"; |
| 458 | } | 459 | } |
| 459 | format!("pub unsafe fn {current_name}{fn_inputs} {fn_output}") | 460 | format!( |
| 461 | "pub {}fn {current_name}{fn_inputs} {fn_output}", | ||
| 462 | if is_mem { "unsafe " } else { "" } | ||
| 463 | ) | ||
| 460 | }; | 464 | }; |
| 465 | let unsafe_start = if !is_mem { "unsafe { " } else { "" }; | ||
| 466 | let unsafe_end = if !is_mem { " }" } else { "" }; | ||
| 461 | let mut call_params = { | 467 | let mut call_params = { |
| 462 | match para_num { | 468 | match para_num { |
| 463 | 1 => format!("__{current_name}(a)"), | 469 | 1 => format!("{unsafe_start}__{current_name}(a){unsafe_end}"), |
| 464 | 2 => format!("__{current_name}(a, b)"), | 470 | 2 => format!("{unsafe_start}__{current_name}(a, b){unsafe_end}"), |
| 465 | 3 => format!("__{current_name}(a, b, c)"), | 471 | 3 => format!("{unsafe_start}__{current_name}(a, b, c){unsafe_end}"), |
| 466 | 4 => format!("__{current_name}(a, b, c, d)"), | 472 | 4 => format!("{unsafe_start}__{current_name}(a, b, c, d){unsafe_end}"), |
| 467 | _ => panic!("unsupported parameter number"), | 473 | _ => panic!("unsupported parameter number"), |
| 468 | } | 474 | } |
| 469 | }; | 475 | }; |
| 470 | if para_num == 1 && in_t[0] == "HI" { | 476 | if para_num == 1 && in_t[0] == "HI" { |
| 471 | call_params = match asm_fmts[1].as_str() { | 477 | call_params = match asm_fmts[1].as_str() { |
| 472 | "si10" => { | 478 | "si10" => { |
| 473 | format!("static_assert_simm_bits!(IMM_S10, 10);\n __{current_name}(IMM_S10)") | 479 | format!( |
| 480 | "static_assert_simm_bits!(IMM_S10, 10);\n {unsafe_start}__{current_name}(IMM_S10){unsafe_end}" | ||
| 481 | ) | ||
| 474 | } | 482 | } |
| 475 | "i13" => { | 483 | "i13" => { |
| 476 | format!("static_assert_simm_bits!(IMM_S13, 13);\n __{current_name}(IMM_S13)") | 484 | format!( |
| 485 | "static_assert_simm_bits!(IMM_S13, 13);\n {unsafe_start}__{current_name}(IMM_S13){unsafe_end}" | ||
| 486 | ) | ||
| 477 | } | 487 | } |
| 478 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), | 488 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), |
| 479 | } | 489 | } |
| 480 | } else if para_num == 2 && (in_t[1] == "UQI" || in_t[1] == "USI") { | 490 | } else if para_num == 2 && (in_t[1] == "UQI" || in_t[1] == "USI") { |
| 481 | call_params = if asm_fmts[2].starts_with("ui") { | 491 | call_params = if asm_fmts[2].starts_with("ui") { |
| 482 | format!( | 492 | format!( |
| 483 | "static_assert_uimm_bits!(IMM{0}, {0});\n __{current_name}(a, IMM{0})", | 493 | "static_assert_uimm_bits!(IMM{0}, {0});\n {unsafe_start}__{current_name}(a, IMM{0}){unsafe_end}", |
| 484 | asm_fmts[2].get(2..).unwrap() | 494 | asm_fmts[2].get(2..).unwrap() |
| 485 | ) | 495 | ) |
| 486 | } else { | 496 | } else { |
| ... | @@ -489,14 +499,16 @@ fn gen_bind_body( | ... | @@ -489,14 +499,16 @@ fn gen_bind_body( |
| 489 | } else if para_num == 2 && in_t[1] == "QI" { | 499 | } else if para_num == 2 && in_t[1] == "QI" { |
| 490 | call_params = match asm_fmts[2].as_str() { | 500 | call_params = match asm_fmts[2].as_str() { |
| 491 | "si5" => { | 501 | "si5" => { |
| 492 | format!("static_assert_simm_bits!(IMM_S5, 5);\n __{current_name}(a, IMM_S5)") | 502 | format!( |
| 503 | "static_assert_simm_bits!(IMM_S5, 5);\n {unsafe_start}__{current_name}(a, IMM_S5){unsafe_end}" | ||
| 504 | ) | ||
| 493 | } | 505 | } |
| 494 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), | 506 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), |
| 495 | }; | 507 | }; |
| 496 | } else if para_num == 2 && in_t[0] == "CVPOINTER" && in_t[1] == "SI" { | 508 | } else if para_num == 2 && in_t[0] == "CVPOINTER" && in_t[1] == "SI" { |
| 497 | call_params = if asm_fmts[2].starts_with("si") { | 509 | call_params = if asm_fmts[2].starts_with("si") { |
| 498 | format!( | 510 | format!( |
| 499 | "static_assert_simm_bits!(IMM_S{0}, {0});\n __{current_name}(mem_addr, IMM_S{0})", | 511 | "static_assert_simm_bits!(IMM_S{0}, {0});\n {unsafe_start}__{current_name}(mem_addr, IMM_S{0}){unsafe_end}", |
| 500 | asm_fmts[2].get(2..).unwrap() | 512 | asm_fmts[2].get(2..).unwrap() |
| 501 | ) | 513 | ) |
| 502 | } else { | 514 | } else { |
| ... | @@ -504,13 +516,13 @@ fn gen_bind_body( | ... | @@ -504,13 +516,13 @@ fn gen_bind_body( |
| 504 | } | 516 | } |
| 505 | } else if para_num == 2 && in_t[0] == "CVPOINTER" && in_t[1] == "DI" { | 517 | } else if para_num == 2 && in_t[0] == "CVPOINTER" && in_t[1] == "DI" { |
| 506 | call_params = match asm_fmts[2].as_str() { | 518 | call_params = match asm_fmts[2].as_str() { |
| 507 | "rk" => format!("__{current_name}(mem_addr, b)"), | 519 | "rk" => format!("{unsafe_start}__{current_name}(mem_addr, b){unsafe_end}"), |
| 508 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), | 520 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), |
| 509 | }; | 521 | }; |
| 510 | } else if para_num == 3 && (in_t[2] == "USI" || in_t[2] == "UQI") { | 522 | } else if para_num == 3 && (in_t[2] == "USI" || in_t[2] == "UQI") { |
| 511 | call_params = if asm_fmts[2].starts_with("ui") { | 523 | call_params = if asm_fmts[2].starts_with("ui") { |
| 512 | format!( | 524 | format!( |
| 513 | "static_assert_uimm_bits!(IMM{0}, {0});\n __{current_name}(a, b, IMM{0})", | 525 | "static_assert_uimm_bits!(IMM{0}, {0});\n {unsafe_start}__{current_name}(a, b, IMM{0}){unsafe_end}", |
| 514 | asm_fmts[2].get(2..).unwrap() | 526 | asm_fmts[2].get(2..).unwrap() |
| 515 | ) | 527 | ) |
| 516 | } else { | 528 | } else { |
| ... | @@ -519,19 +531,19 @@ fn gen_bind_body( | ... | @@ -519,19 +531,19 @@ fn gen_bind_body( |
| 519 | } else if para_num == 3 && in_t[1] == "CVPOINTER" && in_t[2] == "SI" { | 531 | } else if para_num == 3 && in_t[1] == "CVPOINTER" && in_t[2] == "SI" { |
| 520 | call_params = match asm_fmts[2].as_str() { | 532 | call_params = match asm_fmts[2].as_str() { |
| 521 | "si12" => format!( | 533 | "si12" => format!( |
| 522 | "static_assert_simm_bits!(IMM_S12, 12);\n __{current_name}(a, mem_addr, IMM_S12)" | 534 | "static_assert_simm_bits!(IMM_S12, 12);\n {unsafe_start}__{current_name}(a, mem_addr, IMM_S12){unsafe_end}" |
| 523 | ), | 535 | ), |
| 524 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), | 536 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), |
| 525 | }; | 537 | }; |
| 526 | } else if para_num == 3 && in_t[1] == "CVPOINTER" && in_t[2] == "DI" { | 538 | } else if para_num == 3 && in_t[1] == "CVPOINTER" && in_t[2] == "DI" { |
| 527 | call_params = match asm_fmts[2].as_str() { | 539 | call_params = match asm_fmts[2].as_str() { |
| 528 | "rk" => format!("__{current_name}(a, mem_addr, b)"), | 540 | "rk" => format!("{unsafe_start}__{current_name}(a, mem_addr, b){unsafe_end}"), |
| 529 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), | 541 | _ => panic!("unsupported assembly format: {}", asm_fmts[2]), |
| 530 | }; | 542 | }; |
| 531 | } else if para_num == 4 { | 543 | } else if para_num == 4 { |
| 532 | call_params = match (asm_fmts[2].as_str(), current_name.chars().last().unwrap()) { | 544 | call_params = match (asm_fmts[2].as_str(), current_name.chars().last().unwrap()) { |
| 533 | ("si8", t) => format!( | 545 | ("si8", t) => format!( |
| 534 | "static_assert_simm_bits!(IMM_S8, 8);\n static_assert_uimm_bits!(IMM{0}, {0});\n __{current_name}(a, mem_addr, IMM_S8, IMM{0})", | 546 | "static_assert_simm_bits!(IMM_S8, 8);\n static_assert_uimm_bits!(IMM{0}, {0});\n {unsafe_start}__{current_name}(a, mem_addr, IMM_S8, IMM{0}){unsafe_end}", |
| 535 | type_to_imm(t) | 547 | type_to_imm(t) |
| 536 | ), | 548 | ), |
| 537 | (_, _) => panic!( | 549 | (_, _) => panic!( |
library/stdarch/crates/stdarch-test/Cargo.toml+1-2| ... | @@ -7,7 +7,6 @@ edition = "2024" | ... | @@ -7,7 +7,6 @@ edition = "2024" |
| 7 | [dependencies] | 7 | [dependencies] |
| 8 | assert-instr-macro = { path = "../assert-instr-macro" } | 8 | assert-instr-macro = { path = "../assert-instr-macro" } |
| 9 | simd-test-macro = { path = "../simd-test-macro" } | 9 | simd-test-macro = { path = "../simd-test-macro" } |
| 10 | lazy_static = "1.0" | ||
| 11 | rustc-demangle = "0.1.8" | 10 | rustc-demangle = "0.1.8" |
| 12 | cfg-if = "1.0" | 11 | cfg-if = "1.0" |
| 13 | 12 | ||
| ... | @@ -20,7 +19,7 @@ cc = "1.0" | ... | @@ -20,7 +19,7 @@ cc = "1.0" |
| 20 | # time, and we want to make updates to this explicit rather than automatically | 19 | # time, and we want to make updates to this explicit rather than automatically |
| 21 | # picking up updates which might break CI with new instruction names. | 20 | # picking up updates which might break CI with new instruction names. |
| 22 | [target.'cfg(target_arch = "wasm32")'.dependencies] | 21 | [target.'cfg(target_arch = "wasm32")'.dependencies] |
| 23 | wasmprinter = "=0.2.67" | 22 | wasmprinter = "=0.235" |
| 24 | 23 | ||
| 25 | [features] | 24 | [features] |
| 26 | default = [] | 25 | default = [] |
library/stdarch/crates/stdarch-test/src/lib.rs+25-14| ... | @@ -6,14 +6,12 @@ | ... | @@ -6,14 +6,12 @@ |
| 6 | #![deny(rust_2018_idioms)] | 6 | #![deny(rust_2018_idioms)] |
| 7 | #![allow(clippy::missing_docs_in_private_items, clippy::print_stdout)] | 7 | #![allow(clippy::missing_docs_in_private_items, clippy::print_stdout)] |
| 8 | 8 | ||
| 9 | #[macro_use] | ||
| 10 | extern crate lazy_static; | ||
| 11 | #[macro_use] | 9 | #[macro_use] |
| 12 | extern crate cfg_if; | 10 | extern crate cfg_if; |
| 13 | 11 | ||
| 14 | pub use assert_instr_macro::*; | 12 | pub use assert_instr_macro::*; |
| 15 | pub use simd_test_macro::*; | 13 | pub use simd_test_macro::*; |
| 16 | use std::{cmp, collections::HashSet, env, hash, hint::black_box, str}; | 14 | use std::{cmp, collections::HashSet, env, hash, hint::black_box, str, sync::LazyLock}; |
| 17 | 15 | ||
| 18 | cfg_if! { | 16 | cfg_if! { |
| 19 | if #[cfg(target_arch = "wasm32")] { | 17 | if #[cfg(target_arch = "wasm32")] { |
| ... | @@ -25,9 +23,7 @@ cfg_if! { | ... | @@ -25,9 +23,7 @@ cfg_if! { |
| 25 | } | 23 | } |
| 26 | } | 24 | } |
| 27 | 25 | ||
| 28 | lazy_static! { | 26 | static DISASSEMBLY: LazyLock<HashSet<Function>> = LazyLock::new(disassemble_myself); |
| 29 | static ref DISASSEMBLY: HashSet<Function> = disassemble_myself(); | ||
| 30 | } | ||
| 31 | 27 | ||
| 32 | #[derive(Debug)] | 28 | #[derive(Debug)] |
| 33 | struct Function { | 29 | struct Function { |
| ... | @@ -65,11 +61,12 @@ pub fn assert(shim_addr: usize, fnname: &str, expected: &str) { | ... | @@ -65,11 +61,12 @@ pub fn assert(shim_addr: usize, fnname: &str, expected: &str) { |
| 65 | black_box(shim_addr); | 61 | black_box(shim_addr); |
| 66 | 62 | ||
| 67 | //eprintln!("shim name: {fnname}"); | 63 | //eprintln!("shim name: {fnname}"); |
| 68 | let function = &DISASSEMBLY | 64 | let Some(function) = &DISASSEMBLY.get(&Function::new(fnname)) else { |
| 69 | .get(&Function::new(fnname)) | 65 | panic!("function `{fnname}` not found in the disassembly") |
| 70 | .unwrap_or_else(|| panic!("function \"{fnname}\" not found in the disassembly")); | 66 | }; |
| 71 | //eprintln!(" function: {:?}", function); | 67 | //eprintln!(" function: {:?}", function); |
| 72 | 68 | ||
| 69 | // Trim any filler instructions. | ||
| 73 | let mut instrs = &function.instrs[..]; | 70 | let mut instrs = &function.instrs[..]; |
| 74 | while instrs.last().is_some_and(|s| s == "nop" || s == "int3") { | 71 | while instrs.last().is_some_and(|s| s == "nop" || s == "int3") { |
| 75 | instrs = &instrs[..instrs.len() - 1]; | 72 | instrs = &instrs[..instrs.len() - 1]; |
| ... | @@ -84,12 +81,26 @@ pub fn assert(shim_addr: usize, fnname: &str, expected: &str) { | ... | @@ -84,12 +81,26 @@ pub fn assert(shim_addr: usize, fnname: &str, expected: &str) { |
| 84 | // 2. It is a mark, indicating that the instruction will be | 81 | // 2. It is a mark, indicating that the instruction will be |
| 85 | // compiled into other instructions - mainly because of llvm | 82 | // compiled into other instructions - mainly because of llvm |
| 86 | // optimization. | 83 | // optimization. |
| 87 | let expected = if expected == "unknown" { | 84 | let expected = match expected { |
| 88 | "<unknown>" // Workaround for rust-lang/stdarch#1674, todo: remove when the issue is fixed | 85 | // `<unknown>` is what LLVM will generate for unknown instructions. We use this to fail |
| 89 | } else { | 86 | // loudly when LLVM does start supporting these instructions. |
| 90 | expected | 87 | // |
| 88 | // This was introduced in https://github.com/rust-lang/stdarch/pull/1674 to work around the | ||
| 89 | // RISC-V P extension not yet being supported. | ||
| 90 | "unknown" => "<unknown>", | ||
| 91 | _ => expected, | ||
| 91 | }; | 92 | }; |
| 92 | let found = expected == "nop" || instrs.iter().any(|s| s.starts_with(expected)); | 93 | |
| 94 | // Check whether the given instruction is part of the disassemblied body. | ||
| 95 | let found = expected == "nop" | ||
| 96 | || instrs.iter().any(|instruction| { | ||
| 97 | instruction.starts_with(expected) | ||
| 98 | // Check that the next character is non-alphanumeric. This prevents false negatives | ||
| 99 | // when e.g. `fminnm` was used but `fmin` was expected. | ||
| 100 | // | ||
| 101 | // TODO: resolve the conflicts (x86_64 and aarch64 have a bunch, probably others) | ||
| 102 | // && !instruction[expected.len()..].starts_with(|c: char| c.is_ascii_alphanumeric()) | ||
| 103 | }); | ||
| 93 | 104 | ||
| 94 | // Look for subroutine call instructions in the disassembly to detect whether | 105 | // Look for subroutine call instructions in the disassembly to detect whether |
| 95 | // inlining failed: all intrinsics are `#[inline(always)]`, so calling one | 106 | // inlining failed: all intrinsics are `#[inline(always)]`, so calling one |
library/stdarch/examples/connect5.rs+12-25| ... | @@ -558,7 +558,8 @@ fn search(pos: &Pos, alpha: i32, beta: i32, depth: i32, _ply: i32) -> i32 { | ... | @@ -558,7 +558,8 @@ fn search(pos: &Pos, alpha: i32, beta: i32, depth: i32, _ply: i32) -> i32 { |
| 558 | assert_ne!(bm, MOVE_NONE); | 558 | assert_ne!(bm, MOVE_NONE); |
| 559 | assert!(bs >= -EVAL_INF && bs <= EVAL_INF); | 559 | assert!(bs >= -EVAL_INF && bs <= EVAL_INF); |
| 560 | 560 | ||
| 561 | if _ply == 0 { bm } else { bs } //best move at the root node, best score elsewhere | 561 | // best move at the root node, best score elsewhere |
| 562 | if _ply == 0 { bm } else { bs } | ||
| 562 | } | 563 | } |
| 563 | 564 | ||
| 564 | /// Evaluation function: give different scores to different patterns after a fixed depth. | 565 | /// Evaluation function: give different scores to different patterns after a fixed depth. |
| ... | @@ -570,15 +571,11 @@ fn eval(pos: &Pos, _ply: i32) -> i32 { | ... | @@ -570,15 +571,11 @@ fn eval(pos: &Pos, _ply: i32) -> i32 { |
| 570 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] | 571 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] |
| 571 | { | 572 | { |
| 572 | if check_x86_avx512_features() { | 573 | if check_x86_avx512_features() { |
| 573 | unsafe { | 574 | if unsafe { check_patternlive4_avx512(pos, def) } { |
| 574 | if check_patternlive4_avx512(pos, def) { | ||
| 575 | return -4096; | ||
| 576 | } | ||
| 577 | } | ||
| 578 | } else { | ||
| 579 | if check_patternlive4(pos, def) { | ||
| 580 | return -4096; | 575 | return -4096; |
| 581 | } | 576 | } |
| 577 | } else if check_patternlive4(pos, def) { | ||
| 578 | return -4096; | ||
| 582 | } | 579 | } |
| 583 | } | 580 | } |
| 584 | 581 | ||
| ... | @@ -593,15 +590,11 @@ fn eval(pos: &Pos, _ply: i32) -> i32 { | ... | @@ -593,15 +590,11 @@ fn eval(pos: &Pos, _ply: i32) -> i32 { |
| 593 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] | 590 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] |
| 594 | { | 591 | { |
| 595 | if check_x86_avx512_features() { | 592 | if check_x86_avx512_features() { |
| 596 | unsafe { | 593 | if unsafe { check_patternlive4_avx512(pos, atk) } { |
| 597 | if check_patternlive4_avx512(pos, atk) { | ||
| 598 | return 2560; | ||
| 599 | } | ||
| 600 | } | ||
| 601 | } else { | ||
| 602 | if check_patternlive4(pos, atk) { | ||
| 603 | return 2560; | 594 | return 2560; |
| 604 | } | 595 | } |
| 596 | } else if check_patternlive4(pos, atk) { | ||
| 597 | return 2560; | ||
| 605 | } | 598 | } |
| 606 | } | 599 | } |
| 607 | 600 | ||
| ... | @@ -616,15 +609,11 @@ fn eval(pos: &Pos, _ply: i32) -> i32 { | ... | @@ -616,15 +609,11 @@ fn eval(pos: &Pos, _ply: i32) -> i32 { |
| 616 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] | 609 | #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] |
| 617 | { | 610 | { |
| 618 | if check_x86_avx512_features() { | 611 | if check_x86_avx512_features() { |
| 619 | unsafe { | 612 | if unsafe { check_patterndead4_avx512(pos, atk) > 0 } { |
| 620 | if check_patterndead4_avx512(pos, atk) > 0 { | ||
| 621 | return 2560; | ||
| 622 | } | ||
| 623 | } | ||
| 624 | } else { | ||
| 625 | if check_patterndead4(pos, atk) > 0 { | ||
| 626 | return 2560; | 613 | return 2560; |
| 627 | } | 614 | } |
| 615 | } else if check_patterndead4(pos, atk) > 0 { | ||
| 616 | return 2560; | ||
| 628 | } | 617 | } |
| 629 | } | 618 | } |
| 630 | 619 | ||
| ... | @@ -909,9 +898,7 @@ fn pos_is_winner_avx512(pos: &Pos) -> bool { | ... | @@ -909,9 +898,7 @@ fn pos_is_winner_avx512(pos: &Pos) -> bool { |
| 909 | 0b00_10_10_10_10_11_10_10_10_10_11_11_11_11_11_10]; | 898 | 0b00_10_10_10_10_11_10_10_10_10_11_11_11_11_11_10]; |
| 910 | let mut count_match: i32 = 0; | 899 | let mut count_match: i32 = 0; |
| 911 | 900 | ||
| 912 | for dir in 0..2 { | 901 | for mut board0 in board0org { |
| 913 | // direction 0 and 1 | ||
| 914 | let mut board0 = board0org[dir]; | ||
| 915 | let boardf = _mm512_and_si512(answer, board0); | 902 | let boardf = _mm512_and_si512(answer, board0); |
| 916 | let temp_mask = _mm512_mask_cmpeq_epi16_mask(answer_mask[0], answer, boardf); | 903 | let temp_mask = _mm512_mask_cmpeq_epi16_mask(answer_mask[0], answer, boardf); |
| 917 | count_match += _popcnt32(temp_mask as i32); | 904 | count_match += _popcnt32(temp_mask as i32); |
library/stdarch/triagebot.toml+1-1| ... | @@ -1,7 +1,7 @@ | ... | @@ -1,7 +1,7 @@ |
| 1 | [assign] | 1 | [assign] |
| 2 | 2 | ||
| 3 | [assign.owners] | 3 | [assign.owners] |
| 4 | "*" = ["@Amanieu"] | 4 | "*" = ["@Amanieu", "@folkertdev", "@sayantn"] |
| 5 | 5 | ||
| 6 | [ping.windows] | 6 | [ping.windows] |
| 7 | message = """\ | 7 | message = """\ |