244 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -mattr=+sme-mop4,+sme-f64f64 < %s 2>&1 | FileCheck %s2 3// FMOP4A4 5// Single vectors6 7fmop4a za0.s, z0.d, z16.d8// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.s..z14.s9 10fmop4a za8.d, z0.d, z16.d11// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction12 13fmop4a za0.d, z0.s, z16.d14// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d15 16fmop4a za0.d, z15.d, z16.d17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d18 19fmop4a za0.d, z16.d, z16.d20// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d21 22fmop4a za0.d, z0.d, z16.s23// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d24 25fmop4a za0.d, z12.d, z17.d26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d27 28fmop4a za0.d, z12.d, z14.d29// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d30 31fmop4a za0.d, z12.d, z31.d32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d33 34// Single and multiple vectors35 36fmop4a za0.s, z0.d, {z16.d-z17.d}37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.s..z14.s38 39fmop4a za8.d, z0.d, {z16.d-z17.d}40// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction41 42fmop4a za0.d, z0.s, {z16.d-z17.d}43// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d44 45fmop4a za0.d, z1.d, {z16.d-z17.d}46// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d47 48fmop4a za0.d, z16.d, {z16.d-z17.d}49// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d50 51fmop4a za0.d, z0.d, {z16.s-z17.s}52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction53 54fmop4a za0.d, z0.d, {z17.d-z18.d}55// 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 types56 57fmop4a za0.d, z0.d, {z16.d-z18.d}58// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction59 60fmop4a za0.d, z0.d, {z12.d-z13.d}61// 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 types62 63// Multiple and single vectors64 65fmop4a za0.s, {z0.d-z1.d}, z16.d66// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction67 68fmop4a za8.d, {z0.d-z1.d}, z16.d69// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction70 71fmop4a za0.d, {z0.s-z1.s}, z16.d72// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction73 74fmop4a za0.d, {z1.d-z2.d}, z16.d75// 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 types76 77fmop4a za0.d, {z0.d-z2.d}, z16.d78// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction79 80fmop4a za0.d, {z16.d-z17.d}, z16.d81// 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 types82 83fmop4a za0.d, {z0.d-z1.d}, z16.s84// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d85 86fmop4a za0.d, {z0.d-z1.d}, z17.d87// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d88 89fmop4a za0.d, {z0.d-z1.d}, z12.d90// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d91 92// Multiple vectors93 94fmop4a za0.s, {z0.d-z1.d}, {z16.d-z17.d}95// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction96 97fmop4a za8.d, {z0.d-z1.d}, {z16.d-z17.d}98// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction99 100fmop4a za0.d, {z0.s-z1.s}, {z16.d-z17.d}101// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction102 103fmop4a za0.d, {z1.d-z2.d}, {z16.d-z17.d}104// 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 types105 106fmop4a za0.d, {z0.d-z2.d}, {z16.d-z17.d}107// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction108 109fmop4a za0.d, {z18.d-z19.d}, {z16.d-z17.d}110// 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 types111 112fmop4a za0.d, {z0.d-z1.d}, {z16.s-z17.s}113// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction114 115fmop4a za0.d, {z0.d-z1.d}, {z19.d-z20.d}116// 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 types117 118fmop4a za0.d, {z0.d-z1.d}, {z16.d-z18.d}119// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction120 121fmop4a za0.d, {z0.d-z1.d}, {z10.d-z11.d}122// 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 types123 124// FMOP4S125 126// Single vectors127 128fmop4s za0.s, z0.d, z16.d129// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.s..z14.s130 131fmop4s za8.d, z0.d, z16.d132// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction133 134fmop4s za0.d, z0.s, z16.d135// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d136 137fmop4s za0.d, z15.d, z16.d138// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d139 140fmop4s za0.d, z16.d, z16.d141// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d142 143fmop4s za0.d, z0.d, z16.s144// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d145 146fmop4s za0.d, z12.d, z17.d147// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d148 149fmop4s za0.d, z12.d, z14.d150// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d151 152fmop4s za0.d, z12.d, z31.d153// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d154 155// Single and multiple vectors156 157fmop4s za0.s, z0.d, {z16.d-z17.d}158// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.s..z14.s159 160fmop4s za8.d, z0.d, {z16.d-z17.d}161// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction162 163fmop4s za0.d, z0.s, {z16.d-z17.d}164// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d165 166fmop4s za0.d, z1.d, {z16.d-z17.d}167// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d168 169fmop4s za0.d, z16.d, {z16.d-z17.d}170// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z0.d..z14.d171 172fmop4s za0.d, z0.d, {z16.s-z17.s}173// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction174 175fmop4s za0.d, z0.d, {z17.d-z18.d}176// 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 types177 178fmop4s za0.d, z0.d, {z16.d-z18.d}179// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction180 181fmop4s za0.d, z0.d, {z12.d-z13.d}182// 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 types183 184// Multiple and single vectors185 186fmop4s za0.s, {z0.d-z1.d}, z16.d187// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction188 189fmop4s za8.d, {z0.d-z1.d}, z16.d190// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction191 192fmop4s za0.d, {z0.s-z1.s}, z16.d193// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction194 195fmop4s za0.d, {z1.d-z2.d}, z16.d196// 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 types197 198fmop4s za0.d, {z0.d-z2.d}, z16.d199// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction200 201fmop4s za0.d, {z16.d-z17.d}, z16.d202// 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 types203 204fmop4s za0.d, {z0.d-z1.d}, z16.s205// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d206 207fmop4s za0.d, {z0.d-z1.d}, z17.d208// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d209 210fmop4s za0.d, {z0.d-z1.d}, z12.d211// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid restricted vector register, expected even register in z16.d..z30.d212 213// Multiple vectors214 215fmop4s za0.s, {z0.d-z1.d}, {z16.d-z17.d}216// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction217 218fmop4s za8.d, {z0.d-z1.d}, {z16.d-z17.d}219// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction220 221fmop4s za0.d, {z0.s-z1.s}, {z16.d-z17.d}222// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction223 224fmop4s za0.d, {z1.d-z2.d}, {z16.d-z17.d}225// 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 types226 227fmop4s za0.d, {z0.d-z2.d}, {z16.d-z17.d}228// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction229 230fmop4s za0.d, {z18.d-z19.d}, {z16.d-z17.d}231// 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 types232 233fmop4s za0.d, {z0.d-z1.d}, {z16.s-z17.s}234// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction235 236fmop4s za0.d, {z0.d-z1.d}, {z19.d-z20.d}237// 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 types238 239fmop4s za0.d, {z0.d-z1.d}, {z16.d-z18.d}240// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction241 242fmop4s za0.d, {z0.d-z1.d}, {z10.d-z11.d}243// 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 types244