1 // RUN
: not llvm-mc
-triple arm
-mattr
=+dotprod
-show-encoding
< %s
2> %t
2 // RUN
: FileCheck
--check-prefix
=CHECK-ERROR
< %t %s
3 // RUN
: not llvm-mc
-triple thumb
-mattr
=+dotprod
-show-encoding
< %s
2> %t
4 // RUN
: FileCheck
--check-prefix
=CHECK-ERROR
< %t %s
6 // Only indices
0 an
1 should
be accepted
:
10 vudot.u8 q0
, q1
, d4
[2]
11 vsdot.s8 q0
, q1
, d4
[2]
13 // CHECK-ERROR
: error
: invalid operand for instruction
14 // CHECK-ERROR
: vudot.u8 d0
, d1
, d2
[2]
16 // CHECK-ERROR
: error
: invalid operand for instruction
17 // CHECK-ERROR
: vsdot.s8 d0
, d1
, d2
[2]
19 // CHECK-ERROR
: error
: invalid operand for instruction
20 // CHECK-ERROR
: vudot.u8 q0
, q1
, d4
[2]
22 // CHECK-ERROR
: error
: invalid operand for instruction
23 // CHECK-ERROR
: vsdot.s8 q0
, q1
, d4
[2]
26 // Only the lower
16 D-registers should
be accepted
:
28 vudot.u8 q0
, q1
, d16
[0]
29 vsdot.s8 q0
, q1
, d16
[0]
31 // CHECK-ERROR
: error
: operand must
be a register in range
[d0
, d15
]
32 // CHECK-ERROR
: vudot.u8 q0
, q1
, d16
[0]
34 // CHECK-ERROR
: error
: operand must
be a register in range
[d0
, d15
]
35 // CHECK-ERROR
: vsdot.s8 q0
, q1
, d16
[0]