[llvm-mca][AArch64] Merge Neoverse NEON tests (NFC) (#170881)

Follow-on from #170324 to also refactor the NEON tests to reuse the
input assembly across all Neoverse cores.

The approach is as follows:

- Inputs for Neoverse N1/N2/N3 NEON tests are already identical, so
  first combine those.
- Inputs for V2/V3/V3AE NEON tests are also already identical, but
  differ from N-cores, so combine those separately.
- Most significantly, input for V1 differs from all other cores
  primarily because of 24f0901 (#128892).
- Split out features that are not supported across all cores.
  - Split out FEAT_I8MM, FEAT_FHM, FEAT_FCMA. N1 doesn't have this
    feature but all other Neoverse cores do. Also adds coverage for
    N2/N3 since they were missing tests.
  - Split out FEAT_BF16. V1 doesn't have this feature but all other
    Neoverse cores do. Also adds coverage for N1/N2/N3 since they were
    missing tests.
  - Split out FEAT_FRINTTS. V1/N1 don't have this feature but all other
    Neoverse cores do. Also adds coverage for N2/N3 since they were
    missing tests.
- Bring Neoverse V2/V3/V3AE and N1/N2/N3 neon tests inline. Comparing
  N[1-3] against V[2-3] the only change the N cores have that V[2-3]
  dont is:
```
  < st4 { v0.d, v1.d, v2.d, v3.d }[1], [x0], x5
  ---
  > st4 { v0.b, v1.b, v2.b, v3.b }[9], [x0], x5
```
  So we take it for all cores. The rest of the diff is
  instructions in V[2-3] that arent in N cores, so we also take them.

  All Neoverse cores can optionally support the Cryptographic Extension.
The related features (AES, ...) are enabled by default for V1/N1 but not
  the other cores, so need to be explicitly enabled via -mattr.
- Finally bring Neoverse V1 inline with V2/V3/V3AE/N1/N2/N3
  - loads/stores are blended
  - duplicates with different spaces like `shll   v0.2d, v0.2s, #32` are
    removed
- the rest of the diff is instructions in V1 that are not tested in the
    other cores, so we add them for the other cores
This commit is contained in:
Cullen Rhodes
2025-12-09 12:43:47 +00:00
committed by GitHub
parent 870aa89fbc
commit 95bd87848d
42 changed files with 8764 additions and 8945 deletions

View File

@@ -0,0 +1,11 @@
bfcvt h0, s0
bfcvtn v0.4h, v0.4s
bfcvtn2 v0.8h, v0.4s
bfdot v0.2s, v24.4h, v14.2h[2]
bfdot v0.2s, v0.4h, v0.4h
bfdot v0.4s, v0.8h, v0.8h
bfmlalb v0.4s, v0.8h, v0.8h
bfmlalb v0.4s, v0.8h, v0.h[3]
bfmlalt v0.4s, v0.8h, v0.8h
bfmlalt v0.4s, v0.8h, v0.h[3]
bfmmla v0.4s, v0.8h, v0.8h

View File

@@ -0,0 +1,4 @@
fcadd v0.2s, v0.2s, v0.2s, 90
fcadd v0.4s, v0.4s, v0.4s, 270
fcmla v0.2s, v0.2s, v0.2s, #90
fcmla v0.4s, v0.4s, v0.s[1], #0

View File

@@ -0,0 +1,16 @@
fmlal v0.2s, v0.2h, v0.h[1]
fmlal v0.4s, v0.4h, v0.h[3]
fmlal v0.2s, v0.2h, v0.2h
fmlal v0.4s, v0.4h, v0.4h
fmlal2 v0.2s, v0.2h, v0.h[1]
fmlal2 v0.4s, v0.4h, v0.h[3]
fmlal2 v0.2s, v0.2h, v0.2h
fmlal2 v0.4s, v0.4h, v0.4h
fmlsl v0.2s, v0.2h, v0.h[1]
fmlsl v0.4s, v0.4h, v0.h[3]
fmlsl v0.2s, v0.2h, v0.2h
fmlsl v0.4s, v0.4h, v0.4h
fmlsl2 v0.2s, v0.2h, v0.h[1]
fmlsl2 v0.4s, v0.4h, v0.h[3]
fmlsl2 v0.2s, v0.2h, v0.2h
fmlsl2 v0.4s, v0.4h, v0.4h

View File

@@ -0,0 +1,12 @@
frint32x v0.2d, v0.2d
frint32x v0.2s, v0.2s
frint32x v0.4s, v0.4s
frint32z v0.2d, v0.2d
frint32z v0.2s, v0.2s
frint32z v0.4s, v0.4s
frint64x v0.2d, v0.2d
frint64x v0.2s, v0.2s
frint64x v0.4s, v0.4s
frint64z v0.2d, v0.2d
frint64z v0.2s, v0.2s
frint64z v0.4s, v0.4s

View File

@@ -0,0 +1,9 @@
smmla v0.4s, v0.16b, v0.16b
sudot v0.2s, v0.8b, v0.4b[2]
sudot v0.4s, v0.16b, v0.4b[2]
ummla v0.4s, v0.16b, v0.16b
usdot v0.2s, v0.8b, v0.4b[2]
usdot v0.2s, v0.8b, v0.8b
usdot v0.4s, v0.16b, v0.16b
usdot v0.4s, v0.16b, v0.4b[2]
usmmla v0.4s, v0.16b, v0.16b

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,56 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/bf16-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 1.00 bfcvt h0, s0
# CHECK-NEXT: 1 4 1.00 bfcvtn v0.4h, v0.4s
# CHECK-NEXT: 1 4 1.00 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 2 0.50 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 4 0.50 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.50 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 5 0.50 bfmmla v0.4s, v0.8h, v0.8h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N2UnitB
# CHECK-NEXT: [0.1] - N2UnitB
# CHECK-NEXT: [1.0] - N2UnitD
# CHECK-NEXT: [1.1] - N2UnitD
# CHECK-NEXT: [2] - N2UnitL2
# CHECK-NEXT: [3.0] - N2UnitL01
# CHECK-NEXT: [3.1] - N2UnitL01
# CHECK-NEXT: [4] - N2UnitM0
# CHECK-NEXT: [5] - N2UnitM1
# CHECK-NEXT: [6.0] - N2UnitS
# CHECK-NEXT: [6.1] - N2UnitS
# CHECK-NEXT: [7] - N2UnitV0
# CHECK-NEXT: [8] - N2UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 7.00 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 1.00 - bfcvt h0, s0
# CHECK-NEXT: - - - - - - - - - - - 1.00 - bfcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmmla v0.4s, v0.8h, v0.8h

View File

@@ -0,0 +1,42 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/complxnum-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.50 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 2 0.50 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: 1 4 0.50 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 4 0.50 fcmla v0.4s, v0.4s, v0.s[1], #0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N2UnitB
# CHECK-NEXT: [0.1] - N2UnitB
# CHECK-NEXT: [1.0] - N2UnitD
# CHECK-NEXT: [1.1] - N2UnitD
# CHECK-NEXT: [2] - N2UnitL2
# CHECK-NEXT: [3.0] - N2UnitL01
# CHECK-NEXT: [3.1] - N2UnitL01
# CHECK-NEXT: [4] - N2UnitM0
# CHECK-NEXT: [5] - N2UnitM1
# CHECK-NEXT: [6.0] - N2UnitS
# CHECK-NEXT: [6.1] - N2UnitS
# CHECK-NEXT: [7] - N2UnitV0
# CHECK-NEXT: [8] - N2UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 2.00 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmla v0.4s, v0.4s, v0.s[1], #0

View File

@@ -0,0 +1,66 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/fp16fml-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.50 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 5 0.50 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 5 0.50 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.50 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 5 0.50 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 5 0.50 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.4s, v0.4h, v0.4h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N2UnitB
# CHECK-NEXT: [0.1] - N2UnitB
# CHECK-NEXT: [1.0] - N2UnitD
# CHECK-NEXT: [1.1] - N2UnitD
# CHECK-NEXT: [2] - N2UnitL2
# CHECK-NEXT: [3.0] - N2UnitL01
# CHECK-NEXT: [3.1] - N2UnitL01
# CHECK-NEXT: [4] - N2UnitM0
# CHECK-NEXT: [5] - N2UnitM1
# CHECK-NEXT: [6.0] - N2UnitS
# CHECK-NEXT: [6.1] - N2UnitS
# CHECK-NEXT: [7] - N2UnitV0
# CHECK-NEXT: [8] - N2UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 8.00 8.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.4s, v0.4h, v0.4h

View File

@@ -0,0 +1,58 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/fptoint-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 1.00 frint32x v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint32x v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint32x v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint32z v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint32z v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint32z v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint64x v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint64x v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint64x v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint64z v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint64z v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint64z v0.4s, v0.4s
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N2UnitB
# CHECK-NEXT: [0.1] - N2UnitB
# CHECK-NEXT: [1.0] - N2UnitD
# CHECK-NEXT: [1.1] - N2UnitD
# CHECK-NEXT: [2] - N2UnitL2
# CHECK-NEXT: [3.0] - N2UnitL01
# CHECK-NEXT: [3.1] - N2UnitL01
# CHECK-NEXT: [4] - N2UnitM0
# CHECK-NEXT: [5] - N2UnitM1
# CHECK-NEXT: [6.0] - N2UnitS
# CHECK-NEXT: [6.1] - N2UnitS
# CHECK-NEXT: [7] - N2UnitV0
# CHECK-NEXT: [8] - N2UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 16.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint32x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint32z v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint64x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint64z v0.4s, v0.4s

View File

@@ -0,0 +1,52 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n2 -instruction-tables < %p/Inputs/i8mm-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.50 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 usmmla v0.4s, v0.16b, v0.16b
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N2UnitB
# CHECK-NEXT: [0.1] - N2UnitB
# CHECK-NEXT: [1.0] - N2UnitD
# CHECK-NEXT: [1.1] - N2UnitD
# CHECK-NEXT: [2] - N2UnitL2
# CHECK-NEXT: [3.0] - N2UnitL01
# CHECK-NEXT: [3.1] - N2UnitL01
# CHECK-NEXT: [4] - N2UnitM0
# CHECK-NEXT: [5] - N2UnitM1
# CHECK-NEXT: [6.0] - N2UnitS
# CHECK-NEXT: [6.1] - N2UnitS
# CHECK-NEXT: [7] - N2UnitV0
# CHECK-NEXT: [8] - N2UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 4.50 4.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usmmla v0.4s, v0.16b, v0.16b

View File

@@ -0,0 +1,56 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/bf16-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 1.00 bfcvt h0, s0
# CHECK-NEXT: 2 4 2.00 bfcvtn v0.4h, v0.4s
# CHECK-NEXT: 2 4 2.00 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 2 0.50 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 4 0.50 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.50 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.50 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 5 0.50 bfmmla v0.4s, v0.8h, v0.8h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N3UnitB
# CHECK-NEXT: [0.1] - N3UnitB
# CHECK-NEXT: [1.0] - N3UnitD
# CHECK-NEXT: [1.1] - N3UnitD
# CHECK-NEXT: [2] - N3UnitL2
# CHECK-NEXT: [3.0] - N3UnitL01
# CHECK-NEXT: [3.1] - N3UnitL01
# CHECK-NEXT: [4] - N3UnitM0
# CHECK-NEXT: [5] - N3UnitM1
# CHECK-NEXT: [6.0] - N3UnitS
# CHECK-NEXT: [6.1] - N3UnitS
# CHECK-NEXT: [7] - N3UnitV0
# CHECK-NEXT: [8] - N3UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 9.00 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 1.00 - bfcvt h0, s0
# CHECK-NEXT: - - - - - - - - - - - 2.00 - bfcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 bfmmla v0.4s, v0.8h, v0.8h

View File

@@ -0,0 +1,42 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/complxnum-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 3 0.50 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: 1 4 0.50 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 4 0.50 fcmla v0.4s, v0.4s, v0.s[1], #0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N3UnitB
# CHECK-NEXT: [0.1] - N3UnitB
# CHECK-NEXT: [1.0] - N3UnitD
# CHECK-NEXT: [1.1] - N3UnitD
# CHECK-NEXT: [2] - N3UnitL2
# CHECK-NEXT: [3.0] - N3UnitL01
# CHECK-NEXT: [3.1] - N3UnitL01
# CHECK-NEXT: [4] - N3UnitM0
# CHECK-NEXT: [5] - N3UnitM1
# CHECK-NEXT: [6.0] - N3UnitS
# CHECK-NEXT: [6.1] - N3UnitS
# CHECK-NEXT: [7] - N3UnitV0
# CHECK-NEXT: [8] - N3UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 2.00 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fcmla v0.4s, v0.4s, v0.s[1], #0

View File

@@ -0,0 +1,66 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/fp16fml-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.50 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.50 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 2 0.50 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.50 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.50 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 2 0.50 fmlsl2 v0.4s, v0.4h, v0.4h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N3UnitB
# CHECK-NEXT: [0.1] - N3UnitB
# CHECK-NEXT: [1.0] - N3UnitD
# CHECK-NEXT: [1.1] - N3UnitD
# CHECK-NEXT: [2] - N3UnitL2
# CHECK-NEXT: [3.0] - N3UnitL01
# CHECK-NEXT: [3.1] - N3UnitL01
# CHECK-NEXT: [4] - N3UnitM0
# CHECK-NEXT: [5] - N3UnitM1
# CHECK-NEXT: [6.0] - N3UnitS
# CHECK-NEXT: [6.1] - N3UnitS
# CHECK-NEXT: [7] - N3UnitV0
# CHECK-NEXT: [8] - N3UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 8.00 8.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.4s, v0.4h, v0.4h

View File

@@ -0,0 +1,58 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/fptoint-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 1.00 frint32x v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint32x v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint32x v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint32z v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint32z v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint32z v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint64x v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint64x v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint64x v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint64z v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint64z v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint64z v0.4s, v0.4s
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N3UnitB
# CHECK-NEXT: [0.1] - N3UnitB
# CHECK-NEXT: [1.0] - N3UnitD
# CHECK-NEXT: [1.1] - N3UnitD
# CHECK-NEXT: [2] - N3UnitL2
# CHECK-NEXT: [3.0] - N3UnitL01
# CHECK-NEXT: [3.1] - N3UnitL01
# CHECK-NEXT: [4] - N3UnitM0
# CHECK-NEXT: [5] - N3UnitM1
# CHECK-NEXT: [6.0] - N3UnitS
# CHECK-NEXT: [6.1] - N3UnitS
# CHECK-NEXT: [7] - N3UnitV0
# CHECK-NEXT: [8] - N3UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 16.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint32x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint32z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint32z v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint64x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - 1.00 - frint64z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - 2.00 - frint64z v0.4s, v0.4s

View File

@@ -0,0 +1,52 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-n3 -instruction-tables < %p/Inputs/i8mm-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.50 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 usmmla v0.4s, v0.16b, v0.16b
# CHECK: Resources:
# CHECK-NEXT: [0.0] - N3UnitB
# CHECK-NEXT: [0.1] - N3UnitB
# CHECK-NEXT: [1.0] - N3UnitD
# CHECK-NEXT: [1.1] - N3UnitD
# CHECK-NEXT: [2] - N3UnitL2
# CHECK-NEXT: [3.0] - N3UnitL01
# CHECK-NEXT: [3.1] - N3UnitL01
# CHECK-NEXT: [4] - N3UnitM0
# CHECK-NEXT: [5] - N3UnitM1
# CHECK-NEXT: [6.0] - N3UnitS
# CHECK-NEXT: [6.1] - N3UnitS
# CHECK-NEXT: [7] - N3UnitV0
# CHECK-NEXT: [8] - N3UnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8]
# CHECK-NEXT: - - - - - - - - - - - 4.50 4.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4] [5] [6.0] [6.1] [7] [8] Instructions:
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - 0.50 0.50 usmmla v0.4s, v0.16b, v0.16b

View File

@@ -0,0 +1,61 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/bf16-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 bfcvt h0, s0
# CHECK-NEXT: 1 4 0.50 bfcvtn v0.4h, v0.4s
# CHECK-NEXT: 1 4 0.50 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 4 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 4 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.25 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.25 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 4 0.25 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 5 0.25 bfmmla v0.4s, v0.8h, v0.8h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V1UnitB
# CHECK-NEXT: [0.1] - V1UnitB
# CHECK-NEXT: [1.0] - V1UnitD
# CHECK-NEXT: [1.1] - V1UnitD
# CHECK-NEXT: [2.0] - V1UnitFlg
# CHECK-NEXT: [2.1] - V1UnitFlg
# CHECK-NEXT: [2.2] - V1UnitFlg
# CHECK-NEXT: [3] - V1UnitL2
# CHECK-NEXT: [4.0] - V1UnitL01
# CHECK-NEXT: [4.1] - V1UnitL01
# CHECK-NEXT: [5] - V1UnitM0
# CHECK-NEXT: [6] - V1UnitM1
# CHECK-NEXT: [7.0] - V1UnitS
# CHECK-NEXT: [7.1] - V1UnitS
# CHECK-NEXT: [8] - V1UnitV0
# CHECK-NEXT: [9] - V1UnitV1
# CHECK-NEXT: [10] - V1UnitV2
# CHECK-NEXT: [11] - V1UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
# CHECK-NEXT: - - - - - - - - - - - - - - 3.50 2.00 3.50 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvt h0, s0
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmmla v0.4s, v0.8h, v0.8h

View File

@@ -0,0 +1,47 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/complxnum-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 4 0.25 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 4 0.25 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: 1 4 0.25 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 4 0.25 fcmla v0.4s, v0.4s, v0.s[1], #0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V1UnitB
# CHECK-NEXT: [0.1] - V1UnitB
# CHECK-NEXT: [1.0] - V1UnitD
# CHECK-NEXT: [1.1] - V1UnitD
# CHECK-NEXT: [2.0] - V1UnitFlg
# CHECK-NEXT: [2.1] - V1UnitFlg
# CHECK-NEXT: [2.2] - V1UnitFlg
# CHECK-NEXT: [3] - V1UnitL2
# CHECK-NEXT: [4.0] - V1UnitL01
# CHECK-NEXT: [4.1] - V1UnitL01
# CHECK-NEXT: [5] - V1UnitM0
# CHECK-NEXT: [6] - V1UnitM1
# CHECK-NEXT: [7.0] - V1UnitS
# CHECK-NEXT: [7.1] - V1UnitS
# CHECK-NEXT: [8] - V1UnitV0
# CHECK-NEXT: [9] - V1UnitV1
# CHECK-NEXT: [10] - V1UnitV2
# CHECK-NEXT: [11] - V1UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
# CHECK-NEXT: - - - - - - - - - - - - - - 1.00 1.00 1.00 1.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmla v0.4s, v0.4s, v0.s[1], #0

View File

@@ -0,0 +1,71 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/fp16fml-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.25 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.25 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 5 0.25 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 5 0.25 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.25 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.25 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 5 0.25 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 5 0.25 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.25 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.25 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 5 0.25 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 5 0.25 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 2 0.25 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 2 0.25 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 5 0.25 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 5 0.25 fmlsl2 v0.4s, v0.4h, v0.4h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V1UnitB
# CHECK-NEXT: [0.1] - V1UnitB
# CHECK-NEXT: [1.0] - V1UnitD
# CHECK-NEXT: [1.1] - V1UnitD
# CHECK-NEXT: [2.0] - V1UnitFlg
# CHECK-NEXT: [2.1] - V1UnitFlg
# CHECK-NEXT: [2.2] - V1UnitFlg
# CHECK-NEXT: [3] - V1UnitL2
# CHECK-NEXT: [4.0] - V1UnitL01
# CHECK-NEXT: [4.1] - V1UnitL01
# CHECK-NEXT: [5] - V1UnitM0
# CHECK-NEXT: [6] - V1UnitM1
# CHECK-NEXT: [7.0] - V1UnitS
# CHECK-NEXT: [7.1] - V1UnitS
# CHECK-NEXT: [8] - V1UnitV0
# CHECK-NEXT: [9] - V1UnitV1
# CHECK-NEXT: [10] - V1UnitV2
# CHECK-NEXT: [11] - V1UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
# CHECK-NEXT: - - - - - - - - - - - - - - 4.00 4.00 4.00 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.4s, v0.4h, v0.4h

View File

@@ -0,0 +1,57 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v1 -instruction-tables < %p/Inputs/i8mm-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.25 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.25 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 usmmla v0.4s, v0.16b, v0.16b
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V1UnitB
# CHECK-NEXT: [0.1] - V1UnitB
# CHECK-NEXT: [1.0] - V1UnitD
# CHECK-NEXT: [1.1] - V1UnitD
# CHECK-NEXT: [2.0] - V1UnitFlg
# CHECK-NEXT: [2.1] - V1UnitFlg
# CHECK-NEXT: [2.2] - V1UnitFlg
# CHECK-NEXT: [3] - V1UnitL2
# CHECK-NEXT: [4.0] - V1UnitL01
# CHECK-NEXT: [4.1] - V1UnitL01
# CHECK-NEXT: [5] - V1UnitM0
# CHECK-NEXT: [6] - V1UnitM1
# CHECK-NEXT: [7.0] - V1UnitS
# CHECK-NEXT: [7.1] - V1UnitS
# CHECK-NEXT: [8] - V1UnitV0
# CHECK-NEXT: [9] - V1UnitV1
# CHECK-NEXT: [10] - V1UnitV2
# CHECK-NEXT: [11] - V1UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11]
# CHECK-NEXT: - - - - - - - - - - - - - - 2.25 2.25 2.25 2.25
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7.0] [7.1] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usmmla v0.4s, v0.16b, v0.16b

View File

@@ -0,0 +1,63 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/bf16-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 bfcvt h0, s0
# CHECK-NEXT: 2 4 1.00 bfcvtn v0.4h, v0.4s
# CHECK-NEXT: 2 4 1.00 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 2 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 5 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 5 0.25 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.25 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.25 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 5 0.25 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.25 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 6 0.25 bfmmla v0.4s, v0.8h, v0.8h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V2UnitB
# CHECK-NEXT: [0.1] - V2UnitB
# CHECK-NEXT: [1.0] - V2UnitD
# CHECK-NEXT: [1.1] - V2UnitD
# CHECK-NEXT: [2.0] - V2UnitFlg
# CHECK-NEXT: [2.1] - V2UnitFlg
# CHECK-NEXT: [2.2] - V2UnitFlg
# CHECK-NEXT: [3] - V2UnitL2
# CHECK-NEXT: [4.0] - V2UnitL01
# CHECK-NEXT: [4.1] - V2UnitL01
# CHECK-NEXT: [5] - V2UnitM0
# CHECK-NEXT: [6] - V2UnitM1
# CHECK-NEXT: [7] - V2UnitS0
# CHECK-NEXT: [8] - V2UnitS1
# CHECK-NEXT: [9] - V2UnitS2
# CHECK-NEXT: [10] - V2UnitS3
# CHECK-NEXT: [11] - V2UnitV0
# CHECK-NEXT: [12] - V2UnitV1
# CHECK-NEXT: [13] - V2UnitV2
# CHECK-NEXT: [14] - V2UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 4.50 2.00 4.50 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvt h0, s0
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - bfcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmmla v0.4s, v0.8h, v0.8h

View File

@@ -0,0 +1,49 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/complxnum-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.25 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 2 0.25 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: 1 4 0.25 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 4 0.25 fcmla v0.4s, v0.4s, v0.s[1], #0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V2UnitB
# CHECK-NEXT: [0.1] - V2UnitB
# CHECK-NEXT: [1.0] - V2UnitD
# CHECK-NEXT: [1.1] - V2UnitD
# CHECK-NEXT: [2.0] - V2UnitFlg
# CHECK-NEXT: [2.1] - V2UnitFlg
# CHECK-NEXT: [2.2] - V2UnitFlg
# CHECK-NEXT: [3] - V2UnitL2
# CHECK-NEXT: [4.0] - V2UnitL01
# CHECK-NEXT: [4.1] - V2UnitL01
# CHECK-NEXT: [5] - V2UnitM0
# CHECK-NEXT: [6] - V2UnitM1
# CHECK-NEXT: [7] - V2UnitS0
# CHECK-NEXT: [8] - V2UnitS1
# CHECK-NEXT: [9] - V2UnitS2
# CHECK-NEXT: [10] - V2UnitS3
# CHECK-NEXT: [11] - V2UnitV0
# CHECK-NEXT: [12] - V2UnitV1
# CHECK-NEXT: [13] - V2UnitV2
# CHECK-NEXT: [14] - V2UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 1.00 1.00 1.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmla v0.4s, v0.4s, v0.s[1], #0

View File

@@ -0,0 +1,73 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/fp16fml-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 4 0.25 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.4s, v0.4h, v0.4h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V2UnitB
# CHECK-NEXT: [0.1] - V2UnitB
# CHECK-NEXT: [1.0] - V2UnitD
# CHECK-NEXT: [1.1] - V2UnitD
# CHECK-NEXT: [2.0] - V2UnitFlg
# CHECK-NEXT: [2.1] - V2UnitFlg
# CHECK-NEXT: [2.2] - V2UnitFlg
# CHECK-NEXT: [3] - V2UnitL2
# CHECK-NEXT: [4.0] - V2UnitL01
# CHECK-NEXT: [4.1] - V2UnitL01
# CHECK-NEXT: [5] - V2UnitM0
# CHECK-NEXT: [6] - V2UnitM1
# CHECK-NEXT: [7] - V2UnitS0
# CHECK-NEXT: [8] - V2UnitS1
# CHECK-NEXT: [9] - V2UnitS2
# CHECK-NEXT: [10] - V2UnitS3
# CHECK-NEXT: [11] - V2UnitV0
# CHECK-NEXT: [12] - V2UnitV1
# CHECK-NEXT: [13] - V2UnitV2
# CHECK-NEXT: [14] - V2UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 4.00 4.00 4.00 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.4s, v0.4h, v0.4h

View File

@@ -0,0 +1,65 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/fptoint-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 frint32x v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint32x v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint32x v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint32z v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint32z v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint32z v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint64x v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint64x v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint64x v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint64z v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint64z v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint64z v0.4s, v0.4s
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V2UnitB
# CHECK-NEXT: [0.1] - V2UnitB
# CHECK-NEXT: [1.0] - V2UnitD
# CHECK-NEXT: [1.1] - V2UnitD
# CHECK-NEXT: [2.0] - V2UnitFlg
# CHECK-NEXT: [2.1] - V2UnitFlg
# CHECK-NEXT: [2.2] - V2UnitFlg
# CHECK-NEXT: [3] - V2UnitL2
# CHECK-NEXT: [4.0] - V2UnitL01
# CHECK-NEXT: [4.1] - V2UnitL01
# CHECK-NEXT: [5] - V2UnitM0
# CHECK-NEXT: [6] - V2UnitM1
# CHECK-NEXT: [7] - V2UnitS0
# CHECK-NEXT: [8] - V2UnitS1
# CHECK-NEXT: [9] - V2UnitS2
# CHECK-NEXT: [10] - V2UnitS3
# CHECK-NEXT: [11] - V2UnitV0
# CHECK-NEXT: [12] - V2UnitV1
# CHECK-NEXT: [13] - V2UnitV2
# CHECK-NEXT: [14] - V2UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 8.00 - 8.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint32x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint32z v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint64x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint64z v0.4s, v0.4s

View File

@@ -0,0 +1,59 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v2 -instruction-tables < %p/Inputs/i8mm-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.25 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.25 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 usmmla v0.4s, v0.16b, v0.16b
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V2UnitB
# CHECK-NEXT: [0.1] - V2UnitB
# CHECK-NEXT: [1.0] - V2UnitD
# CHECK-NEXT: [1.1] - V2UnitD
# CHECK-NEXT: [2.0] - V2UnitFlg
# CHECK-NEXT: [2.1] - V2UnitFlg
# CHECK-NEXT: [2.2] - V2UnitFlg
# CHECK-NEXT: [3] - V2UnitL2
# CHECK-NEXT: [4.0] - V2UnitL01
# CHECK-NEXT: [4.1] - V2UnitL01
# CHECK-NEXT: [5] - V2UnitM0
# CHECK-NEXT: [6] - V2UnitM1
# CHECK-NEXT: [7] - V2UnitS0
# CHECK-NEXT: [8] - V2UnitS1
# CHECK-NEXT: [9] - V2UnitS2
# CHECK-NEXT: [10] - V2UnitS3
# CHECK-NEXT: [11] - V2UnitV0
# CHECK-NEXT: [12] - V2UnitV1
# CHECK-NEXT: [13] - V2UnitV2
# CHECK-NEXT: [14] - V2UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 2.25 2.25 2.25 2.25
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2.0] [2.1] [2.2] [3] [4.0] [4.1] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usmmla v0.4s, v0.16b, v0.16b

