xref: /aosp_15_r20/external/llvm/test/CodeGen/AArch64/arm64-neon-mul-div.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -verify-machineinstrs -mtriple=arm64-none-linux-gnu -mattr=+neon | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; arm64 has its own copy of this because of the intrinsics
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @mul8xi8(<8 x i8> %A, <8 x i8> %B) {
5*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul8xi8:
6*9880d681SAndroid Build Coastguard Worker; CHECK: mul {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
7*9880d681SAndroid Build Coastguard Worker	%tmp3 = mul <8 x i8> %A, %B;
8*9880d681SAndroid Build Coastguard Worker	ret <8 x i8> %tmp3
9*9880d681SAndroid Build Coastguard Worker}
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @mul16xi8(<16 x i8> %A, <16 x i8> %B) {
12*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul16xi8:
13*9880d681SAndroid Build Coastguard Worker; CHECK: mul {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
14*9880d681SAndroid Build Coastguard Worker	%tmp3 = mul <16 x i8> %A, %B;
15*9880d681SAndroid Build Coastguard Worker	ret <16 x i8> %tmp3
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @mul4xi16(<4 x i16> %A, <4 x i16> %B) {
19*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul4xi16:
20*9880d681SAndroid Build Coastguard Worker; CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h
21*9880d681SAndroid Build Coastguard Worker	%tmp3 = mul <4 x i16> %A, %B;
22*9880d681SAndroid Build Coastguard Worker	ret <4 x i16> %tmp3
23*9880d681SAndroid Build Coastguard Worker}
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @mul8xi16(<8 x i16> %A, <8 x i16> %B) {
26*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul8xi16:
27*9880d681SAndroid Build Coastguard Worker; CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h
28*9880d681SAndroid Build Coastguard Worker	%tmp3 = mul <8 x i16> %A, %B;
29*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp3
30*9880d681SAndroid Build Coastguard Worker}
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @mul2xi32(<2 x i32> %A, <2 x i32> %B) {
33*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul2xi32:
34*9880d681SAndroid Build Coastguard Worker; CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
35*9880d681SAndroid Build Coastguard Worker	%tmp3 = mul <2 x i32> %A, %B;
36*9880d681SAndroid Build Coastguard Worker	ret <2 x i32> %tmp3
37*9880d681SAndroid Build Coastguard Worker}
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @mul4x32(<4 x i32> %A, <4 x i32> %B) {
40*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul4x32:
41*9880d681SAndroid Build Coastguard Worker; CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
42*9880d681SAndroid Build Coastguard Worker	%tmp3 = mul <4 x i32> %A, %B;
43*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp3
44*9880d681SAndroid Build Coastguard Worker}
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @mul1xi64(<1 x i64> %A, <1 x i64> %B) {
47*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul1xi64:
48*9880d681SAndroid Build Coastguard Worker; CHECK: mul x{{[0-9]+}}, x{{[0-9]+}}, x{{[0-9]+}}
49*9880d681SAndroid Build Coastguard Worker  %tmp3 = mul <1 x i64> %A, %B;
50*9880d681SAndroid Build Coastguard Worker  ret <1 x i64> %tmp3
51*9880d681SAndroid Build Coastguard Worker}
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @mul2xi64(<2 x i64> %A, <2 x i64> %B) {
54*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul2xi64:
55*9880d681SAndroid Build Coastguard Worker; CHECK: mul x{{[0-9]+}}, x{{[0-9]+}}, x{{[0-9]+}}
56*9880d681SAndroid Build Coastguard Worker; CHECK: mul x{{[0-9]+}}, x{{[0-9]+}}, x{{[0-9]+}}
57*9880d681SAndroid Build Coastguard Worker  %tmp3 = mul <2 x i64> %A, %B;
58*9880d681SAndroid Build Coastguard Worker  ret <2 x i64> %tmp3
59*9880d681SAndroid Build Coastguard Worker}
60*9880d681SAndroid Build Coastguard Worker
61*9880d681SAndroid Build Coastguard Worker define <2 x float> @mul2xfloat(<2 x float> %A, <2 x float> %B) {
62*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul2xfloat:
63*9880d681SAndroid Build Coastguard Worker; CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
64*9880d681SAndroid Build Coastguard Worker	%tmp3 = fmul <2 x float> %A, %B;
65*9880d681SAndroid Build Coastguard Worker	ret <2 x float> %tmp3
66*9880d681SAndroid Build Coastguard Worker}
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @mul4xfloat(<4 x float> %A, <4 x float> %B) {
69*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul4xfloat:
70*9880d681SAndroid Build Coastguard Worker; CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
71*9880d681SAndroid Build Coastguard Worker	%tmp3 = fmul <4 x float> %A, %B;
72*9880d681SAndroid Build Coastguard Worker	ret <4 x float> %tmp3
73*9880d681SAndroid Build Coastguard Worker}
74*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @mul2xdouble(<2 x double> %A, <2 x double> %B) {
75*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: mul2xdouble:
76*9880d681SAndroid Build Coastguard Worker; CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
77*9880d681SAndroid Build Coastguard Worker	%tmp3 = fmul <2 x double> %A, %B;
78*9880d681SAndroid Build Coastguard Worker	ret <2 x double> %tmp3
79*9880d681SAndroid Build Coastguard Worker}
80*9880d681SAndroid Build Coastguard Worker
81*9880d681SAndroid Build Coastguard Worker
82*9880d681SAndroid Build Coastguard Worker define <2 x float> @div2xfloat(<2 x float> %A, <2 x float> %B) {
83*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: div2xfloat:
84*9880d681SAndroid Build Coastguard Worker; CHECK: fdiv {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
85*9880d681SAndroid Build Coastguard Worker	%tmp3 = fdiv <2 x float> %A, %B;
86*9880d681SAndroid Build Coastguard Worker	ret <2 x float> %tmp3
87*9880d681SAndroid Build Coastguard Worker}
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @div4xfloat(<4 x float> %A, <4 x float> %B) {
90*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: div4xfloat:
91*9880d681SAndroid Build Coastguard Worker; CHECK: fdiv {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s
92*9880d681SAndroid Build Coastguard Worker	%tmp3 = fdiv <4 x float> %A, %B;
93*9880d681SAndroid Build Coastguard Worker	ret <4 x float> %tmp3
94*9880d681SAndroid Build Coastguard Worker}
95*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @div2xdouble(<2 x double> %A, <2 x double> %B) {
96*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: div2xdouble:
97*9880d681SAndroid Build Coastguard Worker; CHECK: fdiv {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d
98*9880d681SAndroid Build Coastguard Worker	%tmp3 = fdiv <2 x double> %A, %B;
99*9880d681SAndroid Build Coastguard Worker	ret <2 x double> %tmp3
100*9880d681SAndroid Build Coastguard Worker}
101*9880d681SAndroid Build Coastguard Worker
102*9880d681SAndroid Build Coastguard Workerdefine <1 x i8> @sdiv1x8(<1 x i8> %A, <1 x i8> %B) {
103*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv1x8:
104*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
105*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <1 x i8> %A, %B;
106*9880d681SAndroid Build Coastguard Worker	ret <1 x i8> %tmp3
107*9880d681SAndroid Build Coastguard Worker}
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @sdiv8x8(<8 x i8> %A, <8 x i8> %B) {
110*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv8x8:
111*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
112*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
113*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
114*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
115*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
116*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
117*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
118*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
119*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <8 x i8> %A, %B;
120*9880d681SAndroid Build Coastguard Worker	ret <8 x i8> %tmp3
121*9880d681SAndroid Build Coastguard Worker}
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @sdiv16x8(<16 x i8> %A, <16 x i8> %B) {
124*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv16x8:
125*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
126*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
127*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
128*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
129*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
130*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
131*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
132*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
133*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
134*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
135*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
136*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
137*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
138*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
139*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
140*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
141*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <16 x i8> %A, %B;
142*9880d681SAndroid Build Coastguard Worker	ret <16 x i8> %tmp3
143*9880d681SAndroid Build Coastguard Worker}
144*9880d681SAndroid Build Coastguard Worker
145*9880d681SAndroid Build Coastguard Workerdefine <1 x i16> @sdiv1x16(<1 x i16> %A, <1 x i16> %B) {
146*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv1x16:
147*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
148*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <1 x i16> %A, %B;
149*9880d681SAndroid Build Coastguard Worker	ret <1 x i16> %tmp3
150*9880d681SAndroid Build Coastguard Worker}
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @sdiv4x16(<4 x i16> %A, <4 x i16> %B) {
153*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv4x16:
154*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
155*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
156*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
157*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
158*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <4 x i16> %A, %B;
159*9880d681SAndroid Build Coastguard Worker	ret <4 x i16> %tmp3
160*9880d681SAndroid Build Coastguard Worker}
161*9880d681SAndroid Build Coastguard Worker
162*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @sdiv8x16(<8 x i16> %A, <8 x i16> %B) {
163*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv8x16:
164*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
165*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
166*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
167*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
168*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
169*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
170*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
171*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
172*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <8 x i16> %A, %B;
173*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp3
174*9880d681SAndroid Build Coastguard Worker}
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Workerdefine <1 x i32> @sdiv1x32(<1 x i32> %A, <1 x i32> %B) {
177*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv1x32:
178*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
179*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <1 x i32> %A, %B;
180*9880d681SAndroid Build Coastguard Worker	ret <1 x i32> %tmp3
181*9880d681SAndroid Build Coastguard Worker}
182*9880d681SAndroid Build Coastguard Worker
183*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @sdiv2x32(<2 x i32> %A, <2 x i32> %B) {
184*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv2x32:
185*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
186*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
187*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <2 x i32> %A, %B;
188*9880d681SAndroid Build Coastguard Worker	ret <2 x i32> %tmp3
189*9880d681SAndroid Build Coastguard Worker}
190*9880d681SAndroid Build Coastguard Worker
191*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @sdiv4x32(<4 x i32> %A, <4 x i32> %B) {
192*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv4x32:
193*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
194*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
195*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
196*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
197*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <4 x i32> %A, %B;
198*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp3
199*9880d681SAndroid Build Coastguard Worker}
200*9880d681SAndroid Build Coastguard Worker
201*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @sdiv1x64(<1 x i64> %A, <1 x i64> %B) {
202*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv1x64:
203*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
204*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <1 x i64> %A, %B;
205*9880d681SAndroid Build Coastguard Worker	ret <1 x i64> %tmp3
206*9880d681SAndroid Build Coastguard Worker}
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @sdiv2x64(<2 x i64> %A, <2 x i64> %B) {
209*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: sdiv2x64:
210*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
211*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
212*9880d681SAndroid Build Coastguard Worker	%tmp3 = sdiv <2 x i64> %A, %B;
213*9880d681SAndroid Build Coastguard Worker	ret <2 x i64> %tmp3
214*9880d681SAndroid Build Coastguard Worker}
215*9880d681SAndroid Build Coastguard Worker
216*9880d681SAndroid Build Coastguard Workerdefine <1 x i8> @udiv1x8(<1 x i8> %A, <1 x i8> %B) {
217*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv1x8:
218*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
219*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <1 x i8> %A, %B;
220*9880d681SAndroid Build Coastguard Worker	ret <1 x i8> %tmp3
221*9880d681SAndroid Build Coastguard Worker}
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @udiv8x8(<8 x i8> %A, <8 x i8> %B) {
224*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv8x8:
225*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
226*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
227*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
228*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
229*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
230*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
231*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
232*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
233*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <8 x i8> %A, %B;
234*9880d681SAndroid Build Coastguard Worker	ret <8 x i8> %tmp3
235*9880d681SAndroid Build Coastguard Worker}
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @udiv16x8(<16 x i8> %A, <16 x i8> %B) {
238*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv16x8:
239*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
240*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
241*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
242*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
243*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
244*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
245*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
246*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
247*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
248*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
249*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
250*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
251*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
252*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
253*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
254*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
255*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <16 x i8> %A, %B;
256*9880d681SAndroid Build Coastguard Worker	ret <16 x i8> %tmp3
257*9880d681SAndroid Build Coastguard Worker}
258*9880d681SAndroid Build Coastguard Worker
259*9880d681SAndroid Build Coastguard Workerdefine <1 x i16> @udiv1x16(<1 x i16> %A, <1 x i16> %B) {
260*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv1x16:
261*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
262*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <1 x i16> %A, %B;
263*9880d681SAndroid Build Coastguard Worker	ret <1 x i16> %tmp3
264*9880d681SAndroid Build Coastguard Worker}
265*9880d681SAndroid Build Coastguard Worker
266*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @udiv4x16(<4 x i16> %A, <4 x i16> %B) {
267*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv4x16:
268*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
269*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
270*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
271*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
272*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <4 x i16> %A, %B;
273*9880d681SAndroid Build Coastguard Worker	ret <4 x i16> %tmp3
274*9880d681SAndroid Build Coastguard Worker}
275*9880d681SAndroid Build Coastguard Worker
276*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @udiv8x16(<8 x i16> %A, <8 x i16> %B) {
277*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv8x16:
278*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
279*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
280*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
281*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
282*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
283*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
284*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
285*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
286*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <8 x i16> %A, %B;
287*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp3
288*9880d681SAndroid Build Coastguard Worker}
289*9880d681SAndroid Build Coastguard Worker
290*9880d681SAndroid Build Coastguard Workerdefine <1 x i32> @udiv1x32(<1 x i32> %A, <1 x i32> %B) {
291*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv1x32:
292*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
293*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <1 x i32> %A, %B;
294*9880d681SAndroid Build Coastguard Worker	ret <1 x i32> %tmp3
295*9880d681SAndroid Build Coastguard Worker}
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @udiv2x32(<2 x i32> %A, <2 x i32> %B) {
298*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv2x32:
299*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
300*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
301*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <2 x i32> %A, %B;
302*9880d681SAndroid Build Coastguard Worker	ret <2 x i32> %tmp3
303*9880d681SAndroid Build Coastguard Worker}
304*9880d681SAndroid Build Coastguard Worker
305*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @udiv4x32(<4 x i32> %A, <4 x i32> %B) {
306*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv4x32:
307*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
308*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
309*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
310*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
311*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <4 x i32> %A, %B;
312*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp3
313*9880d681SAndroid Build Coastguard Worker}
314*9880d681SAndroid Build Coastguard Worker
315*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @udiv1x64(<1 x i64> %A, <1 x i64> %B) {
316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv1x64:
317*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
318*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <1 x i64> %A, %B;
319*9880d681SAndroid Build Coastguard Worker	ret <1 x i64> %tmp3
320*9880d681SAndroid Build Coastguard Worker}
321*9880d681SAndroid Build Coastguard Worker
322*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @udiv2x64(<2 x i64> %A, <2 x i64> %B) {
323*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: udiv2x64:
324*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
325*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
326*9880d681SAndroid Build Coastguard Worker	%tmp3 = udiv <2 x i64> %A, %B;
327*9880d681SAndroid Build Coastguard Worker	ret <2 x i64> %tmp3
328*9880d681SAndroid Build Coastguard Worker}
329*9880d681SAndroid Build Coastguard Worker
330*9880d681SAndroid Build Coastguard Workerdefine <1 x i8> @srem1x8(<1 x i8> %A, <1 x i8> %B) {
331*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem1x8:
332*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
333*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
334*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <1 x i8> %A, %B;
335*9880d681SAndroid Build Coastguard Worker	ret <1 x i8> %tmp3
336*9880d681SAndroid Build Coastguard Worker}
337*9880d681SAndroid Build Coastguard Worker
338*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @srem8x8(<8 x i8> %A, <8 x i8> %B) {
339*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem8x8:
340*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
341*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
342*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
343*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
344*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
345*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
346*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
347*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
348*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
349*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
350*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
351*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
352*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
353*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
354*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
355*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
356*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <8 x i8> %A, %B;
357*9880d681SAndroid Build Coastguard Worker	ret <8 x i8> %tmp3
358*9880d681SAndroid Build Coastguard Worker}
359*9880d681SAndroid Build Coastguard Worker
360*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @srem16x8(<16 x i8> %A, <16 x i8> %B) {
361*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem16x8:
362*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
363*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
364*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
365*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
366*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
367*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
368*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
369*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
370*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
371*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
372*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
373*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
374*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
375*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
376*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
377*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
378*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
379*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
380*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
381*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
382*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
383*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
384*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
385*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
386*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
387*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
388*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
389*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
390*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
391*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
392*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
393*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
394*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <16 x i8> %A, %B;
395*9880d681SAndroid Build Coastguard Worker	ret <16 x i8> %tmp3
396*9880d681SAndroid Build Coastguard Worker}
397*9880d681SAndroid Build Coastguard Worker
398*9880d681SAndroid Build Coastguard Workerdefine <1 x i16> @srem1x16(<1 x i16> %A, <1 x i16> %B) {
399*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem1x16:
400*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
401*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
402*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <1 x i16> %A, %B;
403*9880d681SAndroid Build Coastguard Worker	ret <1 x i16> %tmp3
404*9880d681SAndroid Build Coastguard Worker}
405*9880d681SAndroid Build Coastguard Worker
406*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @srem4x16(<4 x i16> %A, <4 x i16> %B) {
407*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem4x16:
408*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
409*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
410*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
411*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
412*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
413*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
414*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
415*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
416*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <4 x i16> %A, %B;
417*9880d681SAndroid Build Coastguard Worker	ret <4 x i16> %tmp3
418*9880d681SAndroid Build Coastguard Worker}
419*9880d681SAndroid Build Coastguard Worker
420*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @srem8x16(<8 x i16> %A, <8 x i16> %B) {
421*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem8x16:
422*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
423*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
424*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
425*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
426*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
427*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
428*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
429*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
430*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
431*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
432*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
433*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
434*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
435*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
436*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
437*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
438*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <8 x i16> %A, %B;
439*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp3
440*9880d681SAndroid Build Coastguard Worker}
441*9880d681SAndroid Build Coastguard Worker
442*9880d681SAndroid Build Coastguard Workerdefine <1 x i32> @srem1x32(<1 x i32> %A, <1 x i32> %B) {
443*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem1x32:
444*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
445*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
446*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <1 x i32> %A, %B;
447*9880d681SAndroid Build Coastguard Worker	ret <1 x i32> %tmp3
448*9880d681SAndroid Build Coastguard Worker}
449*9880d681SAndroid Build Coastguard Worker
450*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @srem2x32(<2 x i32> %A, <2 x i32> %B) {
451*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem2x32:
452*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
453*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
454*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
455*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
456*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <2 x i32> %A, %B;
457*9880d681SAndroid Build Coastguard Worker	ret <2 x i32> %tmp3
458*9880d681SAndroid Build Coastguard Worker}
459*9880d681SAndroid Build Coastguard Worker
460*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @srem4x32(<4 x i32> %A, <4 x i32> %B) {
461*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem4x32:
462*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
463*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
464*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
465*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
466*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
467*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
468*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
469*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
470*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <4 x i32> %A, %B;
471*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp3
472*9880d681SAndroid Build Coastguard Worker}
473*9880d681SAndroid Build Coastguard Worker
474*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @srem1x64(<1 x i64> %A, <1 x i64> %B) {
475*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem1x64:
476*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
477*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
478*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <1 x i64> %A, %B;
479*9880d681SAndroid Build Coastguard Worker	ret <1 x i64> %tmp3
480*9880d681SAndroid Build Coastguard Worker}
481*9880d681SAndroid Build Coastguard Worker
482*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @srem2x64(<2 x i64> %A, <2 x i64> %B) {
483*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: srem2x64:
484*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
485*9880d681SAndroid Build Coastguard Worker; CHECK: sdiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
486*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
487*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
488*9880d681SAndroid Build Coastguard Worker	%tmp3 = srem <2 x i64> %A, %B;
489*9880d681SAndroid Build Coastguard Worker	ret <2 x i64> %tmp3
490*9880d681SAndroid Build Coastguard Worker}
491*9880d681SAndroid Build Coastguard Worker
492*9880d681SAndroid Build Coastguard Workerdefine <1 x i8> @urem1x8(<1 x i8> %A, <1 x i8> %B) {
493*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem1x8:
494*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
495*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
496*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <1 x i8> %A, %B;
497*9880d681SAndroid Build Coastguard Worker	ret <1 x i8> %tmp3
498*9880d681SAndroid Build Coastguard Worker}
499*9880d681SAndroid Build Coastguard Worker
500*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @urem8x8(<8 x i8> %A, <8 x i8> %B) {
501*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem8x8:
502*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
503*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
504*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
505*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
506*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
507*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
508*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
509*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
510*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
511*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
512*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
513*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
514*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
515*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
516*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
517*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
518*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <8 x i8> %A, %B;
519*9880d681SAndroid Build Coastguard Worker	ret <8 x i8> %tmp3
520*9880d681SAndroid Build Coastguard Worker}
521*9880d681SAndroid Build Coastguard Worker
522*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @urem16x8(<16 x i8> %A, <16 x i8> %B) {
523*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem16x8:
524*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
525*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
526*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
527*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
528*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
529*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
530*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
531*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
532*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
533*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
534*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
535*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
536*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
537*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
538*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
539*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
540*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
541*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
542*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
543*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
544*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
545*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
546*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
547*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
548*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
549*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
550*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
551*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
552*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
553*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
554*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
555*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
556*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <16 x i8> %A, %B;
557*9880d681SAndroid Build Coastguard Worker	ret <16 x i8> %tmp3
558*9880d681SAndroid Build Coastguard Worker}
559*9880d681SAndroid Build Coastguard Worker
560*9880d681SAndroid Build Coastguard Workerdefine <1 x i16> @urem1x16(<1 x i16> %A, <1 x i16> %B) {
561*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem1x16:
562*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
563*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
564*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <1 x i16> %A, %B;
565*9880d681SAndroid Build Coastguard Worker	ret <1 x i16> %tmp3
566*9880d681SAndroid Build Coastguard Worker}
567*9880d681SAndroid Build Coastguard Worker
568*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @urem4x16(<4 x i16> %A, <4 x i16> %B) {
569*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem4x16:
570*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
571*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
572*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
573*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
574*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
575*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
576*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
577*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
578*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <4 x i16> %A, %B;
579*9880d681SAndroid Build Coastguard Worker	ret <4 x i16> %tmp3
580*9880d681SAndroid Build Coastguard Worker}
581*9880d681SAndroid Build Coastguard Worker
582*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @urem8x16(<8 x i16> %A, <8 x i16> %B) {
583*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem8x16:
584*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
585*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
586*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
587*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
588*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
589*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
590*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
591*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
592*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
593*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
594*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
595*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
596*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
597*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
598*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
599*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
600*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <8 x i16> %A, %B;
601*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp3
602*9880d681SAndroid Build Coastguard Worker}
603*9880d681SAndroid Build Coastguard Worker
604*9880d681SAndroid Build Coastguard Workerdefine <1 x i32> @urem1x32(<1 x i32> %A, <1 x i32> %B) {
605*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem1x32:
606*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
607*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
608*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <1 x i32> %A, %B;
609*9880d681SAndroid Build Coastguard Worker	ret <1 x i32> %tmp3
610*9880d681SAndroid Build Coastguard Worker}
611*9880d681SAndroid Build Coastguard Worker
612*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @urem2x32(<2 x i32> %A, <2 x i32> %B) {
613*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem2x32:
614*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
615*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
616*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
617*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
618*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <2 x i32> %A, %B;
619*9880d681SAndroid Build Coastguard Worker	ret <2 x i32> %tmp3
620*9880d681SAndroid Build Coastguard Worker}
621*9880d681SAndroid Build Coastguard Worker
622*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @urem4x32(<4 x i32> %A, <4 x i32> %B) {
623*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem4x32:
624*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
625*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
626*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
627*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
628*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
629*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
630*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
631*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}, {{w[0-9]+}}
632*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <4 x i32> %A, %B;
633*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp3
634*9880d681SAndroid Build Coastguard Worker}
635*9880d681SAndroid Build Coastguard Worker
636*9880d681SAndroid Build Coastguard Workerdefine <1 x i64> @urem1x64(<1 x i64> %A, <1 x i64> %B) {
637*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem1x64:
638*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
639*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
640*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <1 x i64> %A, %B;
641*9880d681SAndroid Build Coastguard Worker	ret <1 x i64> %tmp3
642*9880d681SAndroid Build Coastguard Worker}
643*9880d681SAndroid Build Coastguard Worker
644*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @urem2x64(<2 x i64> %A, <2 x i64> %B) {
645*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: urem2x64:
646*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
647*9880d681SAndroid Build Coastguard Worker; CHECK: udiv {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
648*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
649*9880d681SAndroid Build Coastguard Worker; CHECK: msub {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}, {{x[0-9]+}}
650*9880d681SAndroid Build Coastguard Worker	%tmp3 = urem <2 x i64> %A, %B;
651*9880d681SAndroid Build Coastguard Worker	ret <2 x i64> %tmp3
652*9880d681SAndroid Build Coastguard Worker}
653*9880d681SAndroid Build Coastguard Worker
654*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @frem2f32(<2 x float> %A, <2 x float> %B) {
655*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: frem2f32:
656*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmodf
657*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmodf
658*9880d681SAndroid Build Coastguard Worker	%tmp3 = frem <2 x float> %A, %B;
659*9880d681SAndroid Build Coastguard Worker	ret <2 x float> %tmp3
660*9880d681SAndroid Build Coastguard Worker}
661*9880d681SAndroid Build Coastguard Worker
662*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @frem4f32(<4 x float> %A, <4 x float> %B) {
663*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: frem4f32:
664*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmodf
665*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmodf
666*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmodf
667*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmodf
668*9880d681SAndroid Build Coastguard Worker	%tmp3 = frem <4 x float> %A, %B;
669*9880d681SAndroid Build Coastguard Worker	ret <4 x float> %tmp3
670*9880d681SAndroid Build Coastguard Worker}
671*9880d681SAndroid Build Coastguard Worker
672*9880d681SAndroid Build Coastguard Workerdefine <1 x double> @frem1d64(<1 x double> %A, <1 x double> %B) {
673*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: frem1d64:
674*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmod
675*9880d681SAndroid Build Coastguard Worker	%tmp3 = frem <1 x double> %A, %B;
676*9880d681SAndroid Build Coastguard Worker	ret <1 x double> %tmp3
677*9880d681SAndroid Build Coastguard Worker}
678*9880d681SAndroid Build Coastguard Worker
679*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @frem2d64(<2 x double> %A, <2 x double> %B) {
680*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: frem2d64:
681*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmod
682*9880d681SAndroid Build Coastguard Worker; CHECK: bl fmod
683*9880d681SAndroid Build Coastguard Worker	%tmp3 = frem <2 x double> %A, %B;
684*9880d681SAndroid Build Coastguard Worker	ret <2 x double> %tmp3
685*9880d681SAndroid Build Coastguard Worker}
686*9880d681SAndroid Build Coastguard Worker
687*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8> @llvm.aarch64.neon.pmul.v8i8(<8 x i8>, <8 x i8>)
688*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.aarch64.neon.pmul.v16i8(<16 x i8>, <16 x i8>)
689*9880d681SAndroid Build Coastguard Worker
690*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @poly_mulv8i8(<8 x i8> %lhs, <8 x i8> %rhs) {
691*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: poly_mulv8i8:
692*9880d681SAndroid Build Coastguard Worker   %prod = call <8 x i8> @llvm.aarch64.neon.pmul.v8i8(<8 x i8> %lhs, <8 x i8> %rhs)
693*9880d681SAndroid Build Coastguard Worker; CHECK: pmul v0.8b, v0.8b, v1.8b
694*9880d681SAndroid Build Coastguard Worker   ret <8 x i8> %prod
695*9880d681SAndroid Build Coastguard Worker}
696*9880d681SAndroid Build Coastguard Worker
697*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @poly_mulv16i8(<16 x i8> %lhs, <16 x i8> %rhs) {
698*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: poly_mulv16i8:
699*9880d681SAndroid Build Coastguard Worker   %prod = call <16 x i8> @llvm.aarch64.neon.pmul.v16i8(<16 x i8> %lhs, <16 x i8> %rhs)
700*9880d681SAndroid Build Coastguard Worker; CHECK: pmul v0.16b, v0.16b, v1.16b
701*9880d681SAndroid Build Coastguard Worker   ret <16 x i8> %prod
702*9880d681SAndroid Build Coastguard Worker}
703*9880d681SAndroid Build Coastguard Worker
704*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.aarch64.neon.sqdmulh.v4i16(<4 x i16>, <4 x i16>)
705*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.aarch64.neon.sqdmulh.v8i16(<8 x i16>, <8 x i16>)
706*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.sqdmulh.v2i32(<2 x i32>, <2 x i32>)
707*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.sqdmulh.v4i32(<4 x i32>, <4 x i32>)
708*9880d681SAndroid Build Coastguard Worker
709*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_sqdmulh_v4i16(<4 x i16> %lhs, <4 x i16> %rhs) {
710*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqdmulh_v4i16:
711*9880d681SAndroid Build Coastguard Worker   %prod = call <4 x i16> @llvm.aarch64.neon.sqdmulh.v4i16(<4 x i16> %lhs, <4 x i16> %rhs)
712*9880d681SAndroid Build Coastguard Worker; CHECK: sqdmulh v0.4h, v0.4h, v1.4h
713*9880d681SAndroid Build Coastguard Worker   ret <4 x i16> %prod
714*9880d681SAndroid Build Coastguard Worker}
715*9880d681SAndroid Build Coastguard Worker
716*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_sqdmulh_v8i16(<8 x i16> %lhs, <8 x i16> %rhs) {
717*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqdmulh_v8i16:
718*9880d681SAndroid Build Coastguard Worker   %prod = call <8 x i16> @llvm.aarch64.neon.sqdmulh.v8i16(<8 x i16> %lhs, <8 x i16> %rhs)
719*9880d681SAndroid Build Coastguard Worker; CHECK: sqdmulh v0.8h, v0.8h, v1.8h
720*9880d681SAndroid Build Coastguard Worker   ret <8 x i16> %prod
721*9880d681SAndroid Build Coastguard Worker}
722*9880d681SAndroid Build Coastguard Worker
723*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_sqdmulh_v2i32(<2 x i32> %lhs, <2 x i32> %rhs) {
724*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqdmulh_v2i32:
725*9880d681SAndroid Build Coastguard Worker   %prod = call <2 x i32> @llvm.aarch64.neon.sqdmulh.v2i32(<2 x i32> %lhs, <2 x i32> %rhs)
726*9880d681SAndroid Build Coastguard Worker; CHECK: sqdmulh v0.2s, v0.2s, v1.2s
727*9880d681SAndroid Build Coastguard Worker   ret <2 x i32> %prod
728*9880d681SAndroid Build Coastguard Worker}
729*9880d681SAndroid Build Coastguard Worker
730*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_sqdmulh_v4i32(<4 x i32> %lhs, <4 x i32> %rhs) {
731*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqdmulh_v4i32:
732*9880d681SAndroid Build Coastguard Worker   %prod = call <4 x i32> @llvm.aarch64.neon.sqdmulh.v4i32(<4 x i32> %lhs, <4 x i32> %rhs)
733*9880d681SAndroid Build Coastguard Worker; CHECK: sqdmulh v0.4s, v0.4s, v1.4s
734*9880d681SAndroid Build Coastguard Worker   ret <4 x i32> %prod
735*9880d681SAndroid Build Coastguard Worker}
736*9880d681SAndroid Build Coastguard Worker
737*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.aarch64.neon.sqrdmulh.v4i16(<4 x i16>, <4 x i16>)
738*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.aarch64.neon.sqrdmulh.v8i16(<8 x i16>, <8 x i16>)
739*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.aarch64.neon.sqrdmulh.v2i32(<2 x i32>, <2 x i32>)
740*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.aarch64.neon.sqrdmulh.v4i32(<4 x i32>, <4 x i32>)
741*9880d681SAndroid Build Coastguard Worker
742*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @test_sqrdmulh_v4i16(<4 x i16> %lhs, <4 x i16> %rhs) {
743*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqrdmulh_v4i16:
744*9880d681SAndroid Build Coastguard Worker   %prod = call <4 x i16> @llvm.aarch64.neon.sqrdmulh.v4i16(<4 x i16> %lhs, <4 x i16> %rhs)
745*9880d681SAndroid Build Coastguard Worker; CHECK: sqrdmulh v0.4h, v0.4h, v1.4h
746*9880d681SAndroid Build Coastguard Worker   ret <4 x i16> %prod
747*9880d681SAndroid Build Coastguard Worker}
748*9880d681SAndroid Build Coastguard Worker
749*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @test_sqrdmulh_v8i16(<8 x i16> %lhs, <8 x i16> %rhs) {
750*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqrdmulh_v8i16:
751*9880d681SAndroid Build Coastguard Worker   %prod = call <8 x i16> @llvm.aarch64.neon.sqrdmulh.v8i16(<8 x i16> %lhs, <8 x i16> %rhs)
752*9880d681SAndroid Build Coastguard Worker; CHECK: sqrdmulh v0.8h, v0.8h, v1.8h
753*9880d681SAndroid Build Coastguard Worker   ret <8 x i16> %prod
754*9880d681SAndroid Build Coastguard Worker}
755*9880d681SAndroid Build Coastguard Worker
756*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @test_sqrdmulh_v2i32(<2 x i32> %lhs, <2 x i32> %rhs) {
757*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqrdmulh_v2i32:
758*9880d681SAndroid Build Coastguard Worker   %prod = call <2 x i32> @llvm.aarch64.neon.sqrdmulh.v2i32(<2 x i32> %lhs, <2 x i32> %rhs)
759*9880d681SAndroid Build Coastguard Worker; CHECK: sqrdmulh v0.2s, v0.2s, v1.2s
760*9880d681SAndroid Build Coastguard Worker   ret <2 x i32> %prod
761*9880d681SAndroid Build Coastguard Worker}
762*9880d681SAndroid Build Coastguard Worker
763*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @test_sqrdmulh_v4i32(<4 x i32> %lhs, <4 x i32> %rhs) {
764*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: test_sqrdmulh_v4i32:
765*9880d681SAndroid Build Coastguard Worker   %prod = call <4 x i32> @llvm.aarch64.neon.sqrdmulh.v4i32(<4 x i32> %lhs, <4 x i32> %rhs)
766*9880d681SAndroid Build Coastguard Worker; CHECK: sqrdmulh v0.4s, v0.4s, v1.4s
767*9880d681SAndroid Build Coastguard Worker   ret <4 x i32> %prod
768*9880d681SAndroid Build Coastguard Worker}
769*9880d681SAndroid Build Coastguard Worker
770*9880d681SAndroid Build Coastguard Workerdeclare <2 x float> @llvm.aarch64.neon.fmulx.v2f32(<2 x float>, <2 x float>)
771*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.aarch64.neon.fmulx.v4f32(<4 x float>, <4 x float>)
772*9880d681SAndroid Build Coastguard Workerdeclare <2 x double> @llvm.aarch64.neon.fmulx.v2f64(<2 x double>, <2 x double>)
773*9880d681SAndroid Build Coastguard Worker
774*9880d681SAndroid Build Coastguard Workerdefine <2 x float> @fmulx_v2f32(<2 x float> %lhs, <2 x float> %rhs) {
775*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fmulx_v2f32:
776*9880d681SAndroid Build Coastguard Worker; Using registers other than v0, v1 and v2 are possible, but would be odd.
777*9880d681SAndroid Build Coastguard Worker; CHECK: fmulx v0.2s, v0.2s, v1.2s
778*9880d681SAndroid Build Coastguard Worker        %val = call <2 x float> @llvm.aarch64.neon.fmulx.v2f32(<2 x float> %lhs, <2 x float> %rhs)
779*9880d681SAndroid Build Coastguard Worker        ret <2 x float> %val
780*9880d681SAndroid Build Coastguard Worker}
781*9880d681SAndroid Build Coastguard Worker
782*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @fmulx_v4f32(<4 x float> %lhs, <4 x float> %rhs) {
783*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fmulx_v4f32:
784*9880d681SAndroid Build Coastguard Worker; Using registers other than v0, v1 and v2 are possible, but would be odd.
785*9880d681SAndroid Build Coastguard Worker; CHECK: fmulx v0.4s, v0.4s, v1.4s
786*9880d681SAndroid Build Coastguard Worker        %val = call <4 x float> @llvm.aarch64.neon.fmulx.v4f32(<4 x float> %lhs, <4 x float> %rhs)
787*9880d681SAndroid Build Coastguard Worker        ret <4 x float> %val
788*9880d681SAndroid Build Coastguard Worker}
789*9880d681SAndroid Build Coastguard Worker
790*9880d681SAndroid Build Coastguard Workerdefine <2 x double> @fmulx_v2f64(<2 x double> %lhs, <2 x double> %rhs) {
791*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fmulx_v2f64:
792*9880d681SAndroid Build Coastguard Worker; Using registers other than v0, v1 and v2 are possible, but would be odd.
793*9880d681SAndroid Build Coastguard Worker; CHECK: fmulx v0.2d, v0.2d, v1.2d
794*9880d681SAndroid Build Coastguard Worker        %val = call <2 x double> @llvm.aarch64.neon.fmulx.v2f64(<2 x double> %lhs, <2 x double> %rhs)
795*9880d681SAndroid Build Coastguard Worker        ret <2 x double> %val
796*9880d681SAndroid Build Coastguard Worker}
797*9880d681SAndroid Build Coastguard Worker
798