[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
+# STREAMING-NEXT:     1      8     1.00                        clastb	w0, p0, w0, z2.s
+# STREAMING-NEXT:     1      5     1.00                        mov	z0.s, p0/m, w0
+# STREAMING-NEXT:     1      4     1.00                        mov	z0.s, w0
+# STREAMING-NEXT:     1      1     0.50                        fmov	z0.h, #1.00000000
+# STREAMING-NEXT:     1      4     0.50                        ext	z0.b, z0.b, z1.b, #1
+# STREAMING-NEXT:     1      4     1.00                        tbl	z0.b, { z0.b, z1.b }, z2.b
+# STREAMING-NEXT:     1      2     0.50                        fadd	z0.s, p0/m, z0.s, z1.s
+# STREAMING-NEXT:     1      4     0.50                        fmul	z0.s, p0/m, z0.s, z1.s
+# STREAMING-NEXT:     1      4     0.50                        fmin	z0.s, p0/m, z0.s, z1.s
+# STREAMING-NEXT:     1      1     0.50                        fmov	z0.s, p0/m, #1.00000000
+# STREAMING-NEXT:     1      4     0.50                        bfdot	z0.s, z1.h, z2.h
+# STREAMING-NEXT:     1      2     1.00    *                   ld1w	{ z0.s }, p0/z, [x0]
+# STREAMING-NEXT:     1      2     1.00    *                   ld2w	{ z0.s, z1.s }, p0/z, [x0]
+# STREAMING-NEXT:     1      9     0.50    *                   ld1d	{ z0.d }, p0/z, [x0, z0.d, uxtw]
+# STREAMING-NEXT:     1      2     1.00           *            st1w	{ z0.s }, p0, [x0]
+# STREAMING-NEXT:     1      2     1.00           *            st2w	{ z0.s, z1.s }, p0, [x0]
+# STREAMING-NEXT:     1      2     0.50           *            st1w	{ z0.s }, p0, [x0, z0.s, uxtw]
+# STREAMING-NEXT:     1      2     0.50                        eor3	z0.d, z0.d, z1.d, z2.d
+# STREAMING-NEXT:     1      4     0.50                        sabalb	z0.s, z1.h, z2.h
+# STREAMING-NEXT:     1      4     0.50                        sadalp	z0.d, p0/m, z1.s
----------------
walkerkd wrote:

rthroughput should be 1
Latency should be 8
Pipeline should be VXALU

3.2 SVE Integer instructions / 3-1 SVE integer instructions.,"Arithmetic, pairwise add and accum long"

https://github.com/llvm/llvm-project/pull/212482


More information about the llvm-commits mailing list