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 // --------------------------------------------------------------------------//
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]+}}: