brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.8 KiB · 846138a Raw
213 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-tmop,+sme-f8f32,+sme-f8f16,+sme-f16f16 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid ZA register (range)5 6ftmopa  za2.h, {z30.b-z31.b}, z31.b, z31[3]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction8// CHECK-NEXT: ftmopa  za2.h, {z30.b-z31.b}, z31.b, z31[3]9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11ftmopa  za2.h, {z30.h-z31.h}, z31.h, z31[3]12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction13// CHECK-NEXT: ftmopa  za2.h, {z30.h-z31.h}, z31.h, z31[3]14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16ftmopa  za4.s, {z30.b-z31.b}, z31.b, z31[3]17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction18// CHECK-NEXT: ftmopa  za4.s, {z30.b-z31.b}, z31.b, z31[3]19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21ftmopa  za4.s, {z30.h-z31.h}, z31.h, z31[3]22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction23// CHECK-NEXT: ftmopa  za4.s, {z30.h-z31.h}, z31.h, z31[3]24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26ftmopa  za4.s, {z30.s-z31.s}, z31.s, z31[3]27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction28// CHECK-NEXT: ftmopa  za4.s, {z30.s-z31.s}, z31.s, z31[3]29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31// --------------------------------------------------------------------------//32// Invalid ZA register (type suffix)33 34ftmopa  za0.b, {z30.b-z31.b}, z31.b, z31[3]35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s36// CHECK-NEXT: ftmopa  za0.b, {z30.b-z31.b}, z31.b, z31[3]37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:38 39ftmopa  za0.d, {z30.h-z31.h}, z31.h, z31[3]40// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s41// CHECK-NEXT: ftmopa  za0.d, {z30.h-z31.h}, z31.h, z31[3]42// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:43 44ftmopa  za0.h, {z30.s-z31.s}, z31.s, z31[3]45// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction46// CHECK-NEXT: ftmopa  za0.h, {z30.s-z31.s}, z31.s, z31[3]47// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:48 49// --------------------------------------------------------------------------//50// Invalid vector list operand51 52ftmopa  za0.h, {z28.b-z31.b}, z31.b, z31[3]53// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction54// CHECK-NEXT: ftmopa  za0.h, {z28.b-z31.b}, z31.b, z31[3]55// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:56 57ftmopa  za0.h, {z29.b-z30.b}, z31.b, z31[3]58// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types59// CHECK-NEXT: ftmopa  za0.h, {z29.b-z30.b}, z31.b, z31[3]60// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:61 62ftmopa  za0.h, {z28.h-z31.h}, z31.h, z31[3]63// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction64// CHECK-NEXT: ftmopa  za0.h, {z28.h-z31.h}, z31.h, z31[3]65// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:66 67ftmopa  za0.h, {z29.h-z30.h}, z31.h, z31[3]68// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types69// CHECK-NEXT: ftmopa  za0.h, {z29.h-z30.h}, z31.h, z31[3]70// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:71 72ftmopa  za3.s, {z28.b-z31.b}, z31.b, z31[3]73// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction74// CHECK-NEXT: ftmopa  za3.s, {z28.b-z31.b}, z31.b, z31[3]75// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:76 77ftmopa  za3.s, {z29.b-z30.b}, z31.b, z31[3]78// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types79// CHECK-NEXT: ftmopa  za3.s, {z29.b-z30.b}, z31.b, z31[3]80// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:81 82ftmopa  za3.s, {z28.h-z31.h}, z31.h, z31[3]83// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction84// CHECK-NEXT: ftmopa  za3.s, {z28.h-z31.h}, z31.h, z31[3]85// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:86 87ftmopa  za3.s, {z29.h-z30.h}, z31.h, z31[3]88// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types89// CHECK-NEXT: ftmopa  za3.s, {z29.h-z30.h}, z31.h, z31[3]90// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:91 92ftmopa  za3.s, {z28.s-z31.s}, z31.s, z31[3]93// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction94// CHECK-NEXT: ftmopa  za3.s, {z28.s-z31.s}, z31.s, z31[3]95// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:96 97ftmopa  za3.s, {z29.s-z30.s}, z31.s, z31[3]98// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types99// CHECK-NEXT: ftmopa  za3.s, {z29.s-z30.s}, z31.s, z31[3]100// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:101 102 103// --------------------------------------------------------------------------//104// Invalid ZK register105 106ftmopa  za0.h, {z28.b-z29.b}, z31.b, z27[3]107// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31108// CHECK-NEXT: ftmopa  za0.h, {z28.b-z29.b}, z31.b, z27[3]109// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:110 111ftmopa  za0.h, {z28.b-z29.b}, z31.b, z21.b[3]112// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31113// CHECK-NEXT: ftmopa  za0.h, {z28.b-z29.b}, z31.b, z21.b[3]114// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:115 116ftmopa  za0.h, {z28.h-z29.h}, z31.h, z19[3]117// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31118// CHECK-NEXT: ftmopa  za0.h, {z28.h-z29.h}, z31.h, z19[3]119// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:120 121ftmopa  za0.h, {z28.h-z29.h}, z31.h, z30.h[3]122// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31123// CHECK-NEXT: ftmopa  za0.h, {z28.h-z29.h}, z31.h, z30.h[3]124// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:125 126ftmopa  za3.s, {z28.b-z29.b}, z31.b, z27[3]127// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31128// CHECK-NEXT: ftmopa  za3.s, {z28.b-z29.b}, z31.b, z27[3]129// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:130 131ftmopa  za3.s, {z28.b-z29.b}, z31.b, z29.b[3]132// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31133// CHECK-NEXT: ftmopa  za3.s, {z28.b-z29.b}, z31.b, z29.b[3]134// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:135 136ftmopa  za3.s, {z28.h-z29.h}, z31.h, z24[3]137// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31138// CHECK-NEXT: ftmopa  za3.s, {z28.h-z29.h}, z31.h, z24[3]139// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:140 141ftmopa  za3.s, {z28.h-z29.h}, z31.h, z21.h[3]142// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31143// CHECK-NEXT: ftmopa  za3.s, {z28.h-z29.h}, z31.h, z21.h[3]144// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:145 146ftmopa  za3.s, {z28.s-z29.s}, z31.s, z19[3]147// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31148// CHECK-NEXT: ftmopa  za3.s, {z28.s-z29.s}, z31.s, z19[3]149// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:150 151ftmopa  za3.s, {z28.s-z29.s}, z31.s, z30.s[3]152// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z31153// CHECK-NEXT: ftmopa  za3.s, {z28.s-z29.s}, z31.s, z30.s[3]154// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:155 156// --------------------------------------------------------------------------//157// Invalid immediate158 159ftmopa  za0.h, {z28.b-z29.b}, z31.b, z20[4]160// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].161// CHECK-NEXT: ftmopa  za0.h, {z28.b-z29.b}, z31.b, z20[4]162// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:163 164ftmopa  za0.h, {z28.h-z29.h}, z31.h, z20[4]165// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].166// CHECK-NEXT: ftmopa  za0.h, {z28.h-z29.h}, z31.h, z20[4]167// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:168 169ftmopa  za3.s, {z28.b-z29.b}, z31.b, z20[4]170// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].171// CHECK-NEXT: ftmopa  za3.s, {z28.b-z29.b}, z31.b, z20[4]172// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:173 174ftmopa  za3.s, {z28.h-z29.h}, z31.h, z20[4]175// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].176// CHECK-NEXT: ftmopa  za3.s, {z28.h-z29.h}, z31.h, z20[4]177// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:178 179ftmopa  za3.s, {z28.s-z29.s}, z31.s, z20[4]180// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].181// CHECK-NEXT: ftmopa  za3.s, {z28.s-z29.s}, z31.s, z20[4]182// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:183 184// --------------------------------------------------------------------------//185// Invalid ZPR type suffix186 187ftmopa  za0.h, {z28.b-z29.b}, z31.h, z20[3]188// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width189// CHECK-NEXT: ftmopa  za0.h, {z28.b-z29.b}, z31.h, z20[3]190// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:191 192ftmopa  za0.h, {z28.h-z29.h}, z31.s, z20[3]193// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width194// CHECK-NEXT: ftmopa  za0.h, {z28.h-z29.h}, z31.s, z20[3]195// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:196 197ftmopa  za0.s, {z28.b-z29.b}, z31.h, z20[3]198// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width199// CHECK-NEXT: ftmopa  za0.s, {z28.b-z29.b}, z31.h, z20[3]200// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:201 202ftmopa  za0.s, {z28.h-z29.h}, z31.s, z20[3]203// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width204// CHECK-NEXT: ftmopa  za0.s, {z28.h-z29.h}, z31.s, z20[3]205// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:206 207ftmopa  za0.s, {z28.s-z29.s}, z31.h, z20[3]208// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width209// CHECK-NEXT: ftmopa  za0.s, {z28.s-z29.s}, z31.h, z20[3]210// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:211 212 213