| # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py |
| # RUN: llvm-mca -mtriple=aarch64 -mcpu=ampere1b -instruction-tables < %s | FileCheck %s |
| |
| abs w1, w2 |
| abs x2, x3 |
| cnt w3, w4 |
| cnt x4, x5 |
| ctz w5, w6 |
| ctz x6, x7 |
| smax w7, w8, w9 |
| smax x8, x9, x10 |
| umax w9, w10, w11 |
| umax x10, x11, x12 |
| smin w11, w12, w13 |
| smin w12, w13, w14 |
| umin w13, w14, w15 |
| umin x14, x15, x16 |
| |
| # 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 1 0.25 abs w1, w2 |
| # CHECK-NEXT: 1 1 0.25 abs x2, x3 |
| # CHECK-NEXT: 1 3 1.00 cnt w3, w4 |
| # CHECK-NEXT: 1 3 1.00 cnt x4, x5 |
| # CHECK-NEXT: 1 1 0.50 ctz w5, w6 |
| # CHECK-NEXT: 1 1 0.50 ctz x6, x7 |
| # CHECK-NEXT: 2 1 0.50 smax w7, w8, w9 |
| # CHECK-NEXT: 2 1 0.50 smax x8, x9, x10 |
| # CHECK-NEXT: 2 1 0.50 umax w9, w10, w11 |
| # CHECK-NEXT: 2 1 0.50 umax x10, x11, x12 |
| # CHECK-NEXT: 2 1 0.50 smin w11, w12, w13 |
| # CHECK-NEXT: 2 1 0.50 smin w12, w13, w14 |
| # CHECK-NEXT: 2 1 0.50 umin w13, w14, w15 |
| # CHECK-NEXT: 2 1 0.50 umin x14, x15, x16 |
| |
| # CHECK: Resources: |
| # CHECK-NEXT: [0.0] - Ampere1BUnitA |
| # CHECK-NEXT: [0.1] - Ampere1BUnitA |
| # CHECK-NEXT: [1.0] - Ampere1BUnitB |
| # CHECK-NEXT: [1.1] - Ampere1BUnitB |
| # CHECK-NEXT: [2] - Ampere1BUnitBS |
| # CHECK-NEXT: [3.0] - Ampere1BUnitL |
| # CHECK-NEXT: [3.1] - Ampere1BUnitL |
| # CHECK-NEXT: [4.0] - Ampere1BUnitS |
| # CHECK-NEXT: [4.1] - Ampere1BUnitS |
| # CHECK-NEXT: [5] - Ampere1BUnitX |
| # CHECK-NEXT: [6] - Ampere1BUnitY |
| # CHECK-NEXT: [7] - Ampere1BUnitZ |
| |
| # CHECK: Resource pressure per iteration: |
| # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4.0] [4.1] [5] [6] [7] |
| # CHECK-NEXT: 6.50 6.50 3.50 3.50 2.00 - - - - - - - |
| |
| # CHECK: Resource pressure by instruction: |
| # CHECK-NEXT: [0.0] [0.1] [1.0] [1.1] [2] [3.0] [3.1] [4.0] [4.1] [5] [6] [7] Instructions: |
| # CHECK-NEXT: 0.25 0.25 0.25 0.25 - - - - - - - - abs w1, w2 |
| # CHECK-NEXT: 0.25 0.25 0.25 0.25 - - - - - - - - abs x2, x3 |
| # CHECK-NEXT: - - - - 1.00 - - - - - - - cnt w3, w4 |
| # CHECK-NEXT: - - - - 1.00 - - - - - - - cnt x4, x5 |
| # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - ctz w5, w6 |
| # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - ctz x6, x7 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - smax w7, w8, w9 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - smax x8, x9, x10 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - umax w9, w10, w11 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - umax x10, x11, x12 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - smin w11, w12, w13 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - smin w12, w13, w14 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - umin w13, w14, w15 |
| # CHECK-NEXT: 0.75 0.75 0.25 0.25 - - - - - - - - umin x14, x15, x16 |