brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 9b33ded Raw
115 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-tmop,+sme-b16b16 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid ZA register (range)5 6bftmopa  za2.h, {z30.h-z31.h}, z31.h, z31[3]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction8// CHECK-NEXT: bftmopa  za2.h, {z30.h-z31.h}, z31.h, z31[3]9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11bftmopa  za4.s, {z30.h-z31.h}, z31.h, z31[3]12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction13// CHECK-NEXT: bftmopa  za4.s, {z30.h-z31.h}, z31.h, z31[3]14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16// --------------------------------------------------------------------------//17// Invalid ZA register (type-suffix)18 19bftmopa  za3.d, {z28.h-z29.h}, z31.h, z20[3]20// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s21// CHECK-NEXT: bftmopa  za3.d, {z28.h-z29.h}, z31.h, z20[3]22// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:23 24// --------------------------------------------------------------------------//25// Invalid vector list operand26 27bftmopa  za0.h, {z28.h-z31.h}, z31.h, z31[3]28// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction29// CHECK-NEXT: bftmopa  za0.h, {z28.h-z31.h}, z31.h, z31[3]30// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:31 32bftmopa  za0.h, {z29.h-z30.h}, z31.h, z31[3]33// 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 types34// CHECK-NEXT: bftmopa  za0.h, {z29.h-z30.h}, z31.h, z31[3]35// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:36 37bftmopa  za0.s, {z28.h-z31.h}, z31.h, z31[3]38// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction39// CHECK-NEXT: bftmopa  za0.s, {z28.h-z31.h}, z31.h, z31[3]40// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:41 42bftmopa  za3.s, {z29.h-z30.h}, z31.h, z31[3]43// 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 types44// CHECK-NEXT: bftmopa  za3.s, {z29.h-z30.h}, z31.h, z31[3]45// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:46 47// --------------------------------------------------------------------------//48// Invalid ZK register49 50bftmopa  za0.h, {z28.h-z29.h}, z31.h, z19[3]51// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3152// CHECK-NEXT: bftmopa  za0.h, {z28.h-z29.h}, z31.h, z19[3]53// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:54 55bftmopa  za0.h, {z28.h-z29.h}, z31.h, z24[3]56// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3157// CHECK-NEXT: bftmopa  za0.h, {z28.h-z29.h}, z31.h, z24[3]58// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:59 60bftmopa  za3.s, {z28.h-z29.h}, z31.h, z19[3]61// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3162// CHECK-NEXT: bftmopa  za3.s, {z28.h-z29.h}, z31.h, z19[3]63// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:64 65bftmopa  za3.s, {z28.h-z29.h}, z31.h, z27[3]66// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3167// CHECK-NEXT: bftmopa  za3.s, {z28.h-z29.h}, z31.h, z27[3]68// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:69 70bftmopa  za0.h, {z28.h-z29.h}, z31.h, z21.h[3]71// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3172// CHECK-NEXT: bftmopa  za0.h, {z28.h-z29.h}, z31.h, z21.h[3]73// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:74 75bftmopa  za0.s, {z28.h-z29.h}, z31.h, z30.h[3]76// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3177// CHECK-NEXT: bftmopa  za0.s, {z28.h-z29.h}, z31.h, z30.h[3]78// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:79 80// --------------------------------------------------------------------------//81// Invalid immediate82 83bftmopa  za0.h, {z28.h-z29.h}, z31.h, z20[4]84// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]85// CHECK-NEXT: bftmopa  za0.h, {z28.h-z29.h}, z31.h, z20[4]86// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:87 88bftmopa  za3.s, {z28.h-z29.h}, z31.h, z20[4]89// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]90// CHECK-NEXT: bftmopa  za3.s, {z28.h-z29.h}, z31.h, z20[4]91// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:92 93// --------------------------------------------------------------------------//94// Invalid ZPR type suffix95 96bftmopa  za0.h, {z28.h-z29.h}, z31.s, z20[3]97// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width98// CHECK-NEXT: bftmopa  za0.h, {z28.h-z29.h}, z31.s, z20[3]99// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:100 101bftmopa  za0.h, {z28.b-z29.b}, z31.b, z20[3]102// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction103// CHECK-NEXT: bftmopa  za0.h, {z28.b-z29.b}, z31.b, z20[3]104// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:105 106bftmopa  za3.s, {z28.h-z29.h}, z31.s, z20[3]107// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width108// CHECK-NEXT: bftmopa  za3.s, {z28.h-z29.h}, z31.s, z20[3]109// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:110 111bftmopa  za3.s, {z28.s-z29.s}, z31.s, z20[3]112// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction113// CHECK-NEXT: bftmopa  za3.s, {z28.s-z29.s}, z31.s, z20[3]114// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:115