1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 2>&1 < %s | FileCheck %s 2 3// --------------------------------------------------------------------------// 4// Invalid lane indices 5 6luti2 {z0.h, z8.h}, zt0, z0[8] 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 8// CHECK-NEXT: luti2 {z0.h, z8.h}, zt0, z0[8] 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11luti2 {z0.h, z8.h}, zt0, z0[-1] 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 13// CHECK-NEXT: luti2 {z0.h, z8.h}, zt0, z0[-1] 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16luti2 {z0.h, z8.h}, zt0, z0[8] 17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 18// CHECK-NEXT: luti2 {z0.h, z8.h}, zt0, z0[8] 19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 20 21luti2 {z0.h, z8.h}, zt0, z0[-1] 22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 23// CHECK-NEXT: luti2 {z0.h, z8.h}, zt0, z0[-1] 24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 25 26luti2 {z0.b, z8.b}, zt0, z0[8] 27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 28// CHECK-NEXT: luti2 {z0.b, z8.b}, zt0, z0[8] 29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 30 31luti2 {z0.b, z8.b}, zt0, z0[-1] 32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 33// CHECK-NEXT: luti2 {z0.b, z8.b}, zt0, z0[-1] 34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 35 36luti2 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[4] 37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 38// CHECK-NEXT: luti2 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[4] 39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 40 41luti2 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[-1] 42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 43// CHECK-NEXT: luti2 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[-1] 44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 45 46luti2 {z19.b, z23.b, z27.b, z31.b}, zt0, z31[4] 47// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 48// CHECK-NEXT: luti2 {z19.b, z23.b, z27.b, z31.b}, zt0, z31[4] 49// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 50 51luti2 {z19.b, z23.b, z27.b, z31.b}, zt0, z31[-1] 52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 53// CHECK-NEXT: luti2 {z19.b, z23.b, z27.b, z31.b}, zt0, z31[-1] 54// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 55 56// --------------------------------------------------------------------------// 57// Invalid vector lists 58 59luti2 {z0.h, z9.h}, zt0, z0[2] 60// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 61// CHECK-NEXT: luti2 {z0.h, z9.h}, zt0, z0[2] 62// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 63 64// --------------------------------------------------------------------------// 65// Invalid vector suffix 66 67luti2 {z0.d, z2.d}, zt0, z0[3] 68// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction 69// CHECK-NEXT: luti2 {z0.d, z2.d}, zt0, z0[3] 70// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 71