Skip to content

Commit c054d8f

Browse files
[AArch64][LLVM]SME2.1 non-widening BFloat instructions now depend on … (#76222)
…SME2 and FEAT_SVE_B16B16 This patch applies the latest changes in: https://developer.arm.com/documentation/ddi0602/2023-09/SME-Instructions?lang=en
1 parent 89ddd94 commit c054d8f

23 files changed

+569
-569
lines changed

llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@ defm FMOPA_MPPZZ_H : sme2p1_fmop_tile_fp16<"fmopa", 0b0, 0b0, 0b11, ZPR16>;
810810
defm FMOPS_MPPZZ_H : sme2p1_fmop_tile_fp16<"fmops", 0b0, 0b1, 0b11, ZPR16>;
811811
}
812812

813-
let Predicates = [HasSME2p1, HasB16B16] in {
813+
let Predicates = [HasSME2, HasB16B16] in {
814814
defm BFADD_VG2_M2Z_H : sme2_multivec_accum_add_sub_vg2<"bfadd", 0b1100, MatrixOp16, ZZ_h_mul_r, nxv8bf16, null_frag>;
815815
defm BFADD_VG4_M4Z_H : sme2_multivec_accum_add_sub_vg4<"bfadd", 0b1100, MatrixOp16, ZZZZ_h_mul_r, nxv8bf16, null_frag>;
816816
defm BFSUB_VG2_M2Z_H : sme2_multivec_accum_add_sub_vg2<"bfsub", 0b1101, MatrixOp16, ZZ_h_mul_r, nxv8bf16, null_frag>;

llvm/test/MC/AArch64/SME2p1/bfadd-diagnostics.s renamed to llvm/test/MC/AArch64/SME2/bfadd-diagnostics.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 2>&1 < %s | FileCheck %s
1+
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s
22

33
// --------------------------------------------------------------------------//
44
// Out of range index offset

llvm/test/MC/AArch64/SME2p1/bfadd.s renamed to llvm/test/MC/AArch64/SME2/bfadd.s

Lines changed: 55 additions & 55 deletions
Large diffs are not rendered by default.

llvm/test/MC/AArch64/SME2p1/bfclamp-diagnostics.s renamed to llvm/test/MC/AArch64/SME2/bfclamp-diagnostics.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 2>&1 < %s | FileCheck %s
1+
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s
22

33
// --------------------------------------------------------------------------//
44
// Invalid vector list
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,60 @@
1-
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 < %s \
1+
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \
22
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
33
// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
44
// RUN: | FileCheck %s --check-prefix=CHECK-ERROR
5-
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1,+b16b16 < %s \
6-
// RUN: | llvm-objdump -d --mattr=+sme2p1,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7-
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1,+b16b16 < %s \
8-
// RUN: | llvm-objdump -d --mattr=-sme2p1 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9-
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 < %s \
5+
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \
6+
// RUN: | llvm-objdump -d --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7+
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \
8+
// RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9+
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \
1010
// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
11-
// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2p1,+b16b16 -disassemble -show-encoding \
11+
// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \
1212
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
1313

1414
bfclamp {z0.h, z1.h}, z0.h, z0.h // 11000001-00100000-11000000-00000000
1515
// CHECK-INST: bfclamp { z0.h, z1.h }, z0.h, z0.h
1616
// CHECK-ENCODING: [0x00,0xc0,0x20,0xc1]
17-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
17+
// CHECK-ERROR: instruction requires: b16b16 sme2
1818
// CHECK-UNKNOWN: c120c000 <unknown>
1919

2020
bfclamp {z20.h, z21.h}, z10.h, z21.h // 11000001-00110101-11000001-01010100
2121
// CHECK-INST: bfclamp { z20.h, z21.h }, z10.h, z21.h
2222
// CHECK-ENCODING: [0x54,0xc1,0x35,0xc1]
23-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
23+
// CHECK-ERROR: instruction requires: b16b16 sme2
2424
// CHECK-UNKNOWN: c135c154 <unknown>
2525

2626
bfclamp {z22.h, z23.h}, z13.h, z8.h // 11000001-00101000-11000001-10110110
2727
// CHECK-INST: bfclamp { z22.h, z23.h }, z13.h, z8.h
2828
// CHECK-ENCODING: [0xb6,0xc1,0x28,0xc1]
29-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
29+
// CHECK-ERROR: instruction requires: b16b16 sme2
3030
// CHECK-UNKNOWN: c128c1b6 <unknown>
3131

3232
bfclamp {z30.h, z31.h}, z31.h, z31.h // 11000001-00111111-11000011-11111110
3333
// CHECK-INST: bfclamp { z30.h, z31.h }, z31.h, z31.h
3434
// CHECK-ENCODING: [0xfe,0xc3,0x3f,0xc1]
35-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
35+
// CHECK-ERROR: instruction requires: b16b16 sme2
3636
// CHECK-UNKNOWN: c13fc3fe <unknown>
3737

3838
bfclamp {z0.h - z3.h}, z0.h, z0.h // 11000001-00100000-11001000-00000000
3939
// CHECK-INST: bfclamp { z0.h - z3.h }, z0.h, z0.h
4040
// CHECK-ENCODING: [0x00,0xc8,0x20,0xc1]
41-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
41+
// CHECK-ERROR: instruction requires: b16b16 sme2
4242
// CHECK-UNKNOWN: c120c800 <unknown>
4343

4444
bfclamp {z20.h - z23.h}, z10.h, z21.h // 11000001-00110101-11001001-01010100
4545
// CHECK-INST: bfclamp { z20.h - z23.h }, z10.h, z21.h
4646
// CHECK-ENCODING: [0x54,0xc9,0x35,0xc1]
47-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
47+
// CHECK-ERROR: instruction requires: b16b16 sme2
4848
// CHECK-UNKNOWN: c135c954 <unknown>
4949

5050
bfclamp {z20.h - z23.h}, z13.h, z8.h // 11000001-00101000-11001001-10110100
5151
// CHECK-INST: bfclamp { z20.h - z23.h }, z13.h, z8.h
5252
// CHECK-ENCODING: [0xb4,0xc9,0x28,0xc1]
53-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
53+
// CHECK-ERROR: instruction requires: b16b16 sme2
5454
// CHECK-UNKNOWN: c128c9b4 <unknown>
5555

5656
bfclamp {z28.h - z31.h}, z31.h, z31.h // 11000001-00111111-11001011-11111100
5757
// CHECK-INST: bfclamp { z28.h - z31.h }, z31.h, z31.h
5858
// CHECK-ENCODING: [0xfc,0xcb,0x3f,0xc1]
59-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
59+
// CHECK-ERROR: instruction requires: b16b16 sme2
6060
// CHECK-UNKNOWN: c13fcbfc <unknown>

llvm/test/MC/AArch64/SME2p1/bfmax-diagnostics.s renamed to llvm/test/MC/AArch64/SME2/bfmax-diagnostics.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 2>&1 < %s | FileCheck %s
1+
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s
22

33
// --------------------------------------------------------------------------//
44
// Invalid vector list
Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,108 @@
1-
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 < %s \
1+
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \
22
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
33
// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
44
// RUN: | FileCheck %s --check-prefix=CHECK-ERROR
5-
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1,+b16b16 < %s \
6-
// RUN: | llvm-objdump -d --mattr=-sme2p1 --mattr=+sme2p1,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7-
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1,+b16b16 < %s \
8-
// RUN: | llvm-objdump -d --mattr=-sme2p1 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9-
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 < %s \
5+
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \
6+
// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7+
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \
8+
// RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9+
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \
1010
// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
11-
// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2p1,+b16b16 -disassemble -show-encoding \
11+
// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \
1212
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
1313

1414
bfmax {z0.h, z1.h}, {z0.h, z1.h}, z0.h // 11000001-00100000-10100001-00000000
1515
// CHECK-INST: bfmax { z0.h, z1.h }, { z0.h, z1.h }, z0.h
1616
// CHECK-ENCODING: [0x00,0xa1,0x20,0xc1]
17-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
17+
// CHECK-ERROR: instruction requires: b16b16 sme2
1818
// CHECK-UNKNOWN: c120a100 <unknown>
1919

2020
bfmax {z20.h, z21.h}, {z20.h, z21.h}, z5.h // 11000001-00100101-10100001-00010100
2121
// CHECK-INST: bfmax { z20.h, z21.h }, { z20.h, z21.h }, z5.h
2222
// CHECK-ENCODING: [0x14,0xa1,0x25,0xc1]
23-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
23+
// CHECK-ERROR: instruction requires: b16b16 sme2
2424
// CHECK-UNKNOWN: c125a114 <unknown>
2525

2626
bfmax {z22.h, z23.h}, {z22.h, z23.h}, z8.h // 11000001-00101000-10100001-00010110
2727
// CHECK-INST: bfmax { z22.h, z23.h }, { z22.h, z23.h }, z8.h
2828
// CHECK-ENCODING: [0x16,0xa1,0x28,0xc1]
29-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
29+
// CHECK-ERROR: instruction requires: b16b16 sme2
3030
// CHECK-UNKNOWN: c128a116 <unknown>
3131

3232
bfmax {z30.h, z31.h}, {z30.h, z31.h}, z15.h // 11000001-00101111-10100001-00011110
3333
// CHECK-INST: bfmax { z30.h, z31.h }, { z30.h, z31.h }, z15.h
3434
// CHECK-ENCODING: [0x1e,0xa1,0x2f,0xc1]
35-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
35+
// CHECK-ERROR: instruction requires: b16b16 sme2
3636
// CHECK-UNKNOWN: c12fa11e <unknown>
3737

3838
bfmax {z0.h, z1.h}, {z0.h, z1.h}, {z0.h, z1.h} // 11000001-00100000-10110001-00000000
3939
// CHECK-INST: bfmax { z0.h, z1.h }, { z0.h, z1.h }, { z0.h, z1.h }
4040
// CHECK-ENCODING: [0x00,0xb1,0x20,0xc1]
41-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
41+
// CHECK-ERROR: instruction requires: b16b16 sme2
4242
// CHECK-UNKNOWN: c120b100 <unknown>
4343

4444
bfmax {z20.h, z21.h}, {z20.h, z21.h}, {z20.h, z21.h} // 11000001-00110100-10110001-00010100
4545
// CHECK-INST: bfmax { z20.h, z21.h }, { z20.h, z21.h }, { z20.h, z21.h }
4646
// CHECK-ENCODING: [0x14,0xb1,0x34,0xc1]
47-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
47+
// CHECK-ERROR: instruction requires: b16b16 sme2
4848
// CHECK-UNKNOWN: c134b114 <unknown>
4949

5050
bfmax {z22.h, z23.h}, {z22.h, z23.h}, {z8.h, z9.h} // 11000001-00101000-10110001-00010110
5151
// CHECK-INST: bfmax { z22.h, z23.h }, { z22.h, z23.h }, { z8.h, z9.h }
5252
// CHECK-ENCODING: [0x16,0xb1,0x28,0xc1]
53-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
53+
// CHECK-ERROR: instruction requires: b16b16 sme2
5454
// CHECK-UNKNOWN: c128b116 <unknown>
5555

5656
bfmax {z30.h, z31.h}, {z30.h, z31.h}, {z30.h, z31.h} // 11000001-00111110-10110001-00011110
5757
// CHECK-INST: bfmax { z30.h, z31.h }, { z30.h, z31.h }, { z30.h, z31.h }
5858
// CHECK-ENCODING: [0x1e,0xb1,0x3e,0xc1]
59-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
59+
// CHECK-ERROR: instruction requires: b16b16 sme2
6060
// CHECK-UNKNOWN: c13eb11e <unknown>
6161

6262
bfmax {z0.h - z3.h}, {z0.h - z3.h}, z0.h // 11000001-00100000-10101001-00000000
6363
// CHECK-INST: bfmax { z0.h - z3.h }, { z0.h - z3.h }, z0.h
6464
// CHECK-ENCODING: [0x00,0xa9,0x20,0xc1]
65-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
65+
// CHECK-ERROR: instruction requires: b16b16 sme2
6666
// CHECK-UNKNOWN: c120a900 <unknown>
6767

6868
bfmax {z20.h - z23.h}, {z20.h - z23.h}, z5.h // 11000001-00100101-10101001-00010100
6969
// CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, z5.h
7070
// CHECK-ENCODING: [0x14,0xa9,0x25,0xc1]
71-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
71+
// CHECK-ERROR: instruction requires: b16b16 sme2
7272
// CHECK-UNKNOWN: c125a914 <unknown>
7373

7474
bfmax {z20.h - z23.h}, {z20.h - z23.h}, z8.h // 11000001-00101000-10101001-00010100
7575
// CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, z8.h
7676
// CHECK-ENCODING: [0x14,0xa9,0x28,0xc1]
77-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
77+
// CHECK-ERROR: instruction requires: b16b16 sme2
7878
// CHECK-UNKNOWN: c128a914 <unknown>
7979

8080
bfmax {z28.h - z31.h}, {z28.h - z31.h}, z15.h // 11000001-00101111-10101001-00011100
8181
// CHECK-INST: bfmax { z28.h - z31.h }, { z28.h - z31.h }, z15.h
8282
// CHECK-ENCODING: [0x1c,0xa9,0x2f,0xc1]
83-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
83+
// CHECK-ERROR: instruction requires: b16b16 sme2
8484
// CHECK-UNKNOWN: c12fa91c <unknown>
8585

8686
bfmax {z0.h - z3.h}, {z0.h - z3.h}, {z0.h - z3.h} // 11000001-00100000-10111001-00000000
8787
// CHECK-INST: bfmax { z0.h - z3.h }, { z0.h - z3.h }, { z0.h - z3.h }
8888
// CHECK-ENCODING: [0x00,0xb9,0x20,0xc1]
89-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
89+
// CHECK-ERROR: instruction requires: b16b16 sme2
9090
// CHECK-UNKNOWN: c120b900 <unknown>
9191

9292
bfmax {z20.h - z23.h}, {z20.h - z23.h}, {z20.h - z23.h} // 11000001-00110100-10111001-00010100
9393
// CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, { z20.h - z23.h }
9494
// CHECK-ENCODING: [0x14,0xb9,0x34,0xc1]
95-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
95+
// CHECK-ERROR: instruction requires: b16b16 sme2
9696
// CHECK-UNKNOWN: c134b914 <unknown>
9797

9898
bfmax {z20.h - z23.h}, {z20.h - z23.h}, {z8.h - z11.h} // 11000001-00101000-10111001-00010100
9999
// CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, { z8.h - z11.h }
100100
// CHECK-ENCODING: [0x14,0xb9,0x28,0xc1]
101-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
101+
// CHECK-ERROR: instruction requires: b16b16 sme2
102102
// CHECK-UNKNOWN: c128b914 <unknown>
103103

104104
bfmax {z28.h - z31.h}, {z28.h - z31.h}, {z28.h - z31.h} // 11000001-00111100-10111001-00011100
105105
// CHECK-INST: bfmax { z28.h - z31.h }, { z28.h - z31.h }, { z28.h - z31.h }
106106
// CHECK-ENCODING: [0x1c,0xb9,0x3c,0xc1]
107-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
107+
// CHECK-ERROR: instruction requires: b16b16 sme2
108108
// CHECK-UNKNOWN: c13cb91c <unknown>

llvm/test/MC/AArch64/SME2p1/bfmaxnm-diagnostics.s renamed to llvm/test/MC/AArch64/SME2/bfmaxnm-diagnostics.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 2>&1 < %s | FileCheck %s
1+
// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s
22

33
// --------------------------------------------------------------------------//
44
// Invalid vector list
Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,108 @@
1-
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 < %s \
1+
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \
22
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
33
// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
44
// RUN: | FileCheck %s --check-prefix=CHECK-ERROR
5-
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1,+b16b16 < %s \
6-
// RUN: | llvm-objdump -d --mattr=-sme2p1 --mattr=+sme2p1,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7-
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p1,+b16b16 < %s \
8-
// RUN: | llvm-objdump -d --mattr=-sme2p1 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9-
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1,+b16b16 < %s \
5+
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \
6+
// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7+
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \
8+
// RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9+
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \
1010
// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
11-
// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2p1,+b16b16 -disassemble -show-encoding \
11+
// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \
1212
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
1313

1414
bfmaxnm {z0.h, z1.h}, {z0.h, z1.h}, z0.h // 11000001-00100000-10100001-00100000
1515
// CHECK-INST: bfmaxnm { z0.h, z1.h }, { z0.h, z1.h }, z0.h
1616
// CHECK-ENCODING: [0x20,0xa1,0x20,0xc1]
17-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
17+
// CHECK-ERROR: instruction requires: b16b16 sme2
1818
// CHECK-UNKNOWN: c120a120 <unknown>
1919

2020
bfmaxnm {z20.h, z21.h}, {z20.h, z21.h}, z5.h // 11000001-00100101-10100001-00110100
2121
// CHECK-INST: bfmaxnm { z20.h, z21.h }, { z20.h, z21.h }, z5.h
2222
// CHECK-ENCODING: [0x34,0xa1,0x25,0xc1]
23-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
23+
// CHECK-ERROR: instruction requires: b16b16 sme2
2424
// CHECK-UNKNOWN: c125a134 <unknown>
2525

2626
bfmaxnm {z22.h, z23.h}, {z22.h, z23.h}, z8.h // 11000001-00101000-10100001-00110110
2727
// CHECK-INST: bfmaxnm { z22.h, z23.h }, { z22.h, z23.h }, z8.h
2828
// CHECK-ENCODING: [0x36,0xa1,0x28,0xc1]
29-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
29+
// CHECK-ERROR: instruction requires: b16b16 sme2
3030
// CHECK-UNKNOWN: c128a136 <unknown>
3131

3232
bfmaxnm {z30.h, z31.h}, {z30.h, z31.h}, z15.h // 11000001-00101111-10100001-00111110
3333
// CHECK-INST: bfmaxnm { z30.h, z31.h }, { z30.h, z31.h }, z15.h
3434
// CHECK-ENCODING: [0x3e,0xa1,0x2f,0xc1]
35-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
35+
// CHECK-ERROR: instruction requires: b16b16 sme2
3636
// CHECK-UNKNOWN: c12fa13e <unknown>
3737

3838
bfmaxnm {z0.h, z1.h}, {z0.h, z1.h}, {z0.h, z1.h} // 11000001-00100000-10110001-00100000
3939
// CHECK-INST: bfmaxnm { z0.h, z1.h }, { z0.h, z1.h }, { z0.h, z1.h }
4040
// CHECK-ENCODING: [0x20,0xb1,0x20,0xc1]
41-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
41+
// CHECK-ERROR: instruction requires: b16b16 sme2
4242
// CHECK-UNKNOWN: c120b120 <unknown>
4343

4444
bfmaxnm {z20.h, z21.h}, {z20.h, z21.h}, {z20.h, z21.h} // 11000001-00110100-10110001-00110100
4545
// CHECK-INST: bfmaxnm { z20.h, z21.h }, { z20.h, z21.h }, { z20.h, z21.h }
4646
// CHECK-ENCODING: [0x34,0xb1,0x34,0xc1]
47-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
47+
// CHECK-ERROR: instruction requires: b16b16 sme2
4848
// CHECK-UNKNOWN: c134b134 <unknown>
4949

5050
bfmaxnm {z22.h, z23.h}, {z22.h, z23.h}, {z8.h, z9.h} // 11000001-00101000-10110001-00110110
5151
// CHECK-INST: bfmaxnm { z22.h, z23.h }, { z22.h, z23.h }, { z8.h, z9.h }
5252
// CHECK-ENCODING: [0x36,0xb1,0x28,0xc1]
53-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
53+
// CHECK-ERROR: instruction requires: b16b16 sme2
5454
// CHECK-UNKNOWN: c128b136 <unknown>
5555

5656
bfmaxnm {z30.h, z31.h}, {z30.h, z31.h}, {z30.h, z31.h} // 11000001-00111110-10110001-00111110
5757
// CHECK-INST: bfmaxnm { z30.h, z31.h }, { z30.h, z31.h }, { z30.h, z31.h }
5858
// CHECK-ENCODING: [0x3e,0xb1,0x3e,0xc1]
59-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
59+
// CHECK-ERROR: instruction requires: b16b16 sme2
6060
// CHECK-UNKNOWN: c13eb13e <unknown>
6161

6262
bfmaxnm {z0.h - z3.h}, {z0.h - z3.h}, z0.h // 11000001-00100000-10101001-00100000
6363
// CHECK-INST: bfmaxnm { z0.h - z3.h }, { z0.h - z3.h }, z0.h
6464
// CHECK-ENCODING: [0x20,0xa9,0x20,0xc1]
65-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
65+
// CHECK-ERROR: instruction requires: b16b16 sme2
6666
// CHECK-UNKNOWN: c120a920 <unknown>
6767

6868
bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, z5.h // 11000001-00100101-10101001-00110100
6969
// CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, z5.h
7070
// CHECK-ENCODING: [0x34,0xa9,0x25,0xc1]
71-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
71+
// CHECK-ERROR: instruction requires: b16b16 sme2
7272
// CHECK-UNKNOWN: c125a934 <unknown>
7373

7474
bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, z8.h // 11000001-00101000-10101001-00110100
7575
// CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, z8.h
7676
// CHECK-ENCODING: [0x34,0xa9,0x28,0xc1]
77-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
77+
// CHECK-ERROR: instruction requires: b16b16 sme2
7878
// CHECK-UNKNOWN: c128a934 <unknown>
7979

8080
bfmaxnm {z28.h - z31.h}, {z28.h - z31.h}, z15.h // 11000001-00101111-10101001-00111100
8181
// CHECK-INST: bfmaxnm { z28.h - z31.h }, { z28.h - z31.h }, z15.h
8282
// CHECK-ENCODING: [0x3c,0xa9,0x2f,0xc1]
83-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
83+
// CHECK-ERROR: instruction requires: b16b16 sme2
8484
// CHECK-UNKNOWN: c12fa93c <unknown>
8585

8686
bfmaxnm {z0.h - z3.h}, {z0.h - z3.h}, {z0.h - z3.h} // 11000001-00100000-10111001-00100000
8787
// CHECK-INST: bfmaxnm { z0.h - z3.h }, { z0.h - z3.h }, { z0.h - z3.h }
8888
// CHECK-ENCODING: [0x20,0xb9,0x20,0xc1]
89-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
89+
// CHECK-ERROR: instruction requires: b16b16 sme2
9090
// CHECK-UNKNOWN: c120b920 <unknown>
9191

9292
bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, {z20.h - z23.h} // 11000001-00110100-10111001-00110100
9393
// CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, { z20.h - z23.h }
9494
// CHECK-ENCODING: [0x34,0xb9,0x34,0xc1]
95-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
95+
// CHECK-ERROR: instruction requires: b16b16 sme2
9696
// CHECK-UNKNOWN: c134b934 <unknown>
9797

9898
bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, {z8.h - z11.h} // 11000001-00101000-10111001-00110100
9999
// CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, { z8.h - z11.h }
100100
// CHECK-ENCODING: [0x34,0xb9,0x28,0xc1]
101-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
101+
// CHECK-ERROR: instruction requires: b16b16 sme2
102102
// CHECK-UNKNOWN: c128b934 <unknown>
103103

104104
bfmaxnm {z28.h - z31.h}, {z28.h - z31.h}, {z28.h - z31.h} // 11000001-00111100-10111001-00111100
105105
// CHECK-INST: bfmaxnm { z28.h - z31.h }, { z28.h - z31.h }, { z28.h - z31.h }
106106
// CHECK-ENCODING: [0x3c,0xb9,0x3c,0xc1]
107-
// CHECK-ERROR: instruction requires: b16b16 sme2p1
107+
// CHECK-ERROR: instruction requires: b16b16 sme2
108108
// CHECK-UNKNOWN: c13cb93c <unknown>

0 commit comments

Comments
 (0)