83 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-mop4,+sme-i16i64 2>&1 < %s| FileCheck %s2 3// ------------------------------------------------------------------------- //4// Invalid tile5//6// expected: .s => za0-za3, .d => za0-za77 8smop4a za4.s, z0.b, z16.b9// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction10// CHECK-NEXT: smop4a za4.s, z0.b, z16.b11// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:12 13smop4a za4.s, z0.h, z16.h14// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction15// CHECK-NEXT: smop4a za4.s, z0.h, z16.h16// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:17 18smop4a za8.d, z0.h, z16.h19// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction20// CHECK-NEXT: smop4a za8.d, z0.h, z16.h21// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:22 23// ------------------------------------------------------------------------- //24// Invalid first operand (expected z0..z15)25 26smop4a za0.d, z16.h, z16.h27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.h..z14.h28// CHECK-NEXT: smop4a za0.d, z16.h, z16.h29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31smop4a za0.s, {z16.h-z17.h}, z16.h32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors in the range z0-z14, where the first vector is a multiple of 2 and with matching element types33// CHECK-NEXT: smop4a za0.s, {z16.h-z17.h}, z16.h34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36smop4a za0.s, z16.b, z16.b37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.b..z14.b38// CHECK-NEXT: smop4a za0.s, z16.b, z16.b39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41// ------------------------------------------------------------------------- //42// Invalid second operand (expected z16..z31)43 44smop4a za0.d, z14.h, z14.h45// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.h..z30.h46// CHECK-NEXT: smop4a za0.d, z14.h, z14.h47// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:48 49smop4a za0.s, z14.h, {z14.h-z15.h}50// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors in the range z16-z30, where the first vector is a multiple of 2 and with matching element types51// CHECK-NEXT: smop4a za0.s, z14.h, {z14.h-z15.h}52// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:53 54smop4a za0.s, z14.b, z14.b55// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.b..z30.b56// CHECK-NEXT: smop4a za0.s, z14.b, z14.b57// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:58 59// ------------------------------------------------------------------------- //60// Invalid ZPR type suffix61//62// expected: .s => .b, .s => .h, .d => .h63 64smop4a za3.s, z0.h, z16.b65// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.h..z30.h66// CHECK-NEXT: smop4a za3.s, z0.h, z16.b67// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:68 69smop4a za3.s, z0.b, z16.s70// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.b..z30.b71// CHECK-NEXT: smop4a za3.s, z0.b, z16.s72// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:73 74smop4a za3.d, z0.h, z16.b75// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.h..z30.h76// CHECK-NEXT: smop4a za3.d, z0.h, z16.b77// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:78 79smop4a za3.d, z0.s, z16.h80// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.h..z14.h81// CHECK-NEXT: smop4a za3.d, z0.s, z16.h82// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:83