View File

@@ -0,0 +1,68 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/bf16-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 bfcvt h0, s0
# CHECK-NEXT: 2 4 1.00 bfcvtn v0.4h, v0.4s
# CHECK-NEXT: 2 4 1.00 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 2 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 5 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 5 0.25 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.25 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.25 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 5 0.25 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.25 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 6 0.25 bfmmla v0.4s, v0.8h, v0.8h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3UnitB
# CHECK-NEXT: [0.1] - V3UnitB
# CHECK-NEXT: [0.2] - V3UnitB
# CHECK-NEXT: [1.0] - V3UnitD
# CHECK-NEXT: [1.1] - V3UnitD
# CHECK-NEXT: [2.0] - V3UnitFlg
# CHECK-NEXT: [2.1] - V3UnitFlg
# CHECK-NEXT: [2.2] - V3UnitFlg
# CHECK-NEXT: [2.3] - V3UnitFlg
# CHECK-NEXT: [3.0] - V3UnitL12
# CHECK-NEXT: [3.1] - V3UnitL12
# CHECK-NEXT: [4] - V3UnitLS0
# CHECK-NEXT: [5] - V3UnitM0
# CHECK-NEXT: [6] - V3UnitM1
# CHECK-NEXT: [7] - V3UnitS0
# CHECK-NEXT: [8] - V3UnitS1
# CHECK-NEXT: [9] - V3UnitS2
# CHECK-NEXT: [10] - V3UnitS3
# CHECK-NEXT: [11] - V3UnitS4
# CHECK-NEXT: [12] - V3UnitS5
# CHECK-NEXT: [13] - V3UnitST1
# CHECK-NEXT: [14] - V3UnitV0
# CHECK-NEXT: [15] - V3UnitV1
# CHECK-NEXT: [16] - V3UnitV2
# CHECK-NEXT: [17] - V3UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 4.50 2.00 4.50 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - bfcvt h0, s0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - 1.00 - bfcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - 1.00 - bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 bfmmla v0.4s, v0.8h, v0.8h

