1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+fp8dot2,+fp8dot4 2>&1 < %s| FileCheck %s 2 3// --------------------------------------------------------------------------// 4// Element size extension incorrect 5 6fdot v31.4h, v0.8h, v0.8b 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 8// CHECK-NEXT: fdot v31.4h, v0.8h, v0.8b 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11fdot v31.8h, v0.16b, v31.16h 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid vector kind qualifier 13// CHECK-NEXT: fdot v31.8h, v0.16b, v31.16h 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16fdot v0.2s, v0.8s, v31.8b 17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid vector kind qualifier 18// CHECK-NEXT: fdot v0.2s, v0.8s, v31.8b 19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 20 21fdot v31.4s, v0, v31.16b 22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 23// CHECK-NEXT: fdot v31.4s, v0, v31.16b 24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 25 26//--------------------------------------------------------------------------// 27// Last Register range is between 0-15 28 29fdot v31.4h, v31.8b, v16.2b[0] 30// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 31// CHECK-NEXT: fdot v31.4h, v31.8b, v16.2b[0] 32// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 33 34fdot v0.8h, v0.16b, v16.2b[7] 35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 36// CHECK-NEXT: fdot v0.8h, v0.16b, v16.2b[7] 37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 38 39// --------------------------------------------------------------------------// 40// Out of range index 41fdot v31.4h, v31.8b, v15.2b[-1] 42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 43// CHECK-NEXT: fdot v31.4h, v31.8b, v15.2b[-1] 44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 45 46fdot v0.8h, v0.16b, v15.2b[8] 47// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 48// CHECK-NEXT: fdot v0.8h, v0.16b, v15.2b[8] 49// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 50 51fdot v0.2s, v0.8b, v31.4b[-1] 52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 53// CHECK-NEXT: fdot v0.2s, v0.8b, v31.4b[-1] 54// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 55 56fdot v0.4s, v31.16b, v0.4b[4] 57// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 58// CHECK-NEXT: fdot v0.4s, v31.16b, v0.4b[4] 59// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 60