79 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2 2>&1 < %s| FileCheck %s2 3sqshlu z0.b, p0/m, z0.b, #-14// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7]5// CHECK-NEXT: sqshlu z0.b, p0/m, z0.b, #-16// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:7 8sqshlu z0.b, p0/m, z0.b, #89// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 7]10// CHECK-NEXT: sqshlu z0.b, p0/m, z0.b, #811// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:12 13sqshlu z0.h, p0/m, z0.h, #-114// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 15]15// CHECK-NEXT: sqshlu z0.h, p0/m, z0.h, #-116// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:17 18sqshlu z0.h, p0/m, z0.h, #1619// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 15]20// CHECK-NEXT: sqshlu z0.h, p0/m, z0.h, #1621// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:22 23sqshlu z0.s, p0/m, z0.s, #-124// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 31]25// CHECK-NEXT: sqshlu z0.s, p0/m, z0.s, #-126// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:27 28sqshlu z0.s, p0/m, z0.s, #3229// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 31]30// CHECK-NEXT: sqshlu z0.s, p0/m, z0.s, #3231// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:32 33sqshlu z0.d, p0/m, z0.d, #-134// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 63]35// CHECK-NEXT: sqshlu z0.d, p0/m, z0.d, #-136// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:37 38sqshlu z0.d, p0/m, z0.d, #6439// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [0, 63]40// CHECK-NEXT: sqshlu z0.d, p0/m, z0.d, #6441// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:42 43 44// --------------------------------------------------------------------------//45// Source and Destination Registers must match46 47sqshlu z0.b, p0/m, z1.b, #048// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register49// CHECK-NEXT: sqshlu z0.b, p0/m, z1.b, #050// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:51 52 53// --------------------------------------------------------------------------//54// Element sizes must match55 56sqshlu z0.b, p0/m, z0.d, #057// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width58// CHECK-NEXT: sqshlu z0.b, p0/m, z0.d, #059// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:60 61sqshlu z0.d, p0/m, z0.b, #062// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width63// CHECK-NEXT: sqshlu z0.d, p0/m, z0.b, #064// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:65 66 67// --------------------------------------------------------------------------//68// Invalid predicate69 70sqshlu z0.b, p0/z, z0.b, #071// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction72// CHECK-NEXT: sqshlu z0.b, p0/z, z0.b, #073// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:74 75sqshlu z0.b, p8/m, z0.b, #076// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)77// CHECK-NEXT: sqshlu z0.b, p8/m, z0.b, #078// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:79