brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.6 KiB · 9e2ef4a Raw
446 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s2 3// input should be a 64bit scalar register4mov z0.d, w05// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction6// CHECK-NEXT: mov z0.d, w07// CHECK-NOT: [[@LINE-3]]:{{[0-9]+}}:8 9// wzr is not a valid operand to mov10mov z0.s, wzr11// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction12// CHECK-NEXT: mov z0.s, wzr13// CHECK-NOT: [[@LINE-3]]:{{[0-9]+}}:14 15// xzr is not a valid operand to mov16mov z0.d, xzr17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction18// CHECK-NEXT: mov z0.d, xzr19// CHECK-NOT: [[@LINE-3]]:{{[0-9]+}}:20 21 22// --------------------------------------------------------------------------//23// Unpredicated mov of Z register only allowed for .d24 25mov z0.b, z1.b26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction27// CHECK-NEXT: mov z0.b, z1.b28// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:29 30mov z0.h, z1.h31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction32// CHECK-NEXT: mov z0.h, z1.h33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:34 35mov z0.s, z1.s36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction37// CHECK-NEXT: mov z0.s, z1.s38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:39 40// --------------------------------------------------------------------------//41// Invalid scalar operand for result element width.42 43mov z0.d, w044// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction45// CHECK-NEXT: mov z0.d, w046// CHECK-NOT: [[@LINE-3]]:{{[0-9]+}}:47 48mov z0.b, p0/m, x049// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction50// CHECK-NEXT: mov z0.b, p0/m, x051// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:52 53mov z0.h, p0/m, x054// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction55// CHECK-NEXT: mov z0.h, p0/m, x056// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:57 58mov z0.s, p0/m, x059// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction60// CHECK-NEXT: mov z0.s, p0/m, x061// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:62 63mov z0.d, p0/m, w064// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction65// CHECK-NEXT: mov z0.d, p0/m, w066// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:67 68mov z0.b, p0/m, h069// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction70// CHECK-NEXT: mov z0.b, p0/m, h071// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:72 73mov z0.b, p0/m, s074// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction75// CHECK-NEXT: mov z0.b, p0/m, s076// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:77 78mov z0.b, p0/m, d079// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction80// CHECK-NEXT: mov z0.b, p0/m, d081// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:82 83mov z0.h, p0/m, b084// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction85// CHECK-NEXT: mov z0.h, p0/m, b086// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:87 88mov z0.h, p0/m, s089// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction90// CHECK-NEXT: mov z0.h, p0/m, s091// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:92 93mov z0.h, p0/m, d094// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction95// CHECK-NEXT: mov z0.h, p0/m, d096// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:97 98mov z0.s, p0/m, b099// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction100// CHECK-NEXT: mov z0.s, p0/m, b0101// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:102 103mov z0.s, p0/m, h0104// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction105// CHECK-NEXT: mov z0.s, p0/m, h0106// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:107 108mov z0.s, p0/m, d0109// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction110// CHECK-NEXT: mov z0.s, p0/m, d0111// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:112 113mov z0.d, p0/m, b0114// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction115// CHECK-NEXT: mov z0.d, p0/m, b0116// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:117 118mov z0.d, p0/m, h0119// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction120// CHECK-NEXT: mov z0.d, p0/m, h0121// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:122 123mov z0.d, p0/m, s0124// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction125// CHECK-NEXT: mov z0.d, p0/m, s0126// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:127 128// --------------------------------------------------------------------------//129// Invalid immediates130 131mov z0.b, #0, lsl #8      // #0, lsl #8 is not valid for .b132// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]133// CHECK-NEXT: mov z0.b, #0, lsl #8134// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:135 136mov z0.b, #-1, lsl #8137// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]138// CHECK-NEXT: mov z0.b, #-1, lsl #8139// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:140 141mov z0.b, #256142// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]143// CHECK-NEXT: mov z0.b, #256144// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:145 146mov z0.b, #1, lsl #8147// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]148// CHECK-NEXT: mov z0.b, #1, lsl #8149// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:150 151// Note: 65281 is a valid logical immediate.152mov z0.h, #65282153// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 65280]154// CHECK-NEXT: mov z0.h, #65282155// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:156 157mov z0.h, #256, lsl #8158// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 65280]159// CHECK-NEXT: mov z0.h, #256, lsl #8160// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:161 162mov z0.s, #-33024163// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]164// CHECK-NEXT: mov z0.s, #-33024165// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:166 167mov z0.s, #-129, lsl #8168// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]169// CHECK-NEXT: mov z0.s, #-129, lsl #8170// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:171 172mov z0.s, #32513173// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]174// CHECK-NEXT: mov z0.s, #32513175// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:176 177mov z0.s, #128, lsl #8178// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]179// CHECK-NEXT: mov z0.s, #128, lsl #8180// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:181 182mov z0.d, #-33024183// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]184// CHECK-NEXT: mov z0.d, #-33024185// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:186 187mov z0.d, #-129, lsl #8188// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]189// CHECK-NEXT: mov z0.d, #-129, lsl #8190// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:191 192mov z0.d, #32513193// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]194// CHECK-NEXT: mov z0.d, #32513195// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:196 197mov z0.d, #128, lsl #8198// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]199// CHECK-NEXT: mov z0.d, #128, lsl #8200// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:201 202mov z5.b, #0xfff9203// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255] with a shift amount of 0204// CHECK-NEXT: mov z5.b, #0xfff9205// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:206 207mov z5.h, #0xfffffff9208// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 65280]209// CHECK-NEXT: mov z5.h, #0xfffffff9210// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:211 212mov z5.s, #0xffffffffffffff9213// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]214// CHECK-NEXT: mov z5.s, #0xffffffffffffff9215// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:216 217mov z0.b, p0/z, #0, lsl #8      // #0, lsl #8 is not valid for .b218// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]219// CHECK-NEXT: mov z0.b, p0/z, #0, lsl #8220// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:221 222mov z0.b, p0/z, #-1, lsl #8223// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]224// CHECK-NEXT: mov z0.b, p0/z, #-1, lsl #8225// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:226 227mov z0.b, p0/z, #256228// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]229// CHECK-NEXT: mov z0.b, p0/z, #256230// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:231 232mov z0.b, p0/z, #1, lsl #8233// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 255]234// CHECK-NEXT: mov z0.b, p0/z, #1, lsl #8235// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:236 237mov z0.h, p0/z, #-32769238// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 65280]239// CHECK-NEXT: mov z0.h, p0/z, #-32769240// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:241 242mov z0.h, p0/z, #32513243// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 65280]244// CHECK-NEXT: mov z0.h, p0/z, #32513245// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:246 247mov z0.h, p0/z, #65281248// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 65280]249// CHECK-NEXT: mov z0.h, p0/z, #65281250// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:251 252mov z0.h, p0/z, #256, lsl #8253// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 65280]254// CHECK-NEXT: mov z0.h, p0/z, #256, lsl #8255// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:256 257mov z0.s, p0/z, #-33024258// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]259// CHECK-NEXT: mov z0.s, p0/z, #-33024260// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:261 262mov z0.s, p0/z, #-32769263// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]264// CHECK-NEXT: mov z0.s, p0/z, #-32769265// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:266 267mov z0.s, p0/z, #-129, lsl #8268// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]269// CHECK-NEXT: mov z0.s, p0/z, #-129, lsl #8270// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:271 272mov z0.s, p0/z, #32513273// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]274// CHECK-NEXT: mov z0.s, p0/z, #32513275// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:276 277mov z0.s, p0/z, #32768278// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]279// CHECK-NEXT: mov z0.s, p0/z, #32768280// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:281 282mov z0.s, p0/z, #128, lsl #8283// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]284// CHECK-NEXT: mov z0.s, p0/z, #128, lsl #8285// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:286 287mov z0.d, p0/z, #-33024288// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]289// CHECK-NEXT: mov z0.d, p0/z, #-33024290// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:291 292mov z0.d, p0/z, #-32769293// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]294// CHECK-NEXT: mov z0.d, p0/z, #-32769295// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:296 297mov z0.d, p0/z, #-129, lsl #8298// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]299// CHECK-NEXT: mov z0.d, p0/z, #-129, lsl #8300// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:301 302mov z0.d, p0/z, #32513303// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]304// CHECK-NEXT: mov z0.d, p0/z, #32513305// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:306 307mov z0.d, p0/z, #32768308// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]309// CHECK-NEXT: mov z0.d, p0/z, #32768310// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:311 312mov z0.d, p0/z, #128, lsl #8313// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [-128, 127] or a multiple of 256 in range [-32768, 32512]314// CHECK-NEXT: mov z0.d, p0/z, #128, lsl #8315// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:316 317 318// --------------------------------------------------------------------------//319// Immediate not compatible with encode/decode function.320 321mov z24.b, z17.b[-1]322// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 63].323// CHECK-NEXT: mov z24.b, z17.b[-1]324// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:325 326mov z17.b, z5.b[64]327// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 63].328// CHECK-NEXT: mov z17.b, z5.b[64]329// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:330 331mov z16.h, z30.h[-1]332// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 31].333// CHECK-NEXT: mov z16.h, z30.h[-1]334// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:335 336mov z19.h, z23.h[32]337// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 31].338// CHECK-NEXT: mov z19.h, z23.h[32]339// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:340 341mov z1.s, z6.s[-1]342// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].343// CHECK-NEXT: mov z1.s, z6.s[-1]344// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:345 346mov z24.s, z3.s[16]347// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].348// CHECK-NEXT: mov z24.s, z3.s[16]349// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:350 351mov z5.d, z25.d[-1]352// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].353// CHECK-NEXT: mov z5.d, z25.d[-1]354// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:355 356mov z12.d, z28.d[8]357// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].358// CHECK-NEXT: mov z12.d, z28.d[8]359// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:360 361mov z22.q, z7.q[-1]362// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].363// CHECK-NEXT: mov z22.q, z7.q[-1]364// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:365 366mov z24.q, z21.q[4]367// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].368// CHECK-NEXT: mov z24.q, z21.q[4]369// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:370 371 372// --------------------------------------------------------------------------//373// Negative tests for instructions that are incompatible with movprfx374 375movprfx z31.b, p0/z, z6.b376mov     z31.b, wsp377// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov378// CHECK-NEXT: mov     z31.b, wsp379// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:380 381movprfx z31, z6382mov     z31.b, wsp383// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov384// CHECK-NEXT: mov     z31.b, wsp385// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:386 387movprfx z0.d, p0/z, z7.d388mov     z0.d, #0xe0000000000003ff389// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov390// CHECK-NEXT: mov     z0.d, #0xe0000000000003ff391// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:392 393movprfx z0, z7394mov     z0.d, #0xe0000000000003ff395// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov396// CHECK-NEXT: mov     z0.d, #0xe0000000000003ff397// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:398 399movprfx z4.d, p7/z, z6.d400mov     z4.d, p7/m, z31.d401// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov402// CHECK-NEXT: mov     z4.d, p7/m, z31.d403// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:404 405movprfx z31, z6406mov     z31.d, p15/m, z31.d407// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov408// CHECK-NEXT: mov     z31.d, p15/m, z31.d409// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:410 411movprfx z0.d, p0/z, z7.d412mov     z0.d, d0413// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov414// CHECK-NEXT: mov     z0.d, d0415// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:416 417movprfx z0, z7418mov     z0.d, d0419// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov420// CHECK-NEXT: mov     z0.d, d0421// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:422 423movprfx z31.d, p0/z, z6.d424mov     z31.d, z0.d425// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov426// CHECK-NEXT: mov     z31.d, z0.d427// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:428 429movprfx z31, z6430mov     z31.d, z0.d431// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov432// CHECK-NEXT: mov     z31.d, z0.d433// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:434 435movprfx z31.d, p0/z, z6.d436mov     z31.d, z31.d[7]437// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov438// CHECK-NEXT: mov     z31.d, z31.d[7]439// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:440 441movprfx z31, z6442mov     z31.d, z31.d[7]443// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov444// CHECK-NEXT: mov     z31.d, z31.d[7]445// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:446