View File

@@ -0,0 +1,54 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/complxnum-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.25 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 2 0.25 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: 1 4 0.25 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 4 0.25 fcmla v0.4s, v0.4s, v0.s[1], #0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3UnitB
# CHECK-NEXT: [0.1] - V3UnitB
# CHECK-NEXT: [0.2] - V3UnitB
# CHECK-NEXT: [1.0] - V3UnitD
# CHECK-NEXT: [1.1] - V3UnitD
# CHECK-NEXT: [2.0] - V3UnitFlg
# CHECK-NEXT: [2.1] - V3UnitFlg
# CHECK-NEXT: [2.2] - V3UnitFlg
# CHECK-NEXT: [2.3] - V3UnitFlg
# CHECK-NEXT: [3.0] - V3UnitL12
# CHECK-NEXT: [3.1] - V3UnitL12
# CHECK-NEXT: [4] - V3UnitLS0
# CHECK-NEXT: [5] - V3UnitM0
# CHECK-NEXT: [6] - V3UnitM1
# CHECK-NEXT: [7] - V3UnitS0
# CHECK-NEXT: [8] - V3UnitS1
# CHECK-NEXT: [9] - V3UnitS2
# CHECK-NEXT: [10] - V3UnitS3
# CHECK-NEXT: [11] - V3UnitS4
# CHECK-NEXT: [12] - V3UnitS5
# CHECK-NEXT: [13] - V3UnitST1
# CHECK-NEXT: [14] - V3UnitV0
# CHECK-NEXT: [15] - V3UnitV1
# CHECK-NEXT: [16] - V3UnitV2
# CHECK-NEXT: [17] - V3UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 1.00 1.00 1.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fcmla v0.4s, v0.4s, v0.s[1], #0

