Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / AArch64 / SVE2p1 / sqrshrn-diagnostics.s
bloba8972acf4b3466175f1c0656c925bcb0b44940d1
1 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s
3 // --------------------------------------------------------------------------//
4 // Invalid vector list
6 sqrshrn z0.h, {z0.s-z2.s}, #16
7 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
8 // CHECK-NEXT: sqrshrn z0.h, {z0.s-z2.s}, #16
9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
11 sqrshrn z0.h, {z1.s-z2.s}, #16
12 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive SVE vectors, where the first vector is a multiple of 2 and with matching element types
13 // CHECK-NEXT: sqrshrn z0.h, {z1.s-z2.s}, #16
14 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
16 // --------------------------------------------------------------------------//
17 // Invalid vector suffixes
19 sqrshrn z0.b, {z0.s-z1.s}, #16
20 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
21 // CHECK-NEXT: sqrshrn z0.b, {z0.s-z1.s}, #16
22 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
24 sqrshrn z0.h, {z0.d-z1.d}, #16
25 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
26 // CHECK-NEXT: sqrshrn z0.h, {z0.d-z1.d}, #16
27 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
29 // --------------------------------------------------------------------------//
30 // Invalid immediate
32 sqrshrn z0.h, {z0.s-z1.s}, #17
33 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16].
34 // CHECK-NEXT: sqrshrn z0.h, {z0.s-z1.s}, #17
35 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
37 sqrshrn z0.h, {z0.s-z1.s}, #0
38 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16].
39 // CHECK-NEXT: sqrshrn z0.h, {z0.s-z1.s}, #0
40 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: