|
1 | 1 | //@ add-minicore |
2 | | -//@ revisions: x86 x86-avx2 x86-avx512 aarch64 |
| 2 | +//@ revisions: x86 x86-avx2 x86-avx512 aarch64-llvm-pre-23 aarch64 |
3 | 3 | //@ [x86] compile-flags: --target=x86_64-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel |
4 | 4 | //@ [x86] needs-llvm-components: x86 |
5 | 5 | //@ [x86-avx2] compile-flags: --target=x86_64-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel |
|
8 | 8 | //@ [x86-avx512] compile-flags: --target=x86_64-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel |
9 | 9 | //@ [x86-avx512] compile-flags: -C target-feature=+avx512f,+avx512vl,+avx512bw,+avx512dq |
10 | 10 | //@ [x86-avx512] needs-llvm-components: x86 |
| 11 | +//@ [aarch64] min-llvm-version: 23 |
11 | 12 | //@ [aarch64] compile-flags: --target=aarch64-unknown-linux-gnu |
12 | 13 | //@ [aarch64] needs-llvm-components: aarch64 |
| 14 | +//@ [aarch64-llvm-pre-23] ignore-llvm-version: 23 - 99 |
| 15 | +//@ [aarch64-llvm-pre-23] compile-flags: --target=aarch64-unknown-linux-gnu |
| 16 | +//@ [aarch64-llvm-pre-23] needs-llvm-components: aarch64 |
13 | 17 | //@ assembly-output: emit-asm |
14 | 18 | //@ compile-flags: --crate-type=lib -Copt-level=3 -C panic=abort |
15 | 19 |
|
@@ -54,14 +58,23 @@ pub unsafe extern "C" fn bitmask_m8x16(mask: m8x16) -> u16 { |
54 | 58 | // x86-avx512-NOT: vpsllw xmm0 |
55 | 59 | // x86-avx512: vpmovmskb eax, xmm0 |
56 | 60 | // |
| 61 | + // aarch64-pre-llvm-23: adrp |
| 62 | + // aarch64-pre-llvm-23-NEXT: cmlt |
| 63 | + // aarch64-pre-llvm-23-NEXT: ldr |
| 64 | + // aarch64-pre-llvm-23-NEXT: and |
| 65 | + // aarch64-pre-llvm-23-NEXT: ext |
| 66 | + // aarch64-pre-llvm-23-NEXT: zip1 |
| 67 | + // aarch64-pre-llvm-23-NEXT: addv |
| 68 | + // aarch64-pre-llvm-23-NEXT: fmov |
| 69 | + // |
57 | 70 | // aarch64: adrp |
58 | 71 | // aarch64-NEXT: cmlt |
59 | 72 | // aarch64-NEXT: ldr |
60 | 73 | // aarch64-NEXT: and |
61 | | - // aarch64-NEXT: ext |
62 | | - // aarch64-NEXT: zip1 |
63 | | - // aarch64-NEXT: addv |
64 | | - // aarch64-NEXT: fmov |
| 74 | + // aarch64-NEXT: addp |
| 75 | + // aarch64-NEXT: addp |
| 76 | + // aarch64-NEXT: addp |
| 77 | + // aarch64-NEXT: umov |
65 | 78 | simd_bitmask(mask) |
66 | 79 | } |
67 | 80 |
|
|
0 commit comments