View File

@@ -0,0 +1,78 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/fp16fml-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 4 0.25 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.25 fmlsl2 v0.4s, v0.4h, v0.4h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3UnitB
# CHECK-NEXT: [0.1] - V3UnitB
# CHECK-NEXT: [0.2] - V3UnitB
# CHECK-NEXT: [1.0] - V3UnitD
# CHECK-NEXT: [1.1] - V3UnitD
# CHECK-NEXT: [2.0] - V3UnitFlg
# CHECK-NEXT: [2.1] - V3UnitFlg
# CHECK-NEXT: [2.2] - V3UnitFlg
# CHECK-NEXT: [2.3] - V3UnitFlg
# CHECK-NEXT: [3.0] - V3UnitL12
# CHECK-NEXT: [3.1] - V3UnitL12
# CHECK-NEXT: [4] - V3UnitLS0
# CHECK-NEXT: [5] - V3UnitM0
# CHECK-NEXT: [6] - V3UnitM1
# CHECK-NEXT: [7] - V3UnitS0
# CHECK-NEXT: [8] - V3UnitS1
# CHECK-NEXT: [9] - V3UnitS2
# CHECK-NEXT: [10] - V3UnitS3
# CHECK-NEXT: [11] - V3UnitS4
# CHECK-NEXT: [12] - V3UnitS5
# CHECK-NEXT: [13] - V3UnitST1
# CHECK-NEXT: [14] - V3UnitV0
# CHECK-NEXT: [15] - V3UnitV1
# CHECK-NEXT: [16] - V3UnitV2
# CHECK-NEXT: [17] - V3UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 4.00 4.00 4.00 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 fmlsl2 v0.4s, v0.4h, v0.4h

View File

@@ -0,0 +1,70 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/fptoint-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 frint32x v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint32x v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint32x v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint32z v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint32z v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint32z v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint64x v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint64x v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint64x v0.4s, v0.4s
# CHECK-NEXT: 1 3 0.50 frint64z v0.2d, v0.2d
# CHECK-NEXT: 1 3 0.50 frint64z v0.2s, v0.2s
# CHECK-NEXT: 2 4 1.00 frint64z v0.4s, v0.4s
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3UnitB
# CHECK-NEXT: [0.1] - V3UnitB
# CHECK-NEXT: [0.2] - V3UnitB
# CHECK-NEXT: [1.0] - V3UnitD
# CHECK-NEXT: [1.1] - V3UnitD
# CHECK-NEXT: [2.0] - V3UnitFlg
# CHECK-NEXT: [2.1] - V3UnitFlg
# CHECK-NEXT: [2.2] - V3UnitFlg
# CHECK-NEXT: [2.3] - V3UnitFlg
# CHECK-NEXT: [3.0] - V3UnitL12
# CHECK-NEXT: [3.1] - V3UnitL12
# CHECK-NEXT: [4] - V3UnitLS0
# CHECK-NEXT: [5] - V3UnitM0
# CHECK-NEXT: [6] - V3UnitM1
# CHECK-NEXT: [7] - V3UnitS0
# CHECK-NEXT: [8] - V3UnitS1
# CHECK-NEXT: [9] - V3UnitS2
# CHECK-NEXT: [10] - V3UnitS3
# CHECK-NEXT: [11] - V3UnitS4
# CHECK-NEXT: [12] - V3UnitS5
# CHECK-NEXT: [13] - V3UnitST1
# CHECK-NEXT: [14] - V3UnitV0
# CHECK-NEXT: [15] - V3UnitV1
# CHECK-NEXT: [16] - V3UnitV2
# CHECK-NEXT: [17] - V3UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 8.00 - 8.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint32x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint32z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint32z v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint64x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 - 0.50 - frint64z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - 1.00 - frint64z v0.4s, v0.4s

View File

@@ -0,0 +1,64 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3 -instruction-tables < %p/Inputs/i8mm-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.25 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.25 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.25 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.25 usmmla v0.4s, v0.16b, v0.16b
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3UnitB
# CHECK-NEXT: [0.1] - V3UnitB
# CHECK-NEXT: [0.2] - V3UnitB
# CHECK-NEXT: [1.0] - V3UnitD
# CHECK-NEXT: [1.1] - V3UnitD
# CHECK-NEXT: [2.0] - V3UnitFlg
# CHECK-NEXT: [2.1] - V3UnitFlg
# CHECK-NEXT: [2.2] - V3UnitFlg
# CHECK-NEXT: [2.3] - V3UnitFlg
# CHECK-NEXT: [3.0] - V3UnitL12
# CHECK-NEXT: [3.1] - V3UnitL12
# CHECK-NEXT: [4] - V3UnitLS0
# CHECK-NEXT: [5] - V3UnitM0
# CHECK-NEXT: [6] - V3UnitM1
# CHECK-NEXT: [7] - V3UnitS0
# CHECK-NEXT: [8] - V3UnitS1
# CHECK-NEXT: [9] - V3UnitS2
# CHECK-NEXT: [10] - V3UnitS3
# CHECK-NEXT: [11] - V3UnitS4
# CHECK-NEXT: [12] - V3UnitS5
# CHECK-NEXT: [13] - V3UnitST1
# CHECK-NEXT: [14] - V3UnitV0
# CHECK-NEXT: [15] - V3UnitV1
# CHECK-NEXT: [16] - V3UnitV2
# CHECK-NEXT: [17] - V3UnitV3
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.25 2.25 2.25 2.25
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.25 0.25 0.25 0.25 usmmla v0.4s, v0.16b, v0.16b

