brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · e5d8b24 Raw
99 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+faminmax 2>&1 < %s | FileCheck %s2// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+faminmax 2>&1 < %s | FileCheck %s3 4// FAMIN:5// Invalid predicate register6 7famin z0.h, p8/m, z0.h, z1.h8// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)9// CHECK-NEXT: famin z0.h, p8/m, z0.h, z1.h10// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:11 12famin z31.s, p7/z, z31.s, z30.s13// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction14// CHECK-NEXT: famin z31.s, p7/z, z31.s, z30.s15// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:16 17// --------------------------------------------------------------------------//18// Invalid vector suffix19 20famin z23.h, p3/m, z23.h, z13.s21// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width22// CHECK-NEXT: famin z23.h, p3/m, z23.h, z13.s23// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:24 25famin z23.b, p3/m, z23.d, z13.d26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width27// CHECK-NEXT: famin z23.b, p3/m, z23.d, z13.d28// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:29 30// --------------------------------------------------------------------------//31// Z register out of range32 33famin z31.s, p7/z, z31.s, z32.s34// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction35// CHECK-NEXT: famin z31.s, p7/z, z31.s, z32.s36// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:37 38famin z0.d, p0/m, z0.d, z35.d39// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction40// CHECK-NEXT: famin z0.d, p0/m, z0.d, z35.d41// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:42 43// --------------------------------------------------------------------------//44// Negative tests for instructions that are incompatible with movprfx45 46movprfx z20, z3147famin   z23.h, p3/m, z23.h, z13.h48// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx writing to a different destination49// CHECK-NEXT: famin   z23.h, p3/m, z23.h, z13.h50// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:51 52 53// FMAX:54// Invalid predicate register55 56famax z0.h, p8/m, z0.h, z1.h57// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)58// CHECK-NEXT: famax z0.h, p8/m, z0.h, z1.h59// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:60 61famax z31.s, p7/z, z31.s, z30.s62// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction63// CHECK-NEXT: famax z31.s, p7/z, z31.s, z30.s64// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:65 66// --------------------------------------------------------------------------//67// Invalid vector suffix68 69famax z23.h, p3/m, z23.h, z13.s70// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width71// CHECK-NEXT: famax z23.h, p3/m, z23.h, z13.s72// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:73 74famax z23.b, p3/m, z23.d, z13.d75// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width76// CHECK-NEXT: famax z23.b, p3/m, z23.d, z13.d77// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:78 79// --------------------------------------------------------------------------//80// Z register out of range81 82famax z31.s, p7/z, z31.s, z32.s83// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction84// CHECK-NEXT: famax z31.s, p7/z, z31.s, z32.s85// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:86 87famax z0.d, p0/m, z0.d, z35.d88// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction89// CHECK-NEXT: famax z0.d, p0/m, z0.d, z35.d90// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:91 92// --------------------------------------------------------------------------//93// Negative tests for instructions that are incompatible with movprfx94 95movprfx z20, z3196famax   z23.h, p3/m, z23.h, z13.h97// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx writing to a different destination98// CHECK-NEXT: famax   z23.h, p3/m, z23.h, z13.h99// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: