[llvm] [AArch64] C1-Premium SME defintions (PR #212482)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 29 02:46:27 PDT 2026
================
@@ -0,0 +1,301 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=c1-premium -instruction-tables -mattr=+mca-streaming-sched < %p/../Inputs/streaming-cme-instructions.s 2>&1 | FileCheck %s --check-prefixes=STREAMING
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=c1-premium -instruction-tables < %p/../Inputs/streaming-cme-instructions.s 2>&1 | FileCheck %s --check-prefix=NONSTREAMING
+
+# STREAMING: warning: AArch64 streaming SVE scheduling is enabled via '-mattr=+mca-streaming-sched'; llvm-mca results are approximate.
+
+# NONSTREAMING: Instruction Info:
+# NONSTREAMING-NEXT: [1]: #uOps
+# NONSTREAMING-NEXT: [2]: Latency
+# NONSTREAMING-NEXT: [3]: RThroughput
+# NONSTREAMING-NEXT: [4]: MayLoad
+# NONSTREAMING-NEXT: [5]: MayStore
+# NONSTREAMING-NEXT: [6]: HasSideEffects (U)
+
+# STREAMING: Instruction Info:
+# STREAMING-NEXT: [1]: #uOps
+# STREAMING-NEXT: [2]: Latency
+# STREAMING-NEXT: [3]: RThroughput
+# STREAMING-NEXT: [4]: MayLoad
+# STREAMING-NEXT: [5]: MayStore
+# STREAMING-NEXT: [6]: HasSideEffects (U)
+
+# NONSTREAMING: [1] [2] [3] [4] [5] [6] Instructions:
+# NONSTREAMING-NEXT: 1 2 0.50 fadd s0, s1, s2
+# NONSTREAMING-NEXT: 1 3 0.50 fcvtzs w0, s1
+# NONSTREAMING-NEXT: 1 2 0.50 frintz s0, s1
+# NONSTREAMING-NEXT: 1 3 1.00 scvtf s0, w0
+# NONSTREAMING-NEXT: 1 3 1.00 fmov d0, x0
+# NONSTREAMING-NEXT: 1 4 0.50 fnmadd s0, s1, s2, s3
+# NONSTREAMING-NEXT: 1 6 0.25 * ldr s0, [x0]
+# NONSTREAMING-NEXT: 1 7 0.25 * ldr q0, [x0, x1, lsl #4]
+# NONSTREAMING-NEXT: 1 2 0.50 * str s0, [x0]
+# NONSTREAMING-NEXT: 1 2 0.50 fadd v0.4s, v1.4s, v2.4s
+# NONSTREAMING-NEXT: 1 4 0.50 bfdot v0.4s, v1.8h, v2.8h
+# NONSTREAMING-NEXT: 1 2 0.50 add z0.s, z1.s, z2.s
+# NONSTREAMING-NEXT: 1 4 1.00 andv b0, p7, z31.b
+# NONSTREAMING-NEXT: 1 8 1.00 clastb w0, p0, w0, z2.s
+# NONSTREAMING-NEXT: 1 5 1.00 mov z0.s, p0/m, w0
+# NONSTREAMING-NEXT: 1 3 1.00 mov z0.s, w0
+# NONSTREAMING-NEXT: 1 2 0.50 fmov z0.h, #1.00000000
+# NONSTREAMING-NEXT: 1 2 0.50 ext z0.b, z0.b, z1.b, #1
+# NONSTREAMING-NEXT: 1 2 0.50 tbl z0.b, { z0.b, z1.b }, z2.b
+# NONSTREAMING-NEXT: 1 2 0.50 fadd z0.s, p0/m, z0.s, z1.s
+# NONSTREAMING-NEXT: 1 3 0.50 fmul z0.s, p0/m, z0.s, z1.s
+# NONSTREAMING-NEXT: 1 2 0.50 fmin z0.s, p0/m, z0.s, z1.s
+# NONSTREAMING-NEXT: 1 2 0.50 fmov z0.s, p0/m, #1.00000000
+# NONSTREAMING-NEXT: 1 4 0.50 bfdot z0.s, z1.h, z2.h
+# NONSTREAMING-NEXT: 1 6 0.25 * ld1w { z0.s }, p0/z, [x0]
+# NONSTREAMING-NEXT: 1 8 1.00 * ld2w { z0.s, z1.s }, p0/z, [x0]
+# NONSTREAMING-NEXT: 1 9 0.50 * ld1d { z0.d }, p0/z, [x0, z0.d, uxtw]
+# NONSTREAMING-NEXT: 1 2 0.50 * st1w { z0.s }, p0, [x0]
+# NONSTREAMING-NEXT: 1 4 0.50 * st2w { z0.s, z1.s }, p0, [x0]
+# NONSTREAMING-NEXT: 1 2 0.50 * st1w { z0.s }, p0, [x0, z0.s, uxtw]
+# NONSTREAMING-NEXT: 1 2 0.50 eor3 z0.d, z0.d, z1.d, z2.d
+# NONSTREAMING-NEXT: 1 4 0.50 sabalb z0.s, z1.h, z2.h
+# NONSTREAMING-NEXT: 1 4 0.50 sadalp z0.d, p0/m, z1.s
+# NONSTREAMING-NEXT: 1 4 0.50 ssra z0.d, z1.d, #1
+# NONSTREAMING-NEXT: 1 4 0.50 mla z0.d, p0/m, z1.d, z2.d
+# NONSTREAMING-NEXT: 1 7 1.00 index z0.s, w0, #1
+# NONSTREAMING-NEXT: 1 7 1.00 index z0.s, #0, w0
+# NONSTREAMING-NEXT: 1 7 1.00 index z0.s, w0, w1
+# NONSTREAMING-NEXT: 1 5 1.00 insr z0.s, w0
+# NONSTREAMING-NEXT: 1 5 1.00 lasta d0, p7, z31.d
+# NONSTREAMING-NEXT: 1 4 1.00 faddv d0, p0, z1.d
+# NONSTREAMING-NEXT: 1 4 1.00 fmaxnmv d0, p0, z1.d
+# NONSTREAMING-NEXT: 1 8 1.00 sqcvtn z0.h, { z0.s, z1.s }
+# NONSTREAMING-NEXT: 1 8 2.00 uaddv d0, p7, z31.b
+
+# STREAMING: [1] [2] [3] [4] [5] [6] Instructions:
+# STREAMING-NEXT: 1 4 0.50 fadd s0, s1, s2
+# STREAMING-NEXT: 1 4 0.50 fcvtzs w0, s1
+# STREAMING-NEXT: 1 4 0.50 frintz s0, s1
+# STREAMING-NEXT: 1 4 1.00 scvtf s0, w0
+# STREAMING-NEXT: 1 4 1.00 fmov d0, x0
+# STREAMING-NEXT: 1 4 0.50 fnmadd s0, s1, s2, s3
+# STREAMING-NEXT: 1 2 1.00 * ldr s0, [x0]
+# STREAMING-NEXT: 1 2 1.00 * ldr q0, [x0, x1, lsl #4]
+# STREAMING-NEXT: 1 2 1.00 * str s0, [x0]
+# STREAMING-NEXT: 1 2 0.50 fadd v0.4s, v1.4s, v2.4s
+# STREAMING-NEXT: 1 4 0.50 bfdot v0.4s, v1.8h, v2.8h
+# STREAMING-NEXT: 1 2 0.50 add z0.s, z1.s, z2.s
+# STREAMING-NEXT: 1 16 1.50 andv b0, p7, z31.b
----------------
walkerkd wrote:
Latency should be 12
3.2 SVE Integer instructions / 3-1 SVE integer instructions.,"Reduction, logical"
https://github.com/llvm/llvm-project/pull/212482
More information about the llvm-commits
mailing list