View File

@@ -0,0 +1,66 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/bf16-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 1.00 bfcvt h0, s0
# CHECK-NEXT: 2 4 2.00 bfcvtn v0.4h, v0.4s
# CHECK-NEXT: 2 4 2.00 bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: 1 2 0.50 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: 1 5 0.50 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: 1 5 0.50 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.50 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.50 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 5 0.50 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: 1 5 0.50 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: 1 6 0.50 bfmmla v0.4s, v0.8h, v0.8h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3AEUnitB
# CHECK-NEXT: [0.1] - V3AEUnitB
# CHECK-NEXT: [0.2] - V3AEUnitB
# CHECK-NEXT: [1.0] - V3AEUnitD
# CHECK-NEXT: [1.1] - V3AEUnitD
# CHECK-NEXT: [2.0] - V3AEUnitFlg
# CHECK-NEXT: [2.1] - V3AEUnitFlg
# CHECK-NEXT: [2.2] - V3AEUnitFlg
# CHECK-NEXT: [2.3] - V3AEUnitFlg
# CHECK-NEXT: [3.0] - V3AEUnitL12
# CHECK-NEXT: [3.1] - V3AEUnitL12
# CHECK-NEXT: [4] - V3AEUnitLS0
# CHECK-NEXT: [5] - V3AEUnitM0
# CHECK-NEXT: [6] - V3AEUnitM1
# CHECK-NEXT: [7] - V3AEUnitS0
# CHECK-NEXT: [8] - V3AEUnitS1
# CHECK-NEXT: [9] - V3AEUnitS2
# CHECK-NEXT: [10] - V3AEUnitS3
# CHECK-NEXT: [11] - V3AEUnitS4
# CHECK-NEXT: [12] - V3AEUnitS5
# CHECK-NEXT: [13] - V3AEUnitST1
# CHECK-NEXT: [14] - V3AEUnitV0
# CHECK-NEXT: [15] - V3AEUnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 9.00 4.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - bfcvt h0, s0
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.00 - bfcvtn v0.4h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.00 - bfcvtn2 v0.8h, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfdot v0.2s, v24.4h, v14.2h[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfdot v0.2s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfdot v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfmlalb v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfmlalb v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfmlalt v0.4s, v0.8h, v0.8h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfmlalt v0.4s, v0.8h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 bfmmla v0.4s, v0.8h, v0.8h

View File

@@ -0,0 +1,52 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/complxnum-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 2 0.50 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 2 0.50 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: 1 4 0.50 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: 1 4 0.50 fcmla v0.4s, v0.4s, v0.s[1], #0
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3AEUnitB
# CHECK-NEXT: [0.1] - V3AEUnitB
# CHECK-NEXT: [0.2] - V3AEUnitB
# CHECK-NEXT: [1.0] - V3AEUnitD
# CHECK-NEXT: [1.1] - V3AEUnitD
# CHECK-NEXT: [2.0] - V3AEUnitFlg
# CHECK-NEXT: [2.1] - V3AEUnitFlg
# CHECK-NEXT: [2.2] - V3AEUnitFlg
# CHECK-NEXT: [2.3] - V3AEUnitFlg
# CHECK-NEXT: [3.0] - V3AEUnitL12
# CHECK-NEXT: [3.1] - V3AEUnitL12
# CHECK-NEXT: [4] - V3AEUnitLS0
# CHECK-NEXT: [5] - V3AEUnitM0
# CHECK-NEXT: [6] - V3AEUnitM1
# CHECK-NEXT: [7] - V3AEUnitS0
# CHECK-NEXT: [8] - V3AEUnitS1
# CHECK-NEXT: [9] - V3AEUnitS2
# CHECK-NEXT: [10] - V3AEUnitS3
# CHECK-NEXT: [11] - V3AEUnitS4
# CHECK-NEXT: [12] - V3AEUnitS5
# CHECK-NEXT: [13] - V3AEUnitST1
# CHECK-NEXT: [14] - V3AEUnitV0
# CHECK-NEXT: [15] - V3AEUnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.00 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcadd v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcadd v0.4s, v0.4s, v0.4s, #270
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcmla v0.2s, v0.2s, v0.2s, #90
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fcmla v0.4s, v0.4s, v0.s[1], #0

View File

@@ -0,0 +1,76 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/fp16fml-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 4 0.50 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.50 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.50 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.50 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.50 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.50 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.50 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.50 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.50 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: 1 4 0.50 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: 1 4 0.50 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: 1 4 0.50 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: 1 4 0.50 fmlsl2 v0.4s, v0.4h, v0.4h
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3AEUnitB
# CHECK-NEXT: [0.1] - V3AEUnitB
# CHECK-NEXT: [0.2] - V3AEUnitB
# CHECK-NEXT: [1.0] - V3AEUnitD
# CHECK-NEXT: [1.1] - V3AEUnitD
# CHECK-NEXT: [2.0] - V3AEUnitFlg
# CHECK-NEXT: [2.1] - V3AEUnitFlg
# CHECK-NEXT: [2.2] - V3AEUnitFlg
# CHECK-NEXT: [2.3] - V3AEUnitFlg
# CHECK-NEXT: [3.0] - V3AEUnitL12
# CHECK-NEXT: [3.1] - V3AEUnitL12
# CHECK-NEXT: [4] - V3AEUnitLS0
# CHECK-NEXT: [5] - V3AEUnitM0
# CHECK-NEXT: [6] - V3AEUnitM1
# CHECK-NEXT: [7] - V3AEUnitS0
# CHECK-NEXT: [8] - V3AEUnitS1
# CHECK-NEXT: [9] - V3AEUnitS2
# CHECK-NEXT: [10] - V3AEUnitS3
# CHECK-NEXT: [11] - V3AEUnitS4
# CHECK-NEXT: [12] - V3AEUnitS5
# CHECK-NEXT: [13] - V3AEUnitST1
# CHECK-NEXT: [14] - V3AEUnitV0
# CHECK-NEXT: [15] - V3AEUnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 8.00 8.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlal2 v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl v0.4s, v0.4h, v0.4h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.2s, v0.2h, v0.h[1]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.4s, v0.4h, v0.h[3]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.2s, v0.2h, v0.2h
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 fmlsl2 v0.4s, v0.4h, v0.4h

View File

@@ -0,0 +1,68 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/fptoint-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 1.00 frint32x v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint32x v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint32x v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint32z v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint32z v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint32z v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint64x v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint64x v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint64x v0.4s, v0.4s
# CHECK-NEXT: 1 3 1.00 frint64z v0.2d, v0.2d
# CHECK-NEXT: 1 3 1.00 frint64z v0.2s, v0.2s
# CHECK-NEXT: 2 4 2.00 frint64z v0.4s, v0.4s
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3AEUnitB
# CHECK-NEXT: [0.1] - V3AEUnitB
# CHECK-NEXT: [0.2] - V3AEUnitB
# CHECK-NEXT: [1.0] - V3AEUnitD
# CHECK-NEXT: [1.1] - V3AEUnitD
# CHECK-NEXT: [2.0] - V3AEUnitFlg
# CHECK-NEXT: [2.1] - V3AEUnitFlg
# CHECK-NEXT: [2.2] - V3AEUnitFlg
# CHECK-NEXT: [2.3] - V3AEUnitFlg
# CHECK-NEXT: [3.0] - V3AEUnitL12
# CHECK-NEXT: [3.1] - V3AEUnitL12
# CHECK-NEXT: [4] - V3AEUnitLS0
# CHECK-NEXT: [5] - V3AEUnitM0
# CHECK-NEXT: [6] - V3AEUnitM1
# CHECK-NEXT: [7] - V3AEUnitS0
# CHECK-NEXT: [8] - V3AEUnitS1
# CHECK-NEXT: [9] - V3AEUnitS2
# CHECK-NEXT: [10] - V3AEUnitS3
# CHECK-NEXT: [11] - V3AEUnitS4
# CHECK-NEXT: [12] - V3AEUnitS5
# CHECK-NEXT: [13] - V3AEUnitST1
# CHECK-NEXT: [14] - V3AEUnitV0
# CHECK-NEXT: [15] - V3AEUnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 16.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint32x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint32x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.00 - frint32x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint32z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint32z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.00 - frint32z v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint64x v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint64x v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.00 - frint64x v0.4s, v0.4s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint64z v0.2d, v0.2d
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 1.00 - frint64z v0.2s, v0.2s
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 2.00 - frint64z v0.4s, v0.4s

View File

@@ -0,0 +1,62 @@
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=aarch64 -mcpu=neoverse-v3ae -instruction-tables < %p/Inputs/i8mm-instructions.s | FileCheck %s
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
# CHECK-NEXT: 1 3 0.50 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: 1 3 0.50 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: 1 3 0.50 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: 1 3 0.50 usmmla v0.4s, v0.16b, v0.16b
# CHECK: Resources:
# CHECK-NEXT: [0.0] - V3AEUnitB
# CHECK-NEXT: [0.1] - V3AEUnitB
# CHECK-NEXT: [0.2] - V3AEUnitB
# CHECK-NEXT: [1.0] - V3AEUnitD
# CHECK-NEXT: [1.1] - V3AEUnitD
# CHECK-NEXT: [2.0] - V3AEUnitFlg
# CHECK-NEXT: [2.1] - V3AEUnitFlg
# CHECK-NEXT: [2.2] - V3AEUnitFlg
# CHECK-NEXT: [2.3] - V3AEUnitFlg
# CHECK-NEXT: [3.0] - V3AEUnitL12
# CHECK-NEXT: [3.1] - V3AEUnitL12
# CHECK-NEXT: [4] - V3AEUnitLS0
# CHECK-NEXT: [5] - V3AEUnitM0
# CHECK-NEXT: [6] - V3AEUnitM1
# CHECK-NEXT: [7] - V3AEUnitS0
# CHECK-NEXT: [8] - V3AEUnitS1
# CHECK-NEXT: [9] - V3AEUnitS2
# CHECK-NEXT: [10] - V3AEUnitS3
# CHECK-NEXT: [11] - V3AEUnitS4
# CHECK-NEXT: [12] - V3AEUnitS5
# CHECK-NEXT: [13] - V3AEUnitST1
# CHECK-NEXT: [14] - V3AEUnitV0
# CHECK-NEXT: [15] - V3AEUnitV1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 4.50 4.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [0.2] [1.0] [1.1] [2.0] [2.1] [2.2] [2.3] [3.0] [3.1] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Instructions:
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 smmla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 sudot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 sudot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 ummla v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 usdot v0.2s, v0.8b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 usdot v0.2s, v0.8b, v0.8b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 usdot v0.4s, v0.16b, v0.16b
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 usdot v0.4s, v0.16b, v0.4b[2]
# CHECK-NEXT: - - - - - - - - - - - - - - - - - - - - - 0.50 0.50 usmmla v0.4s, v0.16b, v0.16b