[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / AArch64 / SVE2 / sqcadd-diagnostics.s
blobe399f9e87cfe90a04a024ca93a8d8fba930cd0d0
1 // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2 2>&1 < %s| FileCheck %s
3 // --------------------------------------------------------------------------//
4 // Source and Destination Registers must match
6 sqcadd z0.d, z1.d, z2.d, #90
7 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register
8 // CHECK-NEXT: sqcadd z0.d, z1.d, z2.d, #90
9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
12 // --------------------------------------------------------------------------//
13 // Invalid rotation
15 sqcadd z0.d, z0.d, z1.d, #0
16 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: complex rotation must be 90 or 270.
17 // CHECK-NEXT: sqcadd z0.d, z0.d, z1.d, #0
18 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
20 sqcadd z0.d, z0.d, z1.d, #180
21 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: complex rotation must be 90 or 270.
22 // CHECK-NEXT: sqcadd z0.d, z0.d, z1.d, #180
23 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
25 sqcadd z0.d, z0.d, z1.d, #450
26 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: complex rotation must be 90 or 270.
27 // CHECK-NEXT: sqcadd z0.d, z0.d, z1.d, #450
28 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
31 // --------------------------------------------------------------------------//
32 // Negative tests for instructions that are incompatible with movprfx
34 movprfx z0.d, p0/z, z7.d
35 sqcadd z0.d, z0.d, z31.d, #90
36 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx
37 // CHECK-NEXT: sqcadd z0.d, z0.d, z31.d, #90
38 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: