[llvm] [AArch64] Add C1-Premium scheduling model (PR #185398)
Asher Dobrescu via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 31 08:28:52 PDT 2026
================
@@ -0,0 +1,6873 @@
+# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
+# RUN: llvm-mca -mtriple=aarch64 -mcpu=c1-premium -mattr=+sve2-aes,+sve2-sha3,+sve2-sm4 -instruction-tables < %p/../Inputs/sve-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 abs z0.b, p0/m, z0.b
+# CHECK-NEXT: 1 2 0.50 abs z0.d, p0/m, z0.d
+# CHECK-NEXT: 1 2 0.50 abs z0.h, p0/m, z0.h
+# CHECK-NEXT: 1 2 0.50 abs z0.s, p0/m, z0.s
+# CHECK-NEXT: 1 2 0.50 abs z31.b, p7/m, z31.b
+# CHECK-NEXT: 1 2 0.50 abs z31.d, p7/m, z31.d
+# CHECK-NEXT: 1 2 0.50 abs z31.h, p7/m, z31.h
+# CHECK-NEXT: 1 2 0.50 abs z31.s, p7/m, z31.s
+# CHECK-NEXT: 1 2 0.50 adclb z0.d, z1.d, z31.d
+# CHECK-NEXT: 1 2 0.50 adclb z0.s, z1.s, z31.s
+# CHECK-NEXT: 1 2 0.50 adclt z0.d, z1.d, z31.d
+# CHECK-NEXT: 1 2 0.50 adclt z0.s, z1.s, z31.s
+# CHECK-NEXT: 1 2 0.50 add z0.b, p0/m, z0.b, z0.b
+# CHECK-NEXT: 1 2 0.50 add z0.b, z0.b, #0
+# CHECK-NEXT: 1 2 0.50 add z0.b, z0.b, z0.b
+# CHECK-NEXT: 1 2 0.50 add z0.d, p0/m, z0.d, z0.d
+# CHECK-NEXT: 1 2 0.50 add z0.d, z0.d, #0
+# CHECK-NEXT: 1 2 0.50 add z0.d, z0.d, #0, lsl #8
+# CHECK-NEXT: 1 2 0.50 add z0.d, z0.d, z0.d
+# CHECK-NEXT: 1 2 0.50 add z0.h, p0/m, z0.h, z0.h
+# CHECK-NEXT: 1 2 0.50 add z0.h, z0.h, #0
+# CHECK-NEXT: 1 2 0.50 add z0.h, z0.h, #0, lsl #8
+# CHECK-NEXT: 1 2 0.50 add z0.h, z0.h, z0.h
+# CHECK-NEXT: 1 2 0.50 add z0.s, p0/m, z0.s, z0.s
+# CHECK-NEXT: 1 2 0.50 add z0.s, z0.s, #0
+# CHECK-NEXT: 1 2 0.50 add z0.s, z0.s, #0, lsl #8
+# CHECK-NEXT: 1 2 0.50 add z0.s, z0.s, z0.s
+# CHECK-NEXT: 1 2 0.50 add z0.s, z1.s, z2.s
+# CHECK-NEXT: 1 2 0.50 add z21.b, p5/m, z21.b, z10.b
+# CHECK-NEXT: 1 2 0.50 add z21.b, z10.b, z21.b
+# CHECK-NEXT: 1 2 0.50 add z21.d, p5/m, z21.d, z10.d
+# CHECK-NEXT: 1 2 0.50 add z21.d, z10.d, z21.d
+# CHECK-NEXT: 1 2 0.50 add z21.h, p5/m, z21.h, z10.h
+# CHECK-NEXT: 1 2 0.50 add z21.h, z10.h, z21.h
+# CHECK-NEXT: 1 2 0.50 add z21.s, p5/m, z21.s, z10.s
+# CHECK-NEXT: 1 2 0.50 add z21.s, z10.s, z21.s
+# CHECK-NEXT: 1 2 0.50 add z23.b, p3/m, z23.b, z13.b
+# CHECK-NEXT: 1 2 0.50 add z23.b, z13.b, z8.b
+# CHECK-NEXT: 1 2 0.50 add z23.d, p3/m, z23.d, z13.d
+# CHECK-NEXT: 1 2 0.50 add z23.d, z13.d, z8.d
+# CHECK-NEXT: 1 2 0.50 add z23.h, p3/m, z23.h, z13.h
+# CHECK-NEXT: 1 2 0.50 add z23.h, z13.h, z8.h
+# CHECK-NEXT: 1 2 0.50 add z23.s, p3/m, z23.s, z13.s
+# CHECK-NEXT: 1 2 0.50 add z23.s, z13.s, z8.s
+# CHECK-NEXT: 1 2 0.50 add z31.b, p7/m, z31.b, z31.b
+# CHECK-NEXT: 1 2 0.50 add z31.b, z31.b, #255
+# CHECK-NEXT: 1 2 0.50 add z31.b, z31.b, z31.b
+# CHECK-NEXT: 1 2 0.50 add z31.d, p7/m, z31.d, z31.d
+# CHECK-NEXT: 1 2 0.50 add z31.d, z31.d, #65280
+# CHECK-NEXT: 1 2 0.50 add z31.d, z31.d, z31.d
+# CHECK-NEXT: 1 2 0.50 add z31.h, p7/m, z31.h, z31.h
+# CHECK-NEXT: 1 2 0.50 add z31.h, z31.h, #65280
+# CHECK-NEXT: 1 2 0.50 add z31.h, z31.h, z31.h
+# CHECK-NEXT: 1 2 0.50 add z31.s, p7/m, z31.s, z31.s
+# CHECK-NEXT: 1 2 0.50 add z31.s, z31.s, #65280
+# CHECK-NEXT: 1 2 0.50 add z31.s, z31.s, z31.s
+# CHECK-NEXT: 1 2 0.50 addhnb z0.b, z1.h, z31.h
+# CHECK-NEXT: 1 2 0.50 addhnb z0.h, z1.s, z31.s
+# CHECK-NEXT: 1 2 0.50 addhnb z0.s, z1.d, z31.d
+# CHECK-NEXT: 1 2 0.50 addhnt z0.b, z1.h, z31.h
+# CHECK-NEXT: 1 2 0.50 addhnt z0.h, z1.s, z31.s
+# CHECK-NEXT: 1 2 0.50 addhnt z0.s, z1.d, z31.d
+# CHECK-NEXT: 1 2 0.50 addp z0.b, p0/m, z0.b, z1.b
+# CHECK-NEXT: 1 2 0.50 addp z0.h, p0/m, z0.h, z1.h
+# CHECK-NEXT: 1 2 0.50 addp z29.s, p7/m, z29.s, z30.s
+# CHECK-NEXT: 1 2 0.50 addp z31.d, p7/m, z31.d, z30.d
+# CHECK-NEXT: 1 1 0.13 addpl sp, sp, #31
+# CHECK-NEXT: 1 1 0.13 addpl x0, x0, #-32
+# CHECK-NEXT: 1 1 0.13 addpl x21, x21, #0
+# CHECK-NEXT: 1 1 0.13 addpl x23, x8, #-1
+# CHECK-NEXT: 1 1 0.13 addvl sp, sp, #31
+# CHECK-NEXT: 1 1 0.13 addvl x0, x0, #-32
+# CHECK-NEXT: 1 1 0.13 addvl x21, x21, #0
+# CHECK-NEXT: 1 1 0.13 addvl x23, x8, #-1
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, lsl #1]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, lsl #2]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, lsl #3]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, sxtw #1]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, sxtw #2]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, sxtw #3]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, sxtw]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, uxtw #1]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, uxtw #2]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, uxtw #3]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d, uxtw]
+# CHECK-NEXT: 1 2 0.50 adr z0.d, [z0.d, z0.d]
+# CHECK-NEXT: 1 2 0.50 adr z0.s, [z0.s, z0.s, lsl #1]
+# CHECK-NEXT: 1 2 0.50 adr z0.s, [z0.s, z0.s, lsl #2]
+# CHECK-NEXT: 1 2 0.50 adr z0.s, [z0.s, z0.s, lsl #3]
+# CHECK-NEXT: 1 2 0.50 adr z0.s, [z0.s, z0.s]
+# CHECK-NEXT: 1 2 0.50 aesd z0.b, z0.b, z31.b
+# CHECK-NEXT: 1 2 0.50 aese z0.b, z0.b, z31.b
+# CHECK-NEXT: 1 2 0.50 aesimc z0.b, z0.b
+# CHECK-NEXT: 1 2 0.50 aesimc z31.b, z31.b
+# CHECK-NEXT: 1 2 0.50 aesmc z0.b, z0.b
+# CHECK-NEXT: 1 2 0.50 aesmc z31.b, z31.b
+# CHECK-NEXT: 1 2 0.50 and p0.b, p0/z, p0.b, p1.b
+# CHECK-NEXT: 1 2 0.50 and z0.d, z0.d, #0x6
+# CHECK-NEXT: 1 2 0.50 and z0.d, z0.d, #0xfffffffffffffff9
+# CHECK-NEXT: 1 2 0.50 and z0.d, z0.d, z0.d
+# CHECK-NEXT: 1 2 0.50 and z0.s, z0.s, #0x6
+# CHECK-NEXT: 1 2 0.50 and z0.s, z0.s, #0xfffffff9
+# CHECK-NEXT: 1 2 0.50 and z23.d, z13.d, z8.d
+# CHECK-NEXT: 1 2 0.50 and z23.h, z23.h, #0x6
+# CHECK-NEXT: 1 2 0.50 and z23.h, z23.h, #0xfff9
+# CHECK-NEXT: 1 2 0.50 and z31.b, p7/m, z31.b, z31.b
+# CHECK-NEXT: 1 2 0.50 and z31.d, p7/m, z31.d, z31.d
+# CHECK-NEXT: 1 2 0.50 and z31.h, p7/m, z31.h, z31.h
+# CHECK-NEXT: 1 2 0.50 and z31.s, p7/m, z31.s, z31.s
+# CHECK-NEXT: 1 2 0.50 and z5.b, z5.b, #0x6
+# CHECK-NEXT: 1 2 0.50 and z5.b, z5.b, #0xf9
+# CHECK-NEXT: 1 2 0.50 ands p0.b, p0/z, p0.b, p1.b
+# CHECK-NEXT: 1 4 1.00 andv b0, p7, z31.b
+# CHECK-NEXT: 1 4 1.00 andv d0, p7, z31.d
+# CHECK-NEXT: 1 4 1.00 andv h0, p7, z31.h
+# CHECK-NEXT: 1 4 1.00 andv s0, p7, z31.s
+# CHECK-NEXT: 1 2 0.50 asr z0.b, p0/m, z0.b, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.b, p0/m, z0.b, z0.b
+# CHECK-NEXT: 1 2 0.50 asr z0.b, p0/m, z0.b, z1.d
+# CHECK-NEXT: 1 2 0.50 asr z0.b, z0.b, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.b, z1.b, z2.d
+# CHECK-NEXT: 1 2 0.50 asr z0.d, p0/m, z0.d, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.d, p0/m, z0.d, z0.d
+# CHECK-NEXT: 1 2 0.50 asr z0.d, z0.d, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.h, p0/m, z0.h, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.h, p0/m, z0.h, z0.h
+# CHECK-NEXT: 1 2 0.50 asr z0.h, p0/m, z0.h, z1.d
+# CHECK-NEXT: 1 2 0.50 asr z0.h, z0.h, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.h, z1.h, z2.d
+# CHECK-NEXT: 1 2 0.50 asr z0.s, p0/m, z0.s, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.s, p0/m, z0.s, z0.s
+# CHECK-NEXT: 1 2 0.50 asr z0.s, p0/m, z0.s, z1.d
+# CHECK-NEXT: 1 2 0.50 asr z0.s, z0.s, #1
+# CHECK-NEXT: 1 2 0.50 asr z0.s, z1.s, z2.d
+# CHECK-NEXT: 1 2 0.50 asr z31.b, p0/m, z31.b, #8
+# CHECK-NEXT: 1 2 0.50 asr z31.b, z31.b, #8
+# CHECK-NEXT: 1 2 0.50 asr z31.d, p0/m, z31.d, #64
+# CHECK-NEXT: 1 2 0.50 asr z31.d, z31.d, #64
+# CHECK-NEXT: 1 2 0.50 asr z31.h, p0/m, z31.h, #16
+# CHECK-NEXT: 1 2 0.50 asr z31.h, z31.h, #16
+# CHECK-NEXT: 1 2 0.50 asr z31.s, p0/m, z31.s, #32
+# CHECK-NEXT: 1 2 0.50 asr z31.s, z31.s, #32
+# CHECK-NEXT: 1 4 0.50 asrd z0.b, p0/m, z0.b, #1
+# CHECK-NEXT: 1 4 0.50 asrd z0.d, p0/m, z0.d, #1
+# CHECK-NEXT: 1 4 0.50 asrd z0.h, p0/m, z0.h, #1
+# CHECK-NEXT: 1 4 0.50 asrd z0.s, p0/m, z0.s, #1
+# CHECK-NEXT: 1 4 0.50 asrd z31.b, p0/m, z31.b, #8
+# CHECK-NEXT: 1 4 0.50 asrd z31.d, p0/m, z31.d, #64
+# CHECK-NEXT: 1 4 0.50 asrd z31.h, p0/m, z31.h, #16
+# CHECK-NEXT: 1 4 0.50 asrd z31.s, p0/m, z31.s, #32
+# CHECK-NEXT: 1 2 0.50 asrr z0.b, p0/m, z0.b, z0.b
+# CHECK-NEXT: 1 2 0.50 asrr z0.d, p0/m, z0.d, z0.d
+# CHECK-NEXT: 1 2 0.50 asrr z0.h, p0/m, z0.h, z0.h
+# CHECK-NEXT: 1 2 0.50 asrr z0.s, p0/m, z0.s, z0.s
+# CHECK-NEXT: 1 2 0.50 bcax z29.d, z29.d, z30.d, z31.d
+# CHECK-NEXT: 2 6 2.00 bdep z0.b, z1.b, z31.b
+# CHECK-NEXT: 2 6 2.00 bdep z0.d, z1.d, z31.d
+# CHECK-NEXT: 2 6 2.00 bdep z0.h, z1.h, z31.h
+# CHECK-NEXT: 2 6 2.00 bdep z0.s, z1.s, z31.s
+# CHECK-NEXT: 2 6 2.00 bext z0.b, z1.b, z31.b
+# CHECK-NEXT: 2 6 2.00 bext z0.d, z1.d, z31.d
+# CHECK-NEXT: 2 6 2.00 bext z0.h, z1.h, z31.h
+# CHECK-NEXT: 2 6 2.00 bext z0.s, z1.s, z31.s
+# CHECK-NEXT: 1 3 0.50 bfcvt z0.h, p0/m, z1.s
+# CHECK-NEXT: 1 3 0.50 bfcvtnt z0.h, p0/m, z1.s
+# CHECK-NEXT: 1 4 0.50 bfdot z0.s, z1.h, z2.h
+# CHECK-NEXT: 1 4 0.50 bfdot z0.s, z1.h, z2.h[0]
+# CHECK-NEXT: 1 4 0.50 bfdot z0.s, z1.h, z2.h[3]
+# CHECK-NEXT: 1 5 0.50 bfmlalb z0.s, z1.h, z2.h
+# CHECK-NEXT: 1 5 0.50 bfmlalb z0.s, z1.h, z2.h[0]
+# CHECK-NEXT: 1 5 0.50 bfmlalb z0.s, z1.h, z2.h[7]
+# CHECK-NEXT: 1 5 0.50 bfmlalb z10.s, z21.h, z14.h
+# CHECK-NEXT: 1 5 0.50 bfmlalb z21.s, z14.h, z3.h[2]
+# CHECK-NEXT: 1 5 0.50 bfmlalt z0.s, z1.h, z2.h
+# CHECK-NEXT: 1 5 0.50 bfmlalt z0.s, z1.h, z2.h[0]
+# CHECK-NEXT: 1 5 0.50 bfmlalt z0.s, z1.h, z2.h[7]
+# CHECK-NEXT: 1 5 0.50 bfmlalt z0.s, z1.h, z7.h[7]
+# CHECK-NEXT: 1 5 0.50 bfmlalt z14.s, z10.h, z21.h
+# CHECK-NEXT: 1 5 0.50 bfmmla z0.s, z1.h, z2.h
+# CHECK-NEXT: 2 6 2.00 bgrp z0.b, z1.b, z31.b
+# CHECK-NEXT: 2 6 2.00 bgrp z0.d, z1.d, z31.d
+# CHECK-NEXT: 2 6 2.00 bgrp z0.h, z1.h, z31.h
+# CHECK-NEXT: 2 6 2.00 bgrp z0.s, z1.s, z31.s
+# CHECK-NEXT: 1 2 0.50 bic p0.b, p0/z, p0.b, p0.b
+# CHECK-NEXT: 1 2 0.50 bic p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 2 0.50 bic z0.d, z0.d, z0.d
+# CHECK-NEXT: 1 2 0.50 bic z23.d, z13.d, z8.d
+# CHECK-NEXT: 1 2 0.50 bic z31.b, p7/m, z31.b, z31.b
+# CHECK-NEXT: 1 2 0.50 bic z31.d, p7/m, z31.d, z31.d
+# CHECK-NEXT: 1 2 0.50 bic z31.h, p7/m, z31.h, z31.h
+# CHECK-NEXT: 1 2 0.50 bic z31.s, p7/m, z31.s, z31.s
+# CHECK-NEXT: 1 2 0.50 bics p0.b, p0/z, p0.b, p0.b
+# CHECK-NEXT: 1 2 0.50 bics p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 1 0.50 brka p0.b, p15/m, p15.b
+# CHECK-NEXT: 1 1 0.50 brka p0.b, p15/z, p15.b
+# CHECK-NEXT: 1 1 0.50 brkas p0.b, p15/z, p15.b
+# CHECK-NEXT: 1 1 0.50 brkb p0.b, p15/m, p15.b
+# CHECK-NEXT: 1 1 0.50 brkb p0.b, p15/z, p15.b
+# CHECK-NEXT: 1 1 0.50 brkbs p0.b, p15/z, p15.b
+# CHECK-NEXT: 1 2 0.50 brkn p0.b, p15/z, p1.b, p0.b
+# CHECK-NEXT: 1 2 0.50 brkn p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 2 0.50 brkns p0.b, p15/z, p1.b, p0.b
+# CHECK-NEXT: 1 2 0.50 brkns p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 2 0.50 brkpa p0.b, p15/z, p1.b, p2.b
+# CHECK-NEXT: 1 2 0.50 brkpa p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 2 0.50 brkpas p0.b, p15/z, p1.b, p2.b
+# CHECK-NEXT: 1 2 0.50 brkpas p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 2 0.50 brkpb p0.b, p15/z, p1.b, p2.b
+# CHECK-NEXT: 1 2 0.50 brkpb p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 2 0.50 brkpbs p0.b, p15/z, p1.b, p2.b
+# CHECK-NEXT: 1 2 0.50 brkpbs p15.b, p15/z, p15.b, p15.b
+# CHECK-NEXT: 1 2 0.50 bsl z0.d, z0.d, z1.d, z2.d
+# CHECK-NEXT: 1 2 0.50 bsl1n z0.d, z0.d, z1.d, z2.d
+# CHECK-NEXT: 1 2 0.50 bsl2n z0.d, z0.d, z1.d, z2.d
+# CHECK-NEXT: 1 2 0.50 cadd z0.b, z0.b, z0.b, #90
+# CHECK-NEXT: 1 2 0.50 cadd z0.d, z0.d, z0.d, #90
+# CHECK-NEXT: 1 2 0.50 cadd z0.h, z0.h, z0.h, #90
+# CHECK-NEXT: 1 2 0.50 cadd z0.s, z0.s, z0.s, #90
+# CHECK-NEXT: 1 2 0.50 cadd z31.b, z31.b, z31.b, #270
+# CHECK-NEXT: 1 2 0.50 cadd z31.d, z31.d, z31.d, #270
+# CHECK-NEXT: 1 2 0.50 cadd z31.h, z31.h, z31.h, #270
+# CHECK-NEXT: 1 2 0.50 cadd z31.s, z31.s, z31.s, #270
+# CHECK-NEXT: 1 3 0.50 cdot z0.d, z1.h, z15.h[1], #0
+# CHECK-NEXT: 1 3 0.50 cdot z0.d, z1.h, z31.h, #0
+# CHECK-NEXT: 1 3 0.50 cdot z0.d, z1.h, z31.h, #180
+# CHECK-NEXT: 1 3 0.50 cdot z0.d, z1.h, z31.h, #270
+# CHECK-NEXT: 1 3 0.50 cdot z0.d, z1.h, z31.h, #90
+# CHECK-NEXT: 1 3 0.50 cdot z0.s, z1.b, z31.b, #0
+# CHECK-NEXT: 1 3 0.50 cdot z0.s, z1.b, z7.b[3], #0
+# CHECK-NEXT: 1 3 0.50 cdot z29.d, z30.h, z0.h[0], #180
+# CHECK-NEXT: 1 3 0.50 cdot z31.d, z30.h, z7.h[1], #270
+# CHECK-NEXT: 1 3 0.50 cdot z5.d, z6.h, z3.h[0], #90
+# CHECK-NEXT: 1 3 1.00 clasta b0, p7, b0, z31.b
+# CHECK-NEXT: 1 3 1.00 clasta d0, p7, d0, z31.d
+# CHECK-NEXT: 1 3 1.00 clasta h0, p7, h0, z31.h
+# CHECK-NEXT: 1 3 1.00 clasta s0, p7, s0, z31.s
+# CHECK-NEXT: 1 8 1.00 clasta w0, p7, w0, z31.b
+# CHECK-NEXT: 1 8 1.00 clasta w0, p7, w0, z31.h
+# CHECK-NEXT: 1 8 1.00 clasta w0, p7, w0, z31.s
+# CHECK-NEXT: 1 8 1.00 clasta x0, p7, x0, z31.d
+# CHECK-NEXT: 1 3 1.00 clasta z0.b, p7, z0.b, z31.b
+# CHECK-NEXT: 1 3 1.00 clasta z0.d, p7, z0.d, z31.d
+# CHECK-NEXT: 1 3 1.00 clasta z0.h, p7, z0.h, z31.h
+# CHECK-NEXT: 1 3 1.00 clasta z0.s, p7, z0.s, z31.s
+# CHECK-NEXT: 1 3 1.00 clastb b0, p7, b0, z31.b
+# CHECK-NEXT: 1 3 1.00 clastb d0, p7, d0, z31.d
+# CHECK-NEXT: 1 3 1.00 clastb h0, p7, h0, z31.h
+# CHECK-NEXT: 1 3 1.00 clastb s0, p7, s0, z31.s
+# CHECK-NEXT: 1 8 1.00 clastb w0, p7, w0, z31.b
+# CHECK-NEXT: 1 8 1.00 clastb w0, p7, w0, z31.h
+# CHECK-NEXT: 1 8 1.00 clastb w0, p7, w0, z31.s
+# CHECK-NEXT: 1 8 1.00 clastb x0, p7, x0, z31.d
+# CHECK-NEXT: 1 3 1.00 clastb z0.b, p7, z0.b, z31.b
+# CHECK-NEXT: 1 3 1.00 clastb z0.d, p7, z0.d, z31.d
+# CHECK-NEXT: 1 3 1.00 clastb z0.h, p7, z0.h, z31.h
+# CHECK-NEXT: 1 3 1.00 clastb z0.s, p7, z0.s, z31.s
+# CHECK-NEXT: 1 2 0.50 cls z31.b, p7/m, z31.b
+# CHECK-NEXT: 1 2 0.50 cls z31.d, p7/m, z31.d
+# CHECK-NEXT: 1 2 0.50 cls z31.h, p7/m, z31.h
+# CHECK-NEXT: 1 2 0.50 cls z31.s, p7/m, z31.s
+# CHECK-NEXT: 1 2 0.50 clz z31.b, p7/m, z31.b
+# CHECK-NEXT: 1 2 0.50 clz z31.d, p7/m, z31.d
+# CHECK-NEXT: 1 2 0.50 clz z31.h, p7/m, z31.h
+# CHECK-NEXT: 1 2 0.50 clz z31.s, p7/m, z31.s
+# CHECK-NEXT: 1 4 0.50 cmla z0.b, z1.b, z2.b, #0
+# CHECK-NEXT: 1 4 0.50 cmla z0.d, z1.d, z2.d, #0
+# CHECK-NEXT: 1 4 0.50 cmla z0.h, z1.h, z2.h, #0
+# CHECK-NEXT: 1 4 0.50 cmla z0.h, z1.h, z2.h[0], #0
+# CHECK-NEXT: 1 4 0.50 cmla z0.s, z1.s, z2.s, #0
+# CHECK-NEXT: 1 4 0.50 cmla z0.s, z1.s, z2.s[0], #0
+# CHECK-NEXT: 1 4 0.50 cmla z15.b, z16.b, z17.b, #270
+# CHECK-NEXT: 1 4 0.50 cmla z15.d, z16.d, z17.d, #270
+# CHECK-NEXT: 1 4 0.50 cmla z15.h, z16.h, z17.h, #270
+# CHECK-NEXT: 1 4 0.50 cmla z15.s, z16.s, z17.s, #270
+# CHECK-NEXT: 1 4 0.50 cmla z29.b, z30.b, z31.b, #90
+# CHECK-NEXT: 1 4 0.50 cmla z29.d, z30.d, z31.d, #90
+# CHECK-NEXT: 1 4 0.50 cmla z29.h, z30.h, z31.h, #90
+# CHECK-NEXT: 1 4 0.50 cmla z29.s, z30.s, z31.s, #90
+# CHECK-NEXT: 1 4 0.50 cmla z31.b, z31.b, z31.b, #180
+# CHECK-NEXT: 1 4 0.50 cmla z31.d, z31.d, z31.d, #180
+# CHECK-NEXT: 1 4 0.50 cmla z31.h, z30.h, z7.h[0], #180
+# CHECK-NEXT: 1 4 0.50 cmla z31.h, z31.h, z31.h, #180
+# CHECK-NEXT: 1 4 0.50 cmla z31.s, z30.s, z7.s[0], #180
+# CHECK-NEXT: 1 4 0.50 cmla z31.s, z31.s, z31.s, #180
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.b, p0/z, z0.b, #-16
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.b, p0/z, z0.b, #15
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.b, p0/z, z0.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.d, p0/z, z0.d, #-16
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.d, p0/z, z0.d, #15
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.d, p0/z, z0.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.h, p0/z, z0.h, #-16
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.h, p0/z, z0.h, #15
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.h, p0/z, z0.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.s, p0/z, z0.s, #-16
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.s, p0/z, z0.s, #15
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpeq p0.s, p0/z, z0.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmpge p0.b, p0/z, z0.b, #-16
+# CHECK-NEXT: 1 3 1.00 cmpge p0.b, p0/z, z0.b, #15
+# CHECK-NEXT: 1 3 1.00 cmpge p0.b, p0/z, z0.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmpge p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpge p0.b, p0/z, z1.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmpge p0.d, p0/z, z0.d, #-16
+# CHECK-NEXT: 1 3 1.00 cmpge p0.d, p0/z, z0.d, #15
+# CHECK-NEXT: 1 3 1.00 cmpge p0.d, p0/z, z0.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpge p0.d, p0/z, z1.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpge p0.h, p0/z, z0.h, #-16
+# CHECK-NEXT: 1 3 1.00 cmpge p0.h, p0/z, z0.h, #15
+# CHECK-NEXT: 1 3 1.00 cmpge p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpge p0.h, p0/z, z0.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmpge p0.h, p0/z, z1.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmpge p0.s, p0/z, z0.s, #-16
+# CHECK-NEXT: 1 3 1.00 cmpge p0.s, p0/z, z0.s, #15
+# CHECK-NEXT: 1 3 1.00 cmpge p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpge p0.s, p0/z, z0.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmpge p0.s, p0/z, z1.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.b, p0/z, z0.b, #-16
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.b, p0/z, z0.b, #15
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.b, p0/z, z0.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.b, p0/z, z1.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.d, p0/z, z0.d, #-16
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.d, p0/z, z0.d, #15
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.d, p0/z, z0.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.d, p0/z, z1.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.h, p0/z, z0.h, #-16
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.h, p0/z, z0.h, #15
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.h, p0/z, z0.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.h, p0/z, z1.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.s, p0/z, z0.s, #-16
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.s, p0/z, z0.s, #15
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.s, p0/z, z0.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmpgt p0.s, p0/z, z1.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmphi p0.b, p0/z, z0.b, #0
+# CHECK-NEXT: 1 3 1.00 cmphi p0.b, p0/z, z0.b, #127
+# CHECK-NEXT: 1 3 1.00 cmphi p0.b, p0/z, z0.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmphi p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphi p0.b, p0/z, z1.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmphi p0.d, p0/z, z0.d, #0
+# CHECK-NEXT: 1 3 1.00 cmphi p0.d, p0/z, z0.d, #127
+# CHECK-NEXT: 1 3 1.00 cmphi p0.d, p0/z, z0.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphi p0.d, p0/z, z1.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphi p0.h, p0/z, z0.h, #0
+# CHECK-NEXT: 1 3 1.00 cmphi p0.h, p0/z, z0.h, #127
+# CHECK-NEXT: 1 3 1.00 cmphi p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphi p0.h, p0/z, z0.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmphi p0.h, p0/z, z1.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmphi p0.s, p0/z, z0.s, #0
+# CHECK-NEXT: 1 3 1.00 cmphi p0.s, p0/z, z0.s, #127
+# CHECK-NEXT: 1 3 1.00 cmphi p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphi p0.s, p0/z, z0.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmphi p0.s, p0/z, z1.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmphs p0.b, p0/z, z0.b, #0
+# CHECK-NEXT: 1 3 1.00 cmphs p0.b, p0/z, z0.b, #127
+# CHECK-NEXT: 1 3 1.00 cmphs p0.b, p0/z, z0.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmphs p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphs p0.b, p0/z, z1.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmphs p0.d, p0/z, z0.d, #0
+# CHECK-NEXT: 1 3 1.00 cmphs p0.d, p0/z, z0.d, #127
+# CHECK-NEXT: 1 3 1.00 cmphs p0.d, p0/z, z0.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphs p0.d, p0/z, z1.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphs p0.h, p0/z, z0.h, #0
+# CHECK-NEXT: 1 3 1.00 cmphs p0.h, p0/z, z0.h, #127
+# CHECK-NEXT: 1 3 1.00 cmphs p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphs p0.h, p0/z, z0.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmphs p0.h, p0/z, z1.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmphs p0.s, p0/z, z0.s, #0
+# CHECK-NEXT: 1 3 1.00 cmphs p0.s, p0/z, z0.s, #127
+# CHECK-NEXT: 1 3 1.00 cmphs p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmphs p0.s, p0/z, z0.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmphs p0.s, p0/z, z1.s, z0.s
+# CHECK-NEXT: 1 3 1.00 cmple p0.b, p0/z, z0.b, #-16
+# CHECK-NEXT: 1 3 1.00 cmple p0.b, p0/z, z0.b, #15
+# CHECK-NEXT: 1 3 1.00 cmple p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmple p0.d, p0/z, z0.d, #-16
+# CHECK-NEXT: 1 3 1.00 cmple p0.d, p0/z, z0.d, #15
+# CHECK-NEXT: 1 3 1.00 cmple p0.h, p0/z, z0.h, #-16
+# CHECK-NEXT: 1 3 1.00 cmple p0.h, p0/z, z0.h, #15
+# CHECK-NEXT: 1 3 1.00 cmple p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmple p0.s, p0/z, z0.s, #-16
+# CHECK-NEXT: 1 3 1.00 cmple p0.s, p0/z, z0.s, #15
+# CHECK-NEXT: 1 3 1.00 cmple p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmplo p0.b, p0/z, z0.b, #0
+# CHECK-NEXT: 1 3 1.00 cmplo p0.b, p0/z, z0.b, #127
+# CHECK-NEXT: 1 3 1.00 cmplo p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmplo p0.d, p0/z, z0.d, #0
+# CHECK-NEXT: 1 3 1.00 cmplo p0.d, p0/z, z0.d, #127
+# CHECK-NEXT: 1 3 1.00 cmplo p0.h, p0/z, z0.h, #0
+# CHECK-NEXT: 1 3 1.00 cmplo p0.h, p0/z, z0.h, #127
+# CHECK-NEXT: 1 3 1.00 cmplo p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmplo p0.s, p0/z, z0.s, #0
+# CHECK-NEXT: 1 3 1.00 cmplo p0.s, p0/z, z0.s, #127
+# CHECK-NEXT: 1 3 1.00 cmplo p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpls p0.b, p0/z, z0.b, #0
+# CHECK-NEXT: 1 3 1.00 cmpls p0.b, p0/z, z0.b, #127
+# CHECK-NEXT: 1 3 1.00 cmpls p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpls p0.d, p0/z, z0.d, #0
+# CHECK-NEXT: 1 3 1.00 cmpls p0.d, p0/z, z0.d, #127
+# CHECK-NEXT: 1 3 1.00 cmpls p0.h, p0/z, z0.h, #0
+# CHECK-NEXT: 1 3 1.00 cmpls p0.h, p0/z, z0.h, #127
+# CHECK-NEXT: 1 3 1.00 cmpls p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpls p0.s, p0/z, z0.s, #0
+# CHECK-NEXT: 1 3 1.00 cmpls p0.s, p0/z, z0.s, #127
+# CHECK-NEXT: 1 3 1.00 cmpls p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmplt p0.b, p0/z, z0.b, #-16
+# CHECK-NEXT: 1 3 1.00 cmplt p0.b, p0/z, z0.b, #15
+# CHECK-NEXT: 1 3 1.00 cmplt p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmplt p0.d, p0/z, z0.d, #-16
+# CHECK-NEXT: 1 3 1.00 cmplt p0.d, p0/z, z0.d, #15
+# CHECK-NEXT: 1 3 1.00 cmplt p0.h, p0/z, z0.h, #-16
+# CHECK-NEXT: 1 3 1.00 cmplt p0.h, p0/z, z0.h, #15
+# CHECK-NEXT: 1 3 1.00 cmplt p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmplt p0.s, p0/z, z0.s, #-16
+# CHECK-NEXT: 1 3 1.00 cmplt p0.s, p0/z, z0.s, #15
+# CHECK-NEXT: 1 3 1.00 cmplt p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpne p0.b, p0/z, z0.b, #-16
+# CHECK-NEXT: 1 3 1.00 cmpne p0.b, p0/z, z0.b, #15
+# CHECK-NEXT: 1 3 1.00 cmpne p0.b, p0/z, z0.b, z0.b
+# CHECK-NEXT: 1 3 1.00 cmpne p0.b, p0/z, z0.b, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpne p0.d, p0/z, z0.d, #-16
+# CHECK-NEXT: 1 3 1.00 cmpne p0.d, p0/z, z0.d, #15
+# CHECK-NEXT: 1 3 1.00 cmpne p0.d, p0/z, z0.d, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpne p0.h, p0/z, z0.h, #-16
+# CHECK-NEXT: 1 3 1.00 cmpne p0.h, p0/z, z0.h, #15
+# CHECK-NEXT: 1 3 1.00 cmpne p0.h, p0/z, z0.h, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpne p0.h, p0/z, z0.h, z0.h
+# CHECK-NEXT: 1 3 1.00 cmpne p0.s, p0/z, z0.s, #-16
+# CHECK-NEXT: 1 3 1.00 cmpne p0.s, p0/z, z0.s, #15
+# CHECK-NEXT: 1 3 1.00 cmpne p0.s, p0/z, z0.s, z0.d
+# CHECK-NEXT: 1 3 1.00 cmpne p0.s, p0/z, z0.s, z0.s
+# CHECK-NEXT: 1 2 0.50 cnot z31.b, p7/m, z31.b
+# CHECK-NEXT: 1 2 0.50 cnot z31.d, p7/m, z31.d
+# CHECK-NEXT: 1 2 0.50 cnot z31.h, p7/m, z31.h
+# CHECK-NEXT: 1 2 0.50 cnot z31.s, p7/m, z31.s
+# CHECK-NEXT: 1 2 0.50 cnt z31.b, p7/m, z31.b
+# CHECK-NEXT: 1 2 0.50 cnt z31.d, p7/m, z31.d
+# CHECK-NEXT: 1 2 0.50 cnt z31.h, p7/m, z31.h
+# CHECK-NEXT: 1 2 0.50 cnt z31.s, p7/m, z31.s
+# CHECK-NEXT: 1 1 0.13 cntb x0
+# CHECK-NEXT: 1 1 0.13 cntb x0, #28
+# CHECK-NEXT: 1 1 0.13 cntb x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 cntb x0, pow2
+# CHECK-NEXT: 1 1 0.13 cntd x0
+# CHECK-NEXT: 1 1 0.13 cntd x0, #28
+# CHECK-NEXT: 1 1 0.13 cntd x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 cntd x0, pow2
+# CHECK-NEXT: 1 1 0.13 cnth x0
+# CHECK-NEXT: 1 1 0.13 cnth x0, #28
+# CHECK-NEXT: 1 1 0.13 cnth x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 cnth x0, pow2
+# CHECK-NEXT: 1 2 0.50 cntp x0, p15, p0.b
+# CHECK-NEXT: 1 2 0.50 cntp x0, p15, p0.d
+# CHECK-NEXT: 1 2 0.50 cntp x0, p15, p0.h
+# CHECK-NEXT: 1 2 0.50 cntp x0, p15, p0.s
+# CHECK-NEXT: 1 1 0.13 cntw x0
+# CHECK-NEXT: 1 1 0.13 cntw x0, #28
+# CHECK-NEXT: 1 1 0.13 cntw x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 cntw x0, pow2
+# CHECK-NEXT: 1 3 1.00 compact z31.d, p7, z31.d
+# CHECK-NEXT: 1 3 1.00 compact z31.s, p7, z31.s
+# CHECK-NEXT: 1 1 0.50 ctermeq w30, wzr
+# CHECK-NEXT: 1 1 0.50 ctermeq wzr, w30
+# CHECK-NEXT: 1 1 0.50 ctermeq x30, xzr
+# CHECK-NEXT: 1 1 0.50 ctermeq xzr, x30
+# CHECK-NEXT: 1 1 0.50 ctermne w30, wzr
+# CHECK-NEXT: 1 1 0.50 ctermne wzr, w30
+# CHECK-NEXT: 1 1 0.50 ctermne x30, xzr
+# CHECK-NEXT: 1 1 0.50 ctermne xzr, x30
+# CHECK-NEXT: 1 1 0.13 decb x0
+# CHECK-NEXT: 1 1 0.13 decb x0, #14
+# CHECK-NEXT: 1 1 0.13 decb x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 decb x0, pow2
+# CHECK-NEXT: 1 1 0.13 decb x0, vl1
+# CHECK-NEXT: 1 1 0.13 decd x0
+# CHECK-NEXT: 1 1 0.13 decd x0, #14
+# CHECK-NEXT: 1 1 0.13 decd x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 decd x0, pow2
+# CHECK-NEXT: 1 1 0.13 decd x0, vl1
+# CHECK-NEXT: 1 1 0.13 dech x0
+# CHECK-NEXT: 1 1 0.13 dech x0, #14
+# CHECK-NEXT: 1 1 0.13 dech x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 dech x0, pow2
+# CHECK-NEXT: 1 1 0.13 dech x0, vl1
+# CHECK-NEXT: 1 2 0.50 decp x0, p0.b
+# CHECK-NEXT: 1 2 0.50 decp x0, p0.d
+# CHECK-NEXT: 1 2 0.50 decp x0, p0.h
+# CHECK-NEXT: 1 2 0.50 decp x0, p0.s
+# CHECK-NEXT: 1 2 0.50 decp xzr, p15.b
+# CHECK-NEXT: 1 2 0.50 decp xzr, p15.d
+# CHECK-NEXT: 1 2 0.50 decp xzr, p15.h
+# CHECK-NEXT: 1 2 0.50 decp xzr, p15.s
+# CHECK-NEXT: 1 7 1.00 decp z31.d, p15.d
+# CHECK-NEXT: 1 7 1.00 decp z31.h, p15.h
+# CHECK-NEXT: 1 7 1.00 decp z31.s, p15.s
+# CHECK-NEXT: 1 1 0.13 decw x0
+# CHECK-NEXT: 1 1 0.13 decw x0, #14
+# CHECK-NEXT: 1 1 0.13 decw x0, all, mul #16
+# CHECK-NEXT: 1 1 0.13 decw x0, pow2
+# CHECK-NEXT: 1 1 0.13 decw x0, vl1
+# CHECK-NEXT: 1 2 0.50 dupm z0.d, #0xfffffffffffffff9
+# CHECK-NEXT: 1 2 0.50 dupm z0.s, #0xfffffff9
+# CHECK-NEXT: 1 2 0.50 dupm z23.h, #0xfff9
+# CHECK-NEXT: 1 2 0.50 dupm z5.b, #0xf9
+# CHECK-NEXT: 1 2 0.50 eor p0.b, p0/z, p0.b, p1.b
+# CHECK-NEXT: 1 2 0.50 eor z0.d, z0.d, #0x6
+# CHECK-NEXT: 1 2 0.50 eor z0.d, z0.d, #0xfffffffffffffff9
+# CHECK-NEXT: 1 2 0.50 eor z0.d, z0.d, z0.d
+# CHECK-NEXT: 1 2 0.50 eor z0.s, z0.s, #0x6
+# CHECK-NEXT: 1 2 0.50 eor z0.s, z0.s, #0xfffffff9
+# CHECK-NEXT: 1 2 0.50 eor z23.d, z13.d, z8.d
+# CHECK-NEXT: 1 2 0.50 eor z23.h, z23.h, #0x6
+# CHECK-NEXT: 1 2 0.50 eor z23.h, z23.h, #0xfff9
+# CHECK-NEXT: 1 2 0.50 eor z31.b, p7/m, z31.b, z31.b
+# CHECK-NEXT: 1 2 0.50 eor z31.d, p7/m, z31.d, z31.d
+# CHECK-NEXT: 1 2 0.50 eor z31.h, p7/m, z31.h, z31.h
+# CHECK-NEXT: 1 2 0.50 eor z31.s, p7/m, z31.s, z31.s
+# CHECK-NEXT: 1 2 0.50 eor z5.b, z5.b, #0x6
+# CHECK-NEXT: 1 2 0.50 eor z5.b, z5.b, #0xf9
+# CHECK-NEXT: 1 2 0.50 eor3 z29.d, z29.d, z30.d, z31.d
+# CHECK-NEXT: 1 2 0.50 eorbt z0.b, z1.b, z31.b
+# CHECK-NEXT: 1 2 0.50 eorbt z0.d, z1.d, z31.d
+# CHECK-NEXT: 1 2 0.50 eorbt z0.h, z1.h, z31.h
+# CHECK-NEXT: 1 2 0.50 eorbt z0.s, z1.s, z31.s
+# CHECK-NEXT: 1 2 0.50 eors p0.b, p0/z, p0.b, p1.b
+# CHECK-NEXT: 1 2 0.50 eortb z0.b, z1.b, z31.b
+# CHECK-NEXT: 1 2 0.50 eortb z0.d, z1.d, z31.d
+# CHECK-NEXT: 1 2 0.50 eortb z0.h, z1.h, z31.h
+# CHECK-NEXT: 1 2 0.50 eortb z0.s, z1.s, z31.s
+# CHECK-NEXT: 1 4 1.00 eorv b0, p7, z31.b
+# CHECK-NEXT: 1 4 1.00 eorv d0, p7, z31.d
+# CHECK-NEXT: 1 4 1.00 eorv h0, p7, z31.h
+# CHECK-NEXT: 1 4 1.00 eorv s0, p7, z31.s
+# CHECK-NEXT: 1 2 0.50 ext z0.b, { z1.b, z2.b }, #0
+# CHECK-NEXT: 1 2 0.50 ext z31.b, z31.b, z0.b, #0
+# CHECK-NEXT: 1 2 0.50 ext z31.b, z31.b, z0.b, #255
+# CHECK-NEXT: 1 2 0.50 ext z31.b, { z30.b, z31.b }, #255
+# CHECK-NEXT: 1 2 0.50 fabd z0.d, p7/m, z0.d, z31.d
+# CHECK-NEXT: 1 2 0.50 fabd z0.h, p7/m, z0.h, z31.h
+# CHECK-NEXT: 1 2 0.50 fabd z0.s, p7/m, z0.s, z31.s
+# CHECK-NEXT: 1 2 0.50 fabs z31.d, p7/m, z31.d
+# CHECK-NEXT: 1 2 0.50 fabs z31.h, p7/m, z31.h
+# CHECK-NEXT: 1 2 0.50 fabs z31.s, p7/m, z31.s
+# CHECK-NEXT: 1 2 1.00 facge p0.d, p0/z, z0.d, z1.d
+# CHECK-NEXT: 1 2 1.00 facge p0.d, p0/z, z1.d, z0.d
+# CHECK-NEXT: 1 2 1.00 facge p0.h, p0/z, z0.h, z1.h
+# CHECK-NEXT: 1 2 1.00 facge p0.h, p0/z, z1.h, z0.h
+# CHECK-NEXT: 1 2 1.00 facge p0.s, p0/z, z0.s, z1.s
+# CHECK-NEXT: 1 2 1.00 facge p0.s, p0/z, z1.s, z0.s
+# CHECK-NEXT: 1 2 1.00 facgt p0.d, p0/z, z0.d, z1.d
+# CHECK-NEXT: 1 2 1.00 facgt p0.d, p0/z, z1.d, z0.d
+# CHECK-NEXT: 1 2 1.00 facgt p0.h, p0/z, z0.h, z1.h
+# CHECK-NEXT: 1 2 1.00 facgt p0.h, p0/z, z1.h, z0.h
+# CHECK-NEXT: 1 2 1.00 facgt p0.s, p0/z, z0.s, z1.s
+# CHECK-NEXT: 1 2 1.00 facgt p0.s, p0/z, z1.s, z0.s
+# CHECK-NEXT: 1 2 0.50 fadd z0.d, p0/m, z0.d, #0.5
+# CHECK-NEXT: 1 2 0.50 fadd z0.d, p7/m, z0.d, z31.d
+# CHECK-NEXT: 1 2 0.50 fadd z0.d, z1.d, z31.d
+# CHECK-NEXT: 1 2 0.50 fadd z0.h, p0/m, z0.h, #0.5
+# CHECK-NEXT: 1 2 0.50 fadd z0.h, p7/m, z0.h, z31.h
+# CHECK-NEXT: 1 2 0.50 fadd z0.h, z1.h, z31.h
+# CHECK-NEXT: 1 2 0.50 fadd z0.s, p0/m, z0.s, #0.5
+# CHECK-NEXT: 1 2 0.50 fadd z0.s, p7/m, z0.s, z31.s
+# CHECK-NEXT: 1 2 0.50 fadd z0.s, z1.s, z31.s
+# CHECK-NEXT: 1 2 0.50 fadd z31.d, p7/m, z31.d, #1.0
+# CHECK-NEXT: 1 2 0.50 fadd z31.h, p7/m, z31.h, #1.0
+# CHECK-NEXT: 1 2 0.50 fadd z31.s, p7/m, z31.s, #1.0
+# CHECK-NEXT: 1 4 0.50 fadda d0, p7, d0, z31.d
+# CHECK-NEXT: 1 10 1.00 fadda h0, p7, h0, z31.h
+# CHECK-NEXT: 1 6 1.00 fadda s0, p7, s0, z31.s
+# CHECK-NEXT: 1 2 0.50 faddp z0.h, p0/m, z0.h, z1.h
+# CHECK-NEXT: 1 2 0.50 faddp z29.s, p3/m, z29.s, z30.s
+# CHECK-NEXT: 1 2 0.50 faddp z31.d, p7/m, z31.d, z30.d
+# CHECK-NEXT: 1 4 0.50 faddv d0, p7, z31.d
+# CHECK-NEXT: 1 8 0.50 faddv h0, p7, z31.h
+# CHECK-NEXT: 1 6 0.50 faddv s0, p7, z31.s
----------------
Asher8118 wrote:
Throughput needs correction, should be L8 T1/2 and L6 T2/3 and L4 T1.
https://github.com/llvm/llvm-project/pull/185398
More information about the llvm-commits
mailing list