brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 3fa4bc6 Raw
101 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-tmop 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid ZA register5 6utmopa  za4.s, {z30.b-z31.b}, z31.b, z31[3]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction8// CHECK-NEXT: utmopa  za4.s, {z30.b-z31.b}, z31.b, z31[3]9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11utmopa  za4.s, {z30.h-z31.h}, z31.h, z31[3]12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction13// CHECK-NEXT: utmopa  za4.s, {z30.h-z31.h}, z31.h, z31[3]14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16// --------------------------------------------------------------------------//17// Invalid vector list operand18 19utmopa  za3.s, {z29.b-z30.b}, z31.b, z31[3]20// 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 types21// CHECK-NEXT: utmopa  za3.s, {z29.b-z30.b}, z31.b, z31[3]22// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:23 24utmopa  za3.s, {z29.h-z30.h}, z31.h, z31[3]25// 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 types26// CHECK-NEXT: utmopa  za3.s, {z29.h-z30.h}, z31.h, z31[3]27// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:28 29// --------------------------------------------------------------------------//30// Invalid ZK register31utmopa  za3.s, {z28.b-z29.b}, z31.b, z19[3]32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3133// CHECK-NEXT: utmopa  za3.s, {z28.b-z29.b}, z31.b, z19[3]34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36utmopa  za3.s, {z28.b-z29.b}, z31.b, z24[3]37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3138// CHECK-NEXT: utmopa  za3.s, {z28.b-z29.b}, z31.b, z24[3]39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41utmopa  za3.s, {z28.b-z29.b}, z31.b, z27[3]42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3143// CHECK-NEXT: utmopa  za3.s, {z28.b-z29.b}, z31.b, z27[3]44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:45 46utmopa  za3.s, {z28.h-z29.h}, z31.h, z19[3]47// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3148// CHECK-NEXT: utmopa  za3.s, {z28.h-z29.h}, z31.h, z19[3]49// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:50 51utmopa  za3.s, {z28.h-z29.h}, z31.h, z24[3]52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3153// CHECK-NEXT: utmopa  za3.s, {z28.h-z29.h}, z31.h, z24[3]54// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:55 56utmopa  za3.s, {z28.h-z29.h}, z31.h, z27[3]57// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted vector register, expected register in z20..z23 or z28..z3158// CHECK-NEXT: utmopa  za3.s, {z28.h-z29.h}, z31.h, z27[3]59// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:60 61// --------------------------------------------------------------------------//62// Invalid immediate63 64utmopa  za3.s, {z28.b-z29.b}, z31.b, z20[4]65// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].66// CHECK-NEXT: utmopa  za3.s, {z28.b-z29.b}, z31.b, z20[4]67// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:68 69utmopa  za3.s, {z28.h-z29.h}, z31.h, z20[4]70// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].71// CHECK-NEXT: utmopa  za3.s, {z28.h-z29.h}, z31.h, z20[4]72// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:73 74// --------------------------------------------------------------------------//75// Invalid ZPR type suffix76 77utmopa  za0.h, {z28.b-z29.b}, z31.b, z20[2]78// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s79// CHECK-NEXT: utmopa  za0.h, {z28.b-z29.b}, z31.b, z20[2]80// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:81 82utmopa  za0.h, {z28.h-z29.h}, z31.h, z20[2]83// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s84// CHECK-NEXT: utmopa  za0.h, {z28.h-z29.h}, z31.h, z20[2]85// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:86 87utmopa  za3.s, {z28.s-z29.s}, z31.s, z20[2]88// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction89// CHECK-NEXT: utmopa  za3.s, {z28.s-z29.s}, z31.s, z20[2]90// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:91 92utmopa  za3.d, {z28.s-z29.s}, z31.s, z20[3]93// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s94// CHECK-NEXT: utmopa  za3.d, {z28.s-z29.s}, z31.s, z20[3]95// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:96 97utmopa  za3.d, {z28.h-z29.h}, z31.h, z20[3]98// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected za[0-3].s99// CHECK-NEXT: utmopa  za3.d, {z28.h-z29.h}, z31.h, z20[3]100// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:101