xref: /aosp_15_r20/external/llvm/test/MC/ARM/basic-arm-instructions-v8.1a.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker//RUN: not llvm-mc -triple thumb-none-linux-gnu -mattr=+v8.1a -mattr=neon -show-encoding < %s 2>%t | FileCheck %s --check-prefix=CHECK-V81aTHUMB
2*9880d681SAndroid Build Coastguard Worker//RUN: FileCheck --check-prefix=CHECK-ERROR <%t %s
3*9880d681SAndroid Build Coastguard Worker//RUN: not llvm-mc -triple arm-none-linux-gnu -mattr=+v8.1a -mattr=neon -show-encoding < %s 2>%t | FileCheck %s --check-prefix=CHECK-V81aARM
4*9880d681SAndroid Build Coastguard Worker//RUN: FileCheck --check-prefix=CHECK-ERROR <%t %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker//RUN: not llvm-mc -triple thumb-none-linux-gnu -mattr=+v8 -mattr=neon -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-V8
7*9880d681SAndroid Build Coastguard Worker//RUN: not llvm-mc -triple arm-none-linux-gnu -mattr=+v8 -mattr=neon -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK-V8
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker  .text
11*9880d681SAndroid Build Coastguard Worker//CHECK-V8THUMB: .text
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker  vqrdmlah.i8   q0, q1, q2
14*9880d681SAndroid Build Coastguard Worker  vqrdmlah.u16  d0, d1, d2
15*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.f32  q3, q4, q5
16*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.f64  d3, d5, d5
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
19*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlah.i8   q0, q1, q2
20*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
21*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
22*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlah.u16  d0, d1, d2
23*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
24*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
25*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlsh.f32  q3, q4, q5
26*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
27*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
28*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlsh.f64  d3, d5, d5
29*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
30*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: invalid operand for instruction
31*9880d681SAndroid Build Coastguard Worker//CHECK-V8:   vqrdmlah.i8   q0, q1, q2
32*9880d681SAndroid Build Coastguard Worker//CHECK-V8:           ^
33*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: invalid operand for instruction
34*9880d681SAndroid Build Coastguard Worker//CHECK-V8:   vqrdmlah.u16  d0, d1, d2
35*9880d681SAndroid Build Coastguard Worker//CHECK-V8:           ^
36*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: invalid operand for instruction
37*9880d681SAndroid Build Coastguard Worker//CHECK-V8:   vqrdmlsh.f32  q3, q4, q5
38*9880d681SAndroid Build Coastguard Worker//CHECK-V8:           ^
39*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: invalid operand for instruction
40*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.f64  d3, d5, d5
41*9880d681SAndroid Build Coastguard Worker//CHECK-V8:           ^
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s16    d0, d1, d2
44*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s16  d0, d1, d2      @ encoding: [0x12,0x0b,0x11,0xf3]
45*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s16  d0, d1, d2      @ encoding: [0x11,0xff,0x12,0x0b]
46*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
47*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s16    d0, d1, d2
48*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s32  d0, d1, d2
51*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s32  d0, d1, d2      @ encoding: [0x12,0x0b,0x21,0xf3]
52*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s32  d0, d1, d2      @ encoding: [0x21,0xff,0x12,0x0b]
53*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
54*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s32  d0, d1, d2
55*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
56*9880d681SAndroid Build Coastguard Worker
57*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s16  q0, q1, q2
58*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s16  q0, q1, q2      @ encoding: [0x54,0x0b,0x12,0xf3]
59*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s16  q0, q1, q2      @ encoding: [0x12,0xff,0x54,0x0b]
60*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
61*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s16  q0, q1, q2
62*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s32  q2, q3, q0
65*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s32  q2, q3, q0      @ encoding: [0x50,0x4b,0x26,0xf3]
66*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s32  q2, q3, q0      @ encoding: [0x26,0xff,0x50,0x4b]
67*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
68*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s32  q2, q3, q0
69*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Worker
72*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s16  d7, d6, d5
73*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s16  d7, d6, d5      @ encoding: [0x15,0x7c,0x16,0xf3]
74*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s16  d7, d6, d5      @ encoding: [0x16,0xff,0x15,0x7c]
75*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
76*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s16  d7, d6, d5
77*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s32  d0, d1, d2
80*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s32  d0, d1, d2      @ encoding: [0x12,0x0c,0x21,0xf3]
81*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s32  d0, d1, d2      @ encoding: [0x21,0xff,0x12,0x0c]
82*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
83*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s32  d0, d1, d2
84*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s16  q0, q1, q2
87*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s16  q0, q1, q2      @ encoding: [0x54,0x0c,0x12,0xf3]
88*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s16  q0, q1, q2      @ encoding: [0x12,0xff,0x54,0x0c]
89*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
90*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s16  q0, q1, q2
91*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s32    q3, q4, q5
94*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s32  q3, q4, q5      @ encoding: [0x5a,0x6c,0x28,0xf3]
95*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s32  q3, q4, q5      @ encoding: [0x28,0xff,0x5a,0x6c]
96*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
97*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s32  q3, q4, q5
98*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
99*9880d681SAndroid Build Coastguard Worker
100*9880d681SAndroid Build Coastguard Worker
101*9880d681SAndroid Build Coastguard Worker  vqrdmlah.i8   q0, q1, d9[7]
102*9880d681SAndroid Build Coastguard Worker  vqrdmlah.u16  d0, d1, d2[3]
103*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.f32  q3, q4, d5[1]
104*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.f64  d3, d5, d5[0]
105*9880d681SAndroid Build Coastguard Worker
106*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
107*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlah.i8   q0, q1, d9[7]
108*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
109*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
110*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlah.u16  d0, d1, d2[3]
111*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
112*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
113*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlsh.f32  q3, q4, d5[1]
114*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
115*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
116*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:   vqrdmlsh.f64  d3, d5, d5[0]
117*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:           ^
118*9880d681SAndroid Build Coastguard Worker
119*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s16  d0, d1, d2[0]
120*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s16 d0, d1, d2[0]    @ encoding: [0x42,0x0e,0x91,0xf2]
121*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s16  d0, d1, d2[0]   @ encoding: [0x91,0xef,0x42,0x0e]
122*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
123*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s16  d0, d1, d2[0]
124*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s32  d0, d1, d2[0]
127*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s32 d0, d1, d2[0]    @ encoding: [0x42,0x0e,0xa1,0xf2]
128*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s32  d0, d1, d2[0]   @ encoding: [0xa1,0xef,0x42,0x0e]
129*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
130*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s32  d0, d1, d2[0]
131*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s16  q0, q1, d2[0]
134*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s16  q0, q1, d2[0]   @ encoding: [0x42,0x0e,0x92,0xf3]
135*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s16  q0, q1, d2[0]   @ encoding: [0x92,0xff,0x42,0x0e]
136*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
137*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s16  q0, q1, d2[0]
138*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Worker  vqrdmlah.s32  q0, q1, d2[0]
141*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlah.s32  q0, q1, d2[0]   @ encoding: [0x42,0x0e,0xa2,0xf3]
142*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlah.s32  q0, q1, d2[0]   @ encoding: [0xa2,0xff,0x42,0x0e]
143*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
144*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlah.s32  q0, q1, d2[0]
145*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
146*9880d681SAndroid Build Coastguard Worker
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s16  d0, d1, d2[0]
149*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s16 d0, d1, d2[0]    @ encoding: [0x42,0x0f,0x91,0xf2]
150*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s16  d0, d1, d2[0]   @ encoding: [0x91,0xef,0x42,0x0f]
151*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
152*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s16  d0, d1, d2[0]
153*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
154*9880d681SAndroid Build Coastguard Worker
155*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s32  d0, d1, d2[0]
156*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s32 d0, d1, d2[0]    @ encoding: [0x42,0x0f,0xa1,0xf2]
157*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s32  d0, d1, d2[0]   @ encoding: [0xa1,0xef,0x42,0x0f]
158*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
159*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s32  d0, d1, d2[0]
160*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s16  q0, q1, d2[0]
163*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s16 q0, q1, d2[0]    @ encoding: [0x42,0x0f,0x92,0xf3]
164*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s16  q0, q1, d2[0]   @ encoding: [0x92,0xff,0x42,0x0f]
165*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
166*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s16  q0, q1, d2[0]
167*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Worker  vqrdmlsh.s32  q0, q1, d2[0]
170*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:   vqrdmlsh.s32 q0, q1, d2[0]    @ encoding: [0x42,0x0f,0xa2,0xf3]
171*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB: vqrdmlsh.s32  q0, q1, d2[0]   @ encoding: [0xa2,0xff,0x42,0x0f]
172*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
173*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  vqrdmlsh.s32  q0, q1, d2[0]
174*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Worker  setpan  #0
177*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB:  setpan  #0                @       encoding: [0x10,0xb6]
178*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:    setpan  #0                @       encoding: [0x00,0x00,0x10,0xf1]
179*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
180*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  setpan  #0
181*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
182*9880d681SAndroid Build Coastguard Worker
183*9880d681SAndroid Build Coastguard Worker  setpan  #1
184*9880d681SAndroid Build Coastguard Worker//CHECK-V81aTHUMB:  setpan  #1                @       encoding: [0x18,0xb6]
185*9880d681SAndroid Build Coastguard Worker//CHECK-V81aARM:    setpan  #1                @       encoding: [0x00,0x02,0x10,0xf1]
186*9880d681SAndroid Build Coastguard Worker//CHECK-V8: error: instruction requires: armv8.1a
187*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  setpan  #1
188*9880d681SAndroid Build Coastguard Worker//CHECK-V8:  ^
189*9880d681SAndroid Build Coastguard Worker  setpan
190*9880d681SAndroid Build Coastguard Worker  setpan #-1
191*9880d681SAndroid Build Coastguard Worker  setpan #2
192*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: too few operands for instruction
193*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:  setpan
194*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:  ^
195*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
196*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:  setpan #-1
197*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:         ^
198*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction
199*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:  setpan #2
200*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR:         ^
201*9880d681SAndroid Build Coastguard Worker
202*9880d681SAndroid Build Coastguard Worker  it eq
203*9880d681SAndroid Build Coastguard Worker  setpaneq #0
204*9880d681SAndroid Build Coastguard Worker//CHECK-THUMB-ERROR: error: instruction 'setpan' is not predicable, but condition code specified
205*9880d681SAndroid Build Coastguard Worker//CHECK-THUMB-ERROR:  setpaneq #0
206*9880d681SAndroid Build Coastguard Worker//CHECK-THUMB-ERROR:  ^
207