66 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2 2>&1 < %s| FileCheck %s2 3sqshrnt z30.b, z10.h, #04// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 8]5// CHECK-NEXT: sqshrnt z30.b, z10.h, #06// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:7 8sqshrnt z18.b, z27.h, #99// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 8]10// CHECK-NEXT: sqshrnt z18.b, z27.h, #911// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:12 13sqshrnt z26.h, z4.s, #014// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]15// CHECK-NEXT: sqshrnt z26.h, z4.s, #016// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:17 18sqshrnt z25.h, z10.s, #1719// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]20// CHECK-NEXT: sqshrnt z25.h, z10.s, #1721// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:22 23sqshrnt z17.s, z0.d, #024// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 32]25// CHECK-NEXT: sqshrnt z17.s, z0.d, #026// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:27 28sqshrnt z0.s, z15.d, #3329// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 32]30// CHECK-NEXT: sqshrnt z0.s, z15.d, #3331// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:32 33 34// --------------------------------------------------------------------------//35// Invalid element width36 37sqshrnt z0.b, z0.b, #138// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width39// CHECK-NEXT: sqshrnt z0.b, z0.b, #140// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:41 42sqshrnt z0.h, z0.h, #143// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width44// CHECK-NEXT: sqshrnt z0.h, z0.h, #145// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:46 47sqshrnt z0.s, z0.s, #148// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width49// CHECK-NEXT: sqshrnt z0.s, z0.s, #150// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:51 52sqshrnt z0.d, z0.d, #153// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width54// CHECK-NEXT: sqshrnt z0.d, z0.d, #155// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:56 57 58// --------------------------------------------------------------------------//59// Negative tests for instructions that are incompatible with movprfx60 61movprfx z31, z662sqshrnt z31.s, z31.d, #3263// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov64// CHECK-NEXT: sqshrnt z31.s, z31.d, #3265// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:66