86 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=fp8fma 2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Element size extension incorrect5fmlalb v0.8h, v0.8b, v0.8b6// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction7// CHECK-NEXT: fmlalb v0.8h, v0.8b, v0.8b8// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:9 10fmlalt v31.8h, v31.16b, v31.16h11// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid vector kind qualifier12// CHECK-NEXT: fmlalt v31.8h, v31.16b, v31.16h13// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:14 15fmlallbb v0.4s, v0, v3116// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction17// CHECK-NEXT: fmlallbb v0.4s, v0, v3118// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:19 20fmlallbt v31.4b, v31.16b, v0.16b21// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction22// CHECK-NEXT: fmlallbt v31.4b, v31.16b, v0.16b23// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:24 25fmlalltb v31.b, v31.16b, v0.16b26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction27// CHECK-NEXT: fmlalltb v31.b, v31.16b, v0.16b28// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:29 30fmlalltt v0.4s, v0.16b, v31.b31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction32// CHECK-NEXT: fmlalltt v0.4s, v0.16b, v31.b33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:34 35fmlalt v31.8s, v31.16b, v31.16b36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid vector kind qualifier37// CHECK-NEXT: fmlalt v31.8s, v31.16b, v31.16b38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:39 40 41//--------------------------------------------------------------------------//42// Last Register range is between 0-743 44fmlalltb v0.4s, v31.16b, v8.b[0]45// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction46// CHECK-NEXT: fmlalltb v0.4s, v31.16b, v8.b[0]47// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}$48 49fmlalt v31.8h, v0.16b, v8.b[15]50// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction51// CHECK-NEXT: fmlalt v31.8h, v0.16b, v8.b[15]52// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:$53 54 55// --------------------------------------------------------------------------//56// Out of range index57fmlalb v31.8h, v0.16b, v0.b[-1]58// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].59// CHECK-NEXT: fmlalb v31.8h, v0.16b, v0.b[-1]60// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:61 62fmlalt v31.8h, v0.16b, v0.b[16]63// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].64// CHECK-NEXT: fmlalt v31.8h, v0.16b, v0.b[16]65// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:66 67fmlallbb v31.4s, v0.16b, v7.b[-1]68// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].69// CHECK-NEXT: fmlallbb v31.4s, v0.16b, v7.b[-1]70// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:71 72fmlalltt v31.4s, v0.16b, v7.b[16]73// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].74// CHECK-NEXT: fmlalltt v31.4s, v0.16b, v7.b[16]75// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:76 77fmlalltb v0.4s, v31.16b, v7.b[-1]78// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].79// CHECK-NEXT: fmlalltb v0.4s, v31.16b, v7.b[-1]80// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}81 82fmlallbt v0.4s, v31.16b, v0.b[16]83// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].84// CHECK-NEXT: fmlallbt v0.4s, v31.16b, v0.b[16]85// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:86