92 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sme-f64f64 2>&1 < %s | FileCheck %s2 3// --------------------------------------------------------------------------//4// Out of range index offset5 6fmla za.s[w8, 8], {z20.s-z21.s}, z10.s7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7].8// CHECK-NEXT: fmla za.s[w8, 8], {z20.s-z21.s}, z10.s9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11fmla za.d[w8, -1, vgx4], {z0.s-z3.s}, z0.s12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7].13// CHECK-NEXT: fmla za.d[w8, -1, vgx4], {z0.s-z3.s}, z0.s14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16fmla za.s[w8, 8], {z0.s - z1.s}, {z2.s - z3.s}17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7].18// CHECK-NEXT: fmla za.s[w8, 8], {z0.s - z1.s}, {z2.s - z3.s}19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21fmla za.s[w8, -1], {z0.s - z3.s}, {z4.s - z7.s}22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7].23// CHECK-NEXT: fmla za.s[w8, -1], {z0.s - z3.s}, {z4.s - z7.s}24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26// --------------------------------------------------------------------------//27// Invalid vector select register28 29fmla za.d[w7, 0], {z0.d-z3.d}, z0.d30// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must be a register in range [w8, w11]31// CHECK-NEXT: fmla za.d[w7, 0], {z0.d-z3.d}, z0.d32// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:33 34fmla za.s[w12, 0], {z0.s-z1.s}, z0.s35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must be a register in range [w8, w11]36// CHECK-NEXT: fmla za.s[w12, 0], {z0.s-z1.s}, z0.s37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:38 39fmla za.s[w7, 0], {z0.s - z1.s}, {z2.s - z3.s}40// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must be a register in range [w8, w11]41// CHECK-NEXT: fmla za.s[w7, 0], {z0.s - z1.s}, {z2.s - z3.s}42// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:$43 44// --------------------------------------------------------------------------//45// Invalid Matrix Operand46 47fmla za.b[w8, #0], {z0.b-z3.b}, z4.b48// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid matrix operand, expected suffix .d49// CHECK-NEXT: fmla za.b[w8, #0], {z0.b-z3.b}, z4.b50// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:51 52// --------------------------------------------------------------------------//53// Invalid vector grouping54 55fmla za.s[w8, 0, vgx4], {z0.s-z1.s}, z0.s56// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction57// CHECK-NEXT: za.s[w8, 0, vgx4], {z0.s-z1.s}, z0.s58// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:59 60fmla za.d[w8, 0, vgx2], {z0.d-z3.d}, z0.d61// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction62// CHECK-NEXT: za.d[w8, 0, vgx2], {z0.d-z3.d}, z0.d63// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:64 65// --------------------------------------------------------------------------//66// Invalid vector list.67 68fmla za.d[w8, 0], {z0.d,z2.d}, {z0.d,z2.d}69// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction70// CHECK-NEXT: fmla za.d[w8, 0], {z0.d,z2.d}, {z0.d,z2.d}71// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:72 73fmla za.s[w10, 3, vgx2], {z10.s-z11.s}, {z21.s-z22.s}74// 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 types75// CHECK-NEXT: fmla za.s[w10, 3, vgx2], {z10.s-z11.s}, {z21.s-z22.s}76// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:77 78fmla za.d[w11, 7, vgx4], {z12.d-z15.d}, {z9.d-z12.d}79// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 4 consecutive SVE vectors, where the first vector is a multiple of 4 and with matching element types80// CHECK-NEXT: fmla za.d[w11, 7, vgx4], {z12.d-z15.d}, {z9.d-z12.d}81// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:82 83fmla za.s[w10, 3], {z10.b-z11.b}, {z20.b-z21.b}84// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction85// CHECK-NEXT: fmla za.s[w10, 3], {z10.b-z11.b}, {z20.b-z21.b}86// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:87 88fmla za.d[w11, 7], {z28.h - z31.h}, {z28.h - z31.h}89// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction90// CHECK-NEXT: fmla za.d[w11, 7], {z28.h - z31.h}, {z28.h - z31.h}91// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:92