xref: /aosp_15_r20/external/llvm/test/MC/AArch64/neon-3vdiff.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+crypto -mattr=+neon -show-encoding < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker// Check that the assembler can handle the documented syntax for AArch64
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
6*9880d681SAndroid Build Coastguard Worker// Instructions with 3 different vector data types
7*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
10*9880d681SAndroid Build Coastguard Worker// Long
11*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
14*9880d681SAndroid Build Coastguard Worker// Long - Variant 1
15*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Worker        saddl v0.8h, v1.8b, v2.8b
18*9880d681SAndroid Build Coastguard Worker        saddl v0.4s, v1.4h, v2.4h
19*9880d681SAndroid Build Coastguard Worker        saddl v0.2d, v1.2s, v2.2s
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker// CHECK: saddl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x00,0x22,0x0e]
22*9880d681SAndroid Build Coastguard Worker// CHECK: saddl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x00,0x62,0x0e]
23*9880d681SAndroid Build Coastguard Worker// CHECK: saddl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x00,0xa2,0x0e]
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker        saddl2 v0.4s, v1.8h, v2.8h
26*9880d681SAndroid Build Coastguard Worker        saddl2 v0.8h, v1.16b, v2.16b
27*9880d681SAndroid Build Coastguard Worker        saddl2 v0.2d, v1.4s, v2.4s
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker// CHECK: saddl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x00,0x62,0x4e]
30*9880d681SAndroid Build Coastguard Worker// CHECK: saddl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x00,0x22,0x4e]
31*9880d681SAndroid Build Coastguard Worker// CHECK: saddl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x00,0xa2,0x4e]
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker        uaddl v0.8h, v1.8b, v2.8b
34*9880d681SAndroid Build Coastguard Worker        uaddl v0.4s, v1.4h, v2.4h
35*9880d681SAndroid Build Coastguard Worker        uaddl v0.2d, v1.2s, v2.2s
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x00,0x22,0x2e]
38*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x00,0x62,0x2e]
39*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x00,0xa2,0x2e]
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Worker        uaddl2 v0.8h, v1.16b, v2.16b
42*9880d681SAndroid Build Coastguard Worker        uaddl2 v0.4s, v1.8h, v2.8h
43*9880d681SAndroid Build Coastguard Worker        uaddl2 v0.2d, v1.4s, v2.4s
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x00,0x22,0x6e]
46*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x00,0x62,0x6e]
47*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x00,0xa2,0x6e]
48*9880d681SAndroid Build Coastguard Worker
49*9880d681SAndroid Build Coastguard Worker        ssubl v0.8h, v1.8b, v2.8b
50*9880d681SAndroid Build Coastguard Worker        ssubl v0.4s, v1.4h, v2.4h
51*9880d681SAndroid Build Coastguard Worker        ssubl v0.2d, v1.2s, v2.2s
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x20,0x22,0x0e]
54*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x20,0x62,0x0e]
55*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x20,0xa2,0x0e]
56*9880d681SAndroid Build Coastguard Worker
57*9880d681SAndroid Build Coastguard Worker        ssubl2 v0.8h, v1.16b, v2.16b
58*9880d681SAndroid Build Coastguard Worker        ssubl2 v0.4s, v1.8h, v2.8h
59*9880d681SAndroid Build Coastguard Worker        ssubl2 v0.2d, v1.4s, v2.4s
60*9880d681SAndroid Build Coastguard Worker
61*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x20,0x22,0x4e]
62*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x20,0x62,0x4e]
63*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x20,0xa2,0x4e]
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Worker        usubl v0.8h, v1.8b, v2.8b
66*9880d681SAndroid Build Coastguard Worker        usubl v0.4s, v1.4h, v2.4h
67*9880d681SAndroid Build Coastguard Worker        usubl v0.2d, v1.2s, v2.2s
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Worker// CHECK: usubl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x20,0x22,0x2e]
70*9880d681SAndroid Build Coastguard Worker// CHECK: usubl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x20,0x62,0x2e]
71*9880d681SAndroid Build Coastguard Worker// CHECK: usubl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x20,0xa2,0x2e]
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Worker        usubl2 v0.8h, v1.16b, v2.16b
74*9880d681SAndroid Build Coastguard Worker        usubl2 v0.4s, v1.8h, v2.8h
75*9880d681SAndroid Build Coastguard Worker        usubl2 v0.2d, v1.4s, v2.4s
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Worker// CHECK: usubl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x20,0x22,0x6e]
78*9880d681SAndroid Build Coastguard Worker// CHECK: usubl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x20,0x62,0x6e]
79*9880d681SAndroid Build Coastguard Worker// CHECK: usubl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x20,0xa2,0x6e]
80*9880d681SAndroid Build Coastguard Worker
81*9880d681SAndroid Build Coastguard Worker        sabal v0.8h, v1.8b, v2.8b
82*9880d681SAndroid Build Coastguard Worker        sabal v0.4s, v1.4h, v2.4h
83*9880d681SAndroid Build Coastguard Worker        sabal v0.2d, v1.2s, v2.2s
84*9880d681SAndroid Build Coastguard Worker
85*9880d681SAndroid Build Coastguard Worker// CHECK: sabal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x50,0x22,0x0e]
86*9880d681SAndroid Build Coastguard Worker// CHECK: sabal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x50,0x62,0x0e]
87*9880d681SAndroid Build Coastguard Worker// CHECK: sabal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x50,0xa2,0x0e]
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Worker        sabal2 v0.8h, v1.16b, v2.16b
90*9880d681SAndroid Build Coastguard Worker        sabal2 v0.4s, v1.8h, v2.8h
91*9880d681SAndroid Build Coastguard Worker        sabal2 v0.2d, v1.4s, v2.4s
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Worker// CHECK: sabal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x50,0x22,0x4e]
94*9880d681SAndroid Build Coastguard Worker// CHECK: sabal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x50,0x62,0x4e]
95*9880d681SAndroid Build Coastguard Worker// CHECK: sabal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x50,0xa2,0x4e]
96*9880d681SAndroid Build Coastguard Worker
97*9880d681SAndroid Build Coastguard Worker        uabal v0.8h, v1.8b, v2.8b
98*9880d681SAndroid Build Coastguard Worker        uabal v0.4s, v1.4h, v2.4h
99*9880d681SAndroid Build Coastguard Worker        uabal v0.2d, v1.2s, v2.2s
100*9880d681SAndroid Build Coastguard Worker
101*9880d681SAndroid Build Coastguard Worker// CHECK: uabal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x50,0x22,0x2e]
102*9880d681SAndroid Build Coastguard Worker// CHECK: uabal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x50,0x62,0x2e]
103*9880d681SAndroid Build Coastguard Worker// CHECK: uabal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x50,0xa2,0x2e]
104*9880d681SAndroid Build Coastguard Worker
105*9880d681SAndroid Build Coastguard Worker        uabal2 v0.8h, v1.16b, v2.16b
106*9880d681SAndroid Build Coastguard Worker        uabal2 v0.4s, v1.8h, v2.8h
107*9880d681SAndroid Build Coastguard Worker        uabal2 v0.2d, v1.4s, v2.4s
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Worker// CHECK: uabal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x50,0x22,0x6e]
110*9880d681SAndroid Build Coastguard Worker// CHECK: uabal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x50,0x62,0x6e]
111*9880d681SAndroid Build Coastguard Worker// CHECK: uabal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x50,0xa2,0x6e]
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Worker        sabdl v0.8h, v1.8b, v2.8b
114*9880d681SAndroid Build Coastguard Worker        sabdl v0.4s, v1.4h, v2.4h
115*9880d681SAndroid Build Coastguard Worker        sabdl v0.2d, v1.2s, v2.2s
116*9880d681SAndroid Build Coastguard Worker
117*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x70,0x22,0x0e]
118*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x70,0x62,0x0e]
119*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x70,0xa2,0x0e]
120*9880d681SAndroid Build Coastguard Worker
121*9880d681SAndroid Build Coastguard Worker        sabdl2 v0.8h, v1.16b, v2.16b
122*9880d681SAndroid Build Coastguard Worker        sabdl2 v0.4s, v1.8h, v2.8h
123*9880d681SAndroid Build Coastguard Worker        sabdl2 v0.2d, v1.4s, v2.4s
124*9880d681SAndroid Build Coastguard Worker
125*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x70,0x22,0x4e]
126*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x70,0x62,0x4e]
127*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x70,0xa2,0x4e]
128*9880d681SAndroid Build Coastguard Worker
129*9880d681SAndroid Build Coastguard Worker        uabdl v0.8h, v1.8b, v2.8b
130*9880d681SAndroid Build Coastguard Worker        uabdl v0.4s, v1.4h, v2.4h
131*9880d681SAndroid Build Coastguard Worker        uabdl v0.2d, v1.2s, v2.2s
132*9880d681SAndroid Build Coastguard Worker
133*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x70,0x22,0x2e]
134*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x70,0x62,0x2e]
135*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x70,0xa2,0x2e]
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Worker        uabdl2 v0.8h, v1.16b, v2.16b
138*9880d681SAndroid Build Coastguard Worker        uabdl2 v0.4s, v1.8h, v2.8h
139*9880d681SAndroid Build Coastguard Worker        uabdl2 v0.2d, v1.4s, v2.4s
140*9880d681SAndroid Build Coastguard Worker
141*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x70,0x22,0x6e]
142*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x70,0x62,0x6e]
143*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x70,0xa2,0x6e]
144*9880d681SAndroid Build Coastguard Worker
145*9880d681SAndroid Build Coastguard Worker        smlal v0.8h, v1.8b, v2.8b
146*9880d681SAndroid Build Coastguard Worker        smlal v0.4s, v1.4h, v2.4h
147*9880d681SAndroid Build Coastguard Worker        smlal v0.2d, v1.2s, v2.2s
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Worker// CHECK: smlal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x80,0x22,0x0e]
150*9880d681SAndroid Build Coastguard Worker// CHECK: smlal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x80,0x62,0x0e]
151*9880d681SAndroid Build Coastguard Worker// CHECK: smlal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x80,0xa2,0x0e]
152*9880d681SAndroid Build Coastguard Worker
153*9880d681SAndroid Build Coastguard Worker        smlal2 v0.8h, v1.16b, v2.16b
154*9880d681SAndroid Build Coastguard Worker        smlal2 v0.4s, v1.8h, v2.8h
155*9880d681SAndroid Build Coastguard Worker        smlal2 v0.2d, v1.4s, v2.4s
156*9880d681SAndroid Build Coastguard Worker
157*9880d681SAndroid Build Coastguard Worker// CHECK: smlal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x80,0x22,0x4e]
158*9880d681SAndroid Build Coastguard Worker// CHECK: smlal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x80,0x62,0x4e]
159*9880d681SAndroid Build Coastguard Worker// CHECK: smlal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x80,0xa2,0x4e]
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Worker        umlal v0.8h, v1.8b, v2.8b
162*9880d681SAndroid Build Coastguard Worker        umlal v0.4s, v1.4h, v2.4h
163*9880d681SAndroid Build Coastguard Worker        umlal v0.2d, v1.2s, v2.2s
164*9880d681SAndroid Build Coastguard Worker
165*9880d681SAndroid Build Coastguard Worker// CHECK: umlal	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0x80,0x22,0x2e]
166*9880d681SAndroid Build Coastguard Worker// CHECK: umlal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x80,0x62,0x2e]
167*9880d681SAndroid Build Coastguard Worker// CHECK: umlal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x80,0xa2,0x2e]
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Worker        umlal2 v0.8h, v1.16b, v2.16b
170*9880d681SAndroid Build Coastguard Worker        umlal2 v0.4s, v1.8h, v2.8h
171*9880d681SAndroid Build Coastguard Worker        umlal2 v0.2d, v1.4s, v2.4s
172*9880d681SAndroid Build Coastguard Worker
173*9880d681SAndroid Build Coastguard Worker// CHECK: umlal2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0x80,0x22,0x6e]
174*9880d681SAndroid Build Coastguard Worker// CHECK: umlal2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0x80,0x62,0x6e]
175*9880d681SAndroid Build Coastguard Worker// CHECK: umlal2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0x80,0xa2,0x6e]
176*9880d681SAndroid Build Coastguard Worker
177*9880d681SAndroid Build Coastguard Worker        smlsl v0.8h, v1.8b, v2.8b
178*9880d681SAndroid Build Coastguard Worker        smlsl v0.4s, v1.4h, v2.4h
179*9880d681SAndroid Build Coastguard Worker        smlsl v0.2d, v1.2s, v2.2s
180*9880d681SAndroid Build Coastguard Worker
181*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xa0,0x22,0x0e]
182*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xa0,0x62,0x0e]
183*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xa0,0xa2,0x0e]
184*9880d681SAndroid Build Coastguard Worker
185*9880d681SAndroid Build Coastguard Worker        smlsl2 v0.8h, v1.16b, v2.16b
186*9880d681SAndroid Build Coastguard Worker        smlsl2 v0.4s, v1.8h, v2.8h
187*9880d681SAndroid Build Coastguard Worker        smlsl2 v0.2d, v1.4s, v2.4s
188*9880d681SAndroid Build Coastguard Worker
189*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xa0,0x22,0x4e]
190*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xa0,0x62,0x4e]
191*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xa0,0xa2,0x4e]
192*9880d681SAndroid Build Coastguard Worker
193*9880d681SAndroid Build Coastguard Worker        umlsl v0.8h, v1.8b, v2.8b
194*9880d681SAndroid Build Coastguard Worker        umlsl v0.4s, v1.4h, v2.4h
195*9880d681SAndroid Build Coastguard Worker        umlsl v0.2d, v1.2s, v2.2s
196*9880d681SAndroid Build Coastguard Worker
197*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xa0,0x22,0x2e]
198*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xa0,0x62,0x2e]
199*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xa0,0xa2,0x2e]
200*9880d681SAndroid Build Coastguard Worker
201*9880d681SAndroid Build Coastguard Worker        umlsl2 v0.8h, v1.16b, v2.16b
202*9880d681SAndroid Build Coastguard Worker        umlsl2 v0.4s, v1.8h, v2.8h
203*9880d681SAndroid Build Coastguard Worker        umlsl2 v0.2d, v1.4s, v2.4s
204*9880d681SAndroid Build Coastguard Worker
205*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xa0,0x22,0x6e]
206*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xa0,0x62,0x6e]
207*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xa0,0xa2,0x6e]
208*9880d681SAndroid Build Coastguard Worker
209*9880d681SAndroid Build Coastguard Worker        smull v0.8h, v1.8b, v2.8b
210*9880d681SAndroid Build Coastguard Worker        smull v0.4s, v1.4h, v2.4h
211*9880d681SAndroid Build Coastguard Worker        smull v0.2d, v1.2s, v2.2s
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Worker// CHECK: smull	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xc0,0x22,0x0e]
214*9880d681SAndroid Build Coastguard Worker// CHECK: smull	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xc0,0x62,0x0e]
215*9880d681SAndroid Build Coastguard Worker// CHECK: smull	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xc0,0xa2,0x0e]
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Worker        smull2 v0.8h, v1.16b, v2.16b
218*9880d681SAndroid Build Coastguard Worker        smull2 v0.4s, v1.8h, v2.8h
219*9880d681SAndroid Build Coastguard Worker        smull2 v0.2d, v1.4s, v2.4s
220*9880d681SAndroid Build Coastguard Worker
221*9880d681SAndroid Build Coastguard Worker// CHECK: smull2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xc0,0x22,0x4e]
222*9880d681SAndroid Build Coastguard Worker// CHECK: smull2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xc0,0x62,0x4e]
223*9880d681SAndroid Build Coastguard Worker// CHECK: smull2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xc0,0xa2,0x4e]
224*9880d681SAndroid Build Coastguard Worker
225*9880d681SAndroid Build Coastguard Worker        umull v0.8h, v1.8b, v2.8b
226*9880d681SAndroid Build Coastguard Worker        umull v0.4s, v1.4h, v2.4h
227*9880d681SAndroid Build Coastguard Worker        umull v0.2d, v1.2s, v2.2s
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Worker// CHECK: umull	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xc0,0x22,0x2e]
230*9880d681SAndroid Build Coastguard Worker// CHECK: umull	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xc0,0x62,0x2e]
231*9880d681SAndroid Build Coastguard Worker// CHECK: umull	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xc0,0xa2,0x2e]
232*9880d681SAndroid Build Coastguard Worker
233*9880d681SAndroid Build Coastguard Worker        umull2 v0.8h, v1.16b, v2.16b
234*9880d681SAndroid Build Coastguard Worker        umull2 v0.4s, v1.8h, v2.8h
235*9880d681SAndroid Build Coastguard Worker        umull2 v0.2d, v1.4s, v2.4s
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Worker// CHECK: umull2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xc0,0x22,0x6e]
238*9880d681SAndroid Build Coastguard Worker// CHECK: umull2	v0.4s, v1.8h, v2.8h     // encoding: [0x20,0xc0,0x62,0x6e]
239*9880d681SAndroid Build Coastguard Worker// CHECK: umull2	v0.2d, v1.4s, v2.4s     // encoding: [0x20,0xc0,0xa2,0x6e]
240*9880d681SAndroid Build Coastguard Worker
241*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
242*9880d681SAndroid Build Coastguard Worker// Long - Variant 2
243*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
244*9880d681SAndroid Build Coastguard Worker
245*9880d681SAndroid Build Coastguard Worker        sqdmlal v0.4s, v1.4h, v2.4h
246*9880d681SAndroid Build Coastguard Worker        sqdmlal v0.2d, v1.2s, v2.2s
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0x90,0x62,0x0e]
249*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0x90,0xa2,0x0e]
250*9880d681SAndroid Build Coastguard Worker
251*9880d681SAndroid Build Coastguard Worker        sqdmlal2 v0.4s, v1.8h, v2.8h
252*9880d681SAndroid Build Coastguard Worker        sqdmlal2 v0.2d, v1.4s, v2.4s
253*9880d681SAndroid Build Coastguard Worker
254*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal2	v0.4s, v1.8h, v2.8h // encoding: [0x20,0x90,0x62,0x4e]
255*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal2	v0.2d, v1.4s, v2.4s // encoding: [0x20,0x90,0xa2,0x4e]
256*9880d681SAndroid Build Coastguard Worker
257*9880d681SAndroid Build Coastguard Worker        sqdmlsl v0.4s, v1.4h, v2.4h
258*9880d681SAndroid Build Coastguard Worker        sqdmlsl v0.2d, v1.2s, v2.2s
259*9880d681SAndroid Build Coastguard Worker
260*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xb0,0x62,0x0e]
261*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xb0,0xa2,0x0e]
262*9880d681SAndroid Build Coastguard Worker
263*9880d681SAndroid Build Coastguard Worker        sqdmlsl2 v0.4s, v1.8h, v2.8h
264*9880d681SAndroid Build Coastguard Worker        sqdmlsl2 v0.2d, v1.4s, v2.4s
265*9880d681SAndroid Build Coastguard Worker
266*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl2	v0.4s, v1.8h, v2.8h // encoding: [0x20,0xb0,0x62,0x4e]
267*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl2	v0.2d, v1.4s, v2.4s // encoding: [0x20,0xb0,0xa2,0x4e]
268*9880d681SAndroid Build Coastguard Worker
269*9880d681SAndroid Build Coastguard Worker        sqdmull v0.4s, v1.4h, v2.4h
270*9880d681SAndroid Build Coastguard Worker        sqdmull v0.2d, v1.2s, v2.2s
271*9880d681SAndroid Build Coastguard Worker
272*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull	v0.4s, v1.4h, v2.4h     // encoding: [0x20,0xd0,0x62,0x0e]
273*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull	v0.2d, v1.2s, v2.2s     // encoding: [0x20,0xd0,0xa2,0x0e]
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Worker        sqdmull2 v0.4s, v1.8h, v2.8h
276*9880d681SAndroid Build Coastguard Worker        sqdmull2 v0.2d, v1.4s, v2.4s
277*9880d681SAndroid Build Coastguard Worker
278*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull2	v0.4s, v1.8h, v2.8h // encoding: [0x20,0xd0,0x62,0x4e]
279*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull2	v0.2d, v1.4s, v2.4s // encoding: [0x20,0xd0,0xa2,0x4e]
280*9880d681SAndroid Build Coastguard Worker
281*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
282*9880d681SAndroid Build Coastguard Worker// Long - Variant 3
283*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Worker        pmull v0.8h, v1.8b, v2.8b
286*9880d681SAndroid Build Coastguard Worker        pmull v0.1q, v1.1d, v2.1d
287*9880d681SAndroid Build Coastguard Worker
288*9880d681SAndroid Build Coastguard Worker// CHECK: pmull	v0.8h, v1.8b, v2.8b     // encoding: [0x20,0xe0,0x22,0x0e]
289*9880d681SAndroid Build Coastguard Worker// CHECK: pmull	v0.1q, v1.1d, v2.1d     // encoding: [0x20,0xe0,0xe2,0x0e]
290*9880d681SAndroid Build Coastguard Worker
291*9880d681SAndroid Build Coastguard Worker        pmull2 v0.8h, v1.16b, v2.16b
292*9880d681SAndroid Build Coastguard Worker        pmull2 v0.1q, v1.2d, v2.2d
293*9880d681SAndroid Build Coastguard Worker
294*9880d681SAndroid Build Coastguard Worker// CHECK: pmull2	v0.8h, v1.16b, v2.16b   // encoding: [0x20,0xe0,0x22,0x4e]
295*9880d681SAndroid Build Coastguard Worker// CHECK: pmull2	v0.1q, v1.2d, v2.2d     // encoding: [0x20,0xe0,0xe2,0x4e]
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
298*9880d681SAndroid Build Coastguard Worker// Widen
299*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
300*9880d681SAndroid Build Coastguard Worker
301*9880d681SAndroid Build Coastguard Worker        saddw v0.8h, v1.8h, v2.8b
302*9880d681SAndroid Build Coastguard Worker        saddw v0.4s, v1.4s, v2.4h
303*9880d681SAndroid Build Coastguard Worker        saddw v0.2d, v1.2d, v2.2s
304*9880d681SAndroid Build Coastguard Worker
305*9880d681SAndroid Build Coastguard Worker// CHECK: saddw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x10,0x22,0x0e]
306*9880d681SAndroid Build Coastguard Worker// CHECK: saddw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x10,0x62,0x0e]
307*9880d681SAndroid Build Coastguard Worker// CHECK: saddw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x10,0xa2,0x0e]
308*9880d681SAndroid Build Coastguard Worker
309*9880d681SAndroid Build Coastguard Worker        saddw2 v0.8h, v1.8h, v2.16b
310*9880d681SAndroid Build Coastguard Worker        saddw2 v0.4s, v1.4s, v2.8h
311*9880d681SAndroid Build Coastguard Worker        saddw2 v0.2d, v1.2d, v2.4s
312*9880d681SAndroid Build Coastguard Worker
313*9880d681SAndroid Build Coastguard Worker// CHECK: saddw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x10,0x22,0x4e]
314*9880d681SAndroid Build Coastguard Worker// CHECK: saddw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x10,0x62,0x4e]
315*9880d681SAndroid Build Coastguard Worker// CHECK: saddw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x10,0xa2,0x4e]
316*9880d681SAndroid Build Coastguard Worker
317*9880d681SAndroid Build Coastguard Worker        uaddw v0.8h, v1.8h, v2.8b
318*9880d681SAndroid Build Coastguard Worker        uaddw v0.4s, v1.4s, v2.4h
319*9880d681SAndroid Build Coastguard Worker        uaddw v0.2d, v1.2d, v2.2s
320*9880d681SAndroid Build Coastguard Worker
321*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x10,0x22,0x2e]
322*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x10,0x62,0x2e]
323*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x10,0xa2,0x2e]
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Worker        uaddw2 v0.8h, v1.8h, v2.16b
326*9880d681SAndroid Build Coastguard Worker        uaddw2 v0.4s, v1.4s, v2.8h
327*9880d681SAndroid Build Coastguard Worker        uaddw2 v0.2d, v1.2d, v2.4s
328*9880d681SAndroid Build Coastguard Worker
329*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x10,0x22,0x6e]
330*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x10,0x62,0x6e]
331*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x10,0xa2,0x6e]
332*9880d681SAndroid Build Coastguard Worker
333*9880d681SAndroid Build Coastguard Worker        ssubw v0.8h, v1.8h, v2.8b
334*9880d681SAndroid Build Coastguard Worker        ssubw v0.4s, v1.4s, v2.4h
335*9880d681SAndroid Build Coastguard Worker        ssubw v0.2d, v1.2d, v2.2s
336*9880d681SAndroid Build Coastguard Worker
337*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x30,0x22,0x0e]
338*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x30,0x62,0x0e]
339*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x30,0xa2,0x0e]
340*9880d681SAndroid Build Coastguard Worker
341*9880d681SAndroid Build Coastguard Worker        ssubw2 v0.8h, v1.8h, v2.16b
342*9880d681SAndroid Build Coastguard Worker        ssubw2 v0.4s, v1.4s, v2.8h
343*9880d681SAndroid Build Coastguard Worker        ssubw2 v0.2d, v1.2d, v2.4s
344*9880d681SAndroid Build Coastguard Worker
345*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x30,0x22,0x4e]
346*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x30,0x62,0x4e]
347*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x30,0xa2,0x4e]
348*9880d681SAndroid Build Coastguard Worker
349*9880d681SAndroid Build Coastguard Worker        usubw v0.8h, v1.8h, v2.8b
350*9880d681SAndroid Build Coastguard Worker        usubw v0.4s, v1.4s, v2.4h
351*9880d681SAndroid Build Coastguard Worker        usubw v0.2d, v1.2d, v2.2s
352*9880d681SAndroid Build Coastguard Worker
353*9880d681SAndroid Build Coastguard Worker// CHECK: usubw	v0.8h, v1.8h, v2.8b     // encoding: [0x20,0x30,0x22,0x2e]
354*9880d681SAndroid Build Coastguard Worker// CHECK: usubw	v0.4s, v1.4s, v2.4h     // encoding: [0x20,0x30,0x62,0x2e]
355*9880d681SAndroid Build Coastguard Worker// CHECK: usubw	v0.2d, v1.2d, v2.2s     // encoding: [0x20,0x30,0xa2,0x2e]
356*9880d681SAndroid Build Coastguard Worker
357*9880d681SAndroid Build Coastguard Worker        usubw2 v0.8h, v1.8h, v2.16b
358*9880d681SAndroid Build Coastguard Worker        usubw2 v0.4s, v1.4s, v2.8h
359*9880d681SAndroid Build Coastguard Worker        usubw2 v0.2d, v1.2d, v2.4s
360*9880d681SAndroid Build Coastguard Worker
361*9880d681SAndroid Build Coastguard Worker// CHECK: usubw2	v0.8h, v1.8h, v2.16b    // encoding: [0x20,0x30,0x22,0x6e]
362*9880d681SAndroid Build Coastguard Worker// CHECK: usubw2	v0.4s, v1.4s, v2.8h     // encoding: [0x20,0x30,0x62,0x6e]
363*9880d681SAndroid Build Coastguard Worker// CHECK: usubw2	v0.2d, v1.2d, v2.4s     // encoding: [0x20,0x30,0xa2,0x6e]
364*9880d681SAndroid Build Coastguard Worker
365*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
366*9880d681SAndroid Build Coastguard Worker// Narrow
367*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------
368*9880d681SAndroid Build Coastguard Worker
369*9880d681SAndroid Build Coastguard Worker        addhn v0.8b, v1.8h, v2.8h
370*9880d681SAndroid Build Coastguard Worker        addhn v0.4h, v1.4s, v2.4s
371*9880d681SAndroid Build Coastguard Worker        addhn v0.2s, v1.2d, v2.2d
372*9880d681SAndroid Build Coastguard Worker
373*9880d681SAndroid Build Coastguard Worker// CHECK: addhn	v0.8b, v1.8h, v2.8h     // encoding: [0x20,0x40,0x22,0x0e]
374*9880d681SAndroid Build Coastguard Worker// CHECK: addhn	v0.4h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x0e]
375*9880d681SAndroid Build Coastguard Worker// CHECK: addhn	v0.2s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x0e]
376*9880d681SAndroid Build Coastguard Worker
377*9880d681SAndroid Build Coastguard Worker        addhn2 v0.16b, v1.8h, v2.8h
378*9880d681SAndroid Build Coastguard Worker        addhn2 v0.8h, v1.4s, v2.4s
379*9880d681SAndroid Build Coastguard Worker        addhn2 v0.4s, v1.2d, v2.2d
380*9880d681SAndroid Build Coastguard Worker
381*9880d681SAndroid Build Coastguard Worker// CHECK: addhn2	v0.16b, v1.8h, v2.8h    // encoding: [0x20,0x40,0x22,0x4e]
382*9880d681SAndroid Build Coastguard Worker// CHECK: addhn2	v0.8h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x4e]
383*9880d681SAndroid Build Coastguard Worker// CHECK: addhn2	v0.4s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x4e]
384*9880d681SAndroid Build Coastguard Worker
385*9880d681SAndroid Build Coastguard Worker        raddhn v0.8b, v1.8h, v2.8h
386*9880d681SAndroid Build Coastguard Worker        raddhn v0.4h, v1.4s, v2.4s
387*9880d681SAndroid Build Coastguard Worker        raddhn v0.2s, v1.2d, v2.2d
388*9880d681SAndroid Build Coastguard Worker
389*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn	v0.8b, v1.8h, v2.8h     // encoding: [0x20,0x40,0x22,0x2e]
390*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn	v0.4h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x2e]
391*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn	v0.2s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x2e]
392*9880d681SAndroid Build Coastguard Worker
393*9880d681SAndroid Build Coastguard Worker        raddhn2 v0.16b, v1.8h, v2.8h
394*9880d681SAndroid Build Coastguard Worker        raddhn2 v0.8h, v1.4s, v2.4s
395*9880d681SAndroid Build Coastguard Worker        raddhn2 v0.4s, v1.2d, v2.2d
396*9880d681SAndroid Build Coastguard Worker
397*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn2	v0.16b, v1.8h, v2.8h    // encoding: [0x20,0x40,0x22,0x6e]
398*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn2	v0.8h, v1.4s, v2.4s     // encoding: [0x20,0x40,0x62,0x6e]
399*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn2	v0.4s, v1.2d, v2.2d     // encoding: [0x20,0x40,0xa2,0x6e]
400*9880d681SAndroid Build Coastguard Worker
401*9880d681SAndroid Build Coastguard Worker        rsubhn v0.8b, v1.8h, v2.8h
402*9880d681SAndroid Build Coastguard Worker        rsubhn v0.4h, v1.4s, v2.4s
403*9880d681SAndroid Build Coastguard Worker        rsubhn v0.2s, v1.2d, v2.2d
404*9880d681SAndroid Build Coastguard Worker
405*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn	v0.8b, v1.8h, v2.8h     // encoding: [0x20,0x60,0x22,0x2e]
406*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn	v0.4h, v1.4s, v2.4s     // encoding: [0x20,0x60,0x62,0x2e]
407*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn	v0.2s, v1.2d, v2.2d     // encoding: [0x20,0x60,0xa2,0x2e]
408*9880d681SAndroid Build Coastguard Worker
409*9880d681SAndroid Build Coastguard Worker        rsubhn2 v0.16b, v1.8h, v2.8h
410*9880d681SAndroid Build Coastguard Worker        rsubhn2 v0.8h, v1.4s, v2.4s
411*9880d681SAndroid Build Coastguard Worker        rsubhn2 v0.4s, v1.2d, v2.2d
412*9880d681SAndroid Build Coastguard Worker
413*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn2	v0.16b, v1.8h, v2.8h    // encoding: [0x20,0x60,0x22,0x6e]
414*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn2	v0.8h, v1.4s, v2.4s     // encoding: [0x20,0x60,0x62,0x6e]
415*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn2	v0.4s, v1.2d, v2.2d     // encoding: [0x20,0x60,0xa2,0x6e]
416