@@ -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