1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+faminmax 2>&1 < %s| FileCheck %s 2 3// --------------------------------------------------------------------------// 4// Incorrect operand 5 6famax {z0.h-z1.h}, {z0.d-z1.d}, {z0.s-z1.s} 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 8// CHECK-NEXT: famax {z0.h-z1.h}, {z0.d-z1.d}, {z0.s-z1.s} 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11famax {z28.s-z31.s}, {z28.h-z31.h}, {z28.d-z31.d} 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 13// CHECK-NEXT: famax {z28.s-z31.s}, {z28.h-z31.h}, {z28.d-z31.d 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16famin {z0.h-z1.h}, {z0.s-z1.s}, {z0.s-z1.s} 17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 18// CHECK-NEXT: famin {z0.h-z1.h}, {z0.s-z1.s}, {z0.s-z1.s} 19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 20 21// --------------------------------------------------------------------------// 22// Incorrect range of vectors 23 24famax {z1.d-z0.d}, {z0.d-z1.d}, {z0.d-z1.d} 25// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid number of vectors 26// CHECK-NEXT: famax {z1.d-z0.d}, {z0.d-z1.d}, {z0.d-z1.d} 27// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 28 29famax {z0.h-z3.h}, {z1.h-z4.h}, {z0.h-z3.h} 30// 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 types 31// CHECK-NEXT: famax {z0.h-z3.h}, {z1.h-z4.h}, {z0.h-z3.h} 32// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 33 34famax {z0.h-z3.h}, {z0.h-z3.h}, {z2.h-z5.h} 35// 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 types 36// CHECK-NEXT: famax {z0.h-z3.h}, {z0.h-z3.h}, {z2.h-z5.h} 37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 38 39famax {z3.h-z6.h}, {z0.h-z3.h}, {z0.h-z3.h} 40// 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 types 41// CHECK-NEXT: famax {z3.h-z6.h}, {z0.h-z3.h}, {z0.h-z3.h} 42// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 43 44famin {z30.h-z31.h}, {z31.h-z0.h}, {z0.h-z1.h} 45// 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 types 46// CHECK-NEXT: famin {z30.h-z31.h}, {z31.h-z0.h}, {z0.h-z1.h} 47// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 48 49famin {z29.d-z0.d}, {z0.d-z3.d}, {z0.d-z3.d} 50// 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 types 51// CHECK-NEXT: famin {z29.d-z0.d}, {z0.d-z3.d}, {z0.d-z3.d} 52// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 53 54famin {z0.d-z3.d}, {z30.d-z1.d}, {z0.d-z3.d} 55// 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 types 56// CHECK-NEXT: famin {z0.d-z3.d}, {z30.d-z1.d}, {z0.d-z3.d} 57// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 58 59famin {z0.d-z3.d}, {z0.d-z3.d}, {z28.d-z30.d} 60// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 61// CHECK-NEXT: famin {z0.d-z3.d}, {z0.d-z3.d}, {z28.d-z30.d} 62// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: