1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s 2 3// --------------------------------------------------------------------------// 4// Invalid vector lane index 5 6dupq z0.b, z0.b[16] 7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15]. 8// CHECK-NEXT: dupq z0.b, z0.b[16] 9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 10 11dupq z0.b, z0.b[-1] 12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15]. 13// CHECK-NEXT: dupq z0.b, z0.b[-1] 14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 15 16dupq z0.h, z0.h[8] 17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 18// CHECK-NEXT: dupq z0.h, z0.h[8] 19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 20 21dupq z0.h, z0.h[-1] 22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7]. 23// CHECK-NEXT: dupq z0.h, z0.h[-1] 24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 25 26dupq z0.s, z0.s[4] 27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 28// CHECK-NEXT: dupq z0.s, z0.s[4] 29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 30 31dupq z0.s, z0.s[-1] 32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3]. 33// CHECK-NEXT: dupq z0.s, z0.s[-1] 34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 35 36dupq z0.d, z0.d[2] 37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1]. 38// CHECK-NEXT: dupq z0.d, z0.d[2] 39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 40 41dupq z0.d, z0.d[-1] 42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1]. 43// CHECK-NEXT: dupq z0.d, z0.d[-1] 44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 45 46// --------------------------------------------------------------------------// 47// Invalid vector suffix 48 49dupq z0.s, z0.h[2] 50// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width 51// CHECK-NEXT: dupq z0.s, z0.h[2] 52// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: 53