Skip to content

Commit fac9bc0

Browse files
committed
fixup! [AArch64][llvm] Armv9.7-A: Add support for SVE2p3 shift operations
Add extra diagnostic tests for "mismatched register size suffix"
1 parent 2f34353 commit fac9bc0

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

llvm/test/MC/AArch64/SVE2p3/qshrn-diagnostics.s

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ sqrshrn z10.d, { z0.d, z1.d }, #1
1313
// CHECK-NEXT: sqrshrn z10.d, { z0.d, z1.d }, #1
1414
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
1515

16+
// --------------------------------------------------------------------------//
17+
// Mismatched register size suffix
18+
19+
sqrshrn z0.b, { z0.h, z1.s }, #1
20+
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix
21+
// CHECK-NEXT: sqrshrn z0.b, { z0.h, z1.s }, #1
22+
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
23+
1624
// --------------------------------------------------------------------------//
1725
// Invalid operand for instruction
1826

@@ -87,6 +95,14 @@ sqrshrun z10.b, { z1.h, z2.h }, #1
8795
// CHECK-NEXT: sqrshrun z10.b, { z1.h, z2.h }, #1
8896
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
8997

98+
// --------------------------------------------------------------------------//
99+
// Mismatched register size suffix
100+
101+
sqrshrun z0.b, { z0.h, z1.s }, #1
102+
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix
103+
// CHECK-NEXT: sqrshrun z0.b, { z0.h, z1.s }, #1
104+
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
105+
90106
// --------------------------------------------------------------------------//
91107
// Negative tests for instructions that are incompatible with movprfx
92108

@@ -109,6 +125,14 @@ sqshrn z10.d, { z0.d, z1.d }, #1
109125
// CHECK-NEXT: sqshrn z10.d, { z0.d, z1.d }, #1
110126
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
111127

128+
// --------------------------------------------------------------------------//
129+
// Mismatched register size suffix
130+
131+
sqshrn z0.b, { z0.h, z1.s }, #1
132+
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix
133+
// CHECK-NEXT: sqshrn z0.b, { z0.h, z1.s }, #1
134+
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
135+
112136
// --------------------------------------------------------------------------//
113137
// Intermediate out of range
114138

@@ -159,6 +183,14 @@ sqshrun z10.d, { z0.d, z1.d }, #1
159183
// CHECK-NEXT: sqshrun z10.d, { z0.d, z1.d }, #1
160184
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
161185

186+
// --------------------------------------------------------------------------//
187+
// Mismatched register size suffix
188+
189+
sqshrun z0.b, { z0.h, z1.s }, #1
190+
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix
191+
// CHECK-NEXT: sqshrun z0.b, { z0.h, z1.s }, #1
192+
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
193+
162194
// --------------------------------------------------------------------------//
163195
// Intermediate out of range
164196

@@ -209,6 +241,14 @@ uqrshrn z10.d, { z0.d, z1.d }, #1
209241
// CHECK-NEXT: uqrshrn z10.d, { z0.d, z1.d }, #1
210242
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
211243

244+
// --------------------------------------------------------------------------//
245+
// Mismatched register size suffix
246+
247+
uqrshrn z0.b, { z0.h, z1.s }, #1
248+
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix
249+
// CHECK-NEXT: uqrshrn z0.b, { z0.h, z1.s }, #1
250+
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
251+
212252
// --------------------------------------------------------------------------//
213253
// Invalid operand for instruction
214254

@@ -257,6 +297,14 @@ uqshrn z10.d, { z0.d, z1.d }, #1
257297
// CHECK-NEXT: uqshrn z10.d, { z0.d, z1.d }, #1
258298
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
259299

300+
// --------------------------------------------------------------------------//
301+
// Mismatched register size suffix
302+
303+
uqshrn z0.b, { z0.h, z1.s }, #1
304+
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix
305+
// CHECK-NEXT: uqshrn z0.b, { z0.h, z1.s }, #1
306+
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
307+
260308
// --------------------------------------------------------------------------//
261309
// Intermediate out of range
262310

0 commit comments

Comments
 (0)