xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/msa/arithmetic.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips -mattr=+msa,+fp64 < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mattr=+msa,+fp64 < %s | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine void @add_v16i8(<16 x i8>* %c, <16 x i8>* %a, <16 x i8>* %b) nounwind {
5*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v16i8:
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
8*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
9*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
10*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
11*9880d681SAndroid Build Coastguard Worker  %3 = add <16 x i8> %1, %2
12*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addv.b [[R3:\$w[0-9]+]], [[R1]], [[R2]]
13*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %3, <16 x i8>* %c
14*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
15*9880d681SAndroid Build Coastguard Worker
16*9880d681SAndroid Build Coastguard Worker  ret void
17*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v16i8
18*9880d681SAndroid Build Coastguard Worker}
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerdefine void @add_v8i16(<8 x i16>* %c, <8 x i16>* %a, <8 x i16>* %b) nounwind {
21*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v8i16:
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
24*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
25*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
26*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
27*9880d681SAndroid Build Coastguard Worker  %3 = add <8 x i16> %1, %2
28*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addv.h [[R3:\$w[0-9]+]], [[R1]], [[R2]]
29*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %3, <8 x i16>* %c
30*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker  ret void
33*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v8i16
34*9880d681SAndroid Build Coastguard Worker}
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerdefine void @add_v4i32(<4 x i32>* %c, <4 x i32>* %a, <4 x i32>* %b) nounwind {
37*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v4i32:
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
40*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
41*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
42*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
43*9880d681SAndroid Build Coastguard Worker  %3 = add <4 x i32> %1, %2
44*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addv.w [[R3:\$w[0-9]+]], [[R1]], [[R2]]
45*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %3, <4 x i32>* %c
46*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Worker  ret void
49*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v4i32
50*9880d681SAndroid Build Coastguard Worker}
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Workerdefine void @add_v2i64(<2 x i64>* %c, <2 x i64>* %a, <2 x i64>* %b) nounwind {
53*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v2i64:
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
56*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
57*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
58*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
59*9880d681SAndroid Build Coastguard Worker  %3 = add <2 x i64> %1, %2
60*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addv.d [[R3:\$w[0-9]+]], [[R1]], [[R2]]
61*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %3, <2 x i64>* %c
62*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker  ret void
65*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v2i64
66*9880d681SAndroid Build Coastguard Worker}
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerdefine void @add_v16i8_i(<16 x i8>* %c, <16 x i8>* %a) nounwind {
69*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v16i8_i:
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
72*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
73*9880d681SAndroid Build Coastguard Worker  %2 = add <16 x i8> %1, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1,
74*9880d681SAndroid Build Coastguard Worker                          i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
75*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addvi.b [[R3:\$w[0-9]+]], [[R1]], 1
76*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* %c
77*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Worker  ret void
80*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v16i8_i
81*9880d681SAndroid Build Coastguard Worker}
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Workerdefine void @add_v8i16_i(<8 x i16>* %c, <8 x i16>* %a) nounwind {
84*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v8i16_i:
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
87*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
88*9880d681SAndroid Build Coastguard Worker  %2 = add <8 x i16> %1, <i16 1, i16 1, i16 1, i16 1,
89*9880d681SAndroid Build Coastguard Worker                          i16 1, i16 1, i16 1, i16 1>
90*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addvi.h [[R3:\$w[0-9]+]], [[R1]], 1
91*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* %c
92*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Worker  ret void
95*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v8i16_i
96*9880d681SAndroid Build Coastguard Worker}
97*9880d681SAndroid Build Coastguard Worker
98*9880d681SAndroid Build Coastguard Workerdefine void @add_v4i32_i(<4 x i32>* %c, <4 x i32>* %a) nounwind {
99*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v4i32_i:
100*9880d681SAndroid Build Coastguard Worker
101*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
102*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
103*9880d681SAndroid Build Coastguard Worker  %2 = add <4 x i32> %1, <i32 1, i32 1, i32 1, i32 1>
104*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addvi.w [[R3:\$w[0-9]+]], [[R1]], 1
105*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* %c
106*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker  ret void
109*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v4i32_i
110*9880d681SAndroid Build Coastguard Worker}
111*9880d681SAndroid Build Coastguard Worker
112*9880d681SAndroid Build Coastguard Workerdefine void @add_v2i64_i(<2 x i64>* %c, <2 x i64>* %a) nounwind {
113*9880d681SAndroid Build Coastguard Worker  ; CHECK: add_v2i64_i:
114*9880d681SAndroid Build Coastguard Worker
115*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
116*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
117*9880d681SAndroid Build Coastguard Worker  %2 = add <2 x i64> %1, <i64 1, i64 1>
118*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: addvi.d [[R3:\$w[0-9]+]], [[R1]], 1
119*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* %c
120*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Worker  ret void
123*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size add_v2i64_i
124*9880d681SAndroid Build Coastguard Worker}
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Workerdefine void @sub_v16i8(<16 x i8>* %c, <16 x i8>* %a, <16 x i8>* %b) nounwind {
127*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v16i8:
128*9880d681SAndroid Build Coastguard Worker
129*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
130*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
131*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
132*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
133*9880d681SAndroid Build Coastguard Worker  %3 = sub <16 x i8> %1, %2
134*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subv.b [[R3:\$w[0-9]+]], [[R1]], [[R2]]
135*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %3, <16 x i8>* %c
136*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
137*9880d681SAndroid Build Coastguard Worker
138*9880d681SAndroid Build Coastguard Worker  ret void
139*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v16i8
140*9880d681SAndroid Build Coastguard Worker}
141*9880d681SAndroid Build Coastguard Worker
142*9880d681SAndroid Build Coastguard Workerdefine void @sub_v8i16(<8 x i16>* %c, <8 x i16>* %a, <8 x i16>* %b) nounwind {
143*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v8i16:
144*9880d681SAndroid Build Coastguard Worker
145*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
146*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
147*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
148*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
149*9880d681SAndroid Build Coastguard Worker  %3 = sub <8 x i16> %1, %2
150*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subv.h [[R3:\$w[0-9]+]], [[R1]], [[R2]]
151*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %3, <8 x i16>* %c
152*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Worker  ret void
155*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v8i16
156*9880d681SAndroid Build Coastguard Worker}
157*9880d681SAndroid Build Coastguard Worker
158*9880d681SAndroid Build Coastguard Workerdefine void @sub_v4i32(<4 x i32>* %c, <4 x i32>* %a, <4 x i32>* %b) nounwind {
159*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v4i32:
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
162*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
163*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
164*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
165*9880d681SAndroid Build Coastguard Worker  %3 = sub <4 x i32> %1, %2
166*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subv.w [[R3:\$w[0-9]+]], [[R1]], [[R2]]
167*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %3, <4 x i32>* %c
168*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
169*9880d681SAndroid Build Coastguard Worker
170*9880d681SAndroid Build Coastguard Worker  ret void
171*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v4i32
172*9880d681SAndroid Build Coastguard Worker}
173*9880d681SAndroid Build Coastguard Worker
174*9880d681SAndroid Build Coastguard Workerdefine void @sub_v2i64(<2 x i64>* %c, <2 x i64>* %a, <2 x i64>* %b) nounwind {
175*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v2i64:
176*9880d681SAndroid Build Coastguard Worker
177*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
178*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
179*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
180*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
181*9880d681SAndroid Build Coastguard Worker  %3 = sub <2 x i64> %1, %2
182*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subv.d [[R3:\$w[0-9]+]], [[R1]], [[R2]]
183*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %3, <2 x i64>* %c
184*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
185*9880d681SAndroid Build Coastguard Worker
186*9880d681SAndroid Build Coastguard Worker  ret void
187*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v2i64
188*9880d681SAndroid Build Coastguard Worker}
189*9880d681SAndroid Build Coastguard Worker
190*9880d681SAndroid Build Coastguard Workerdefine void @sub_v16i8_i(<16 x i8>* %c, <16 x i8>* %a) nounwind {
191*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v16i8_i:
192*9880d681SAndroid Build Coastguard Worker
193*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
194*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
195*9880d681SAndroid Build Coastguard Worker  %2 = sub <16 x i8> %1, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1,
196*9880d681SAndroid Build Coastguard Worker                          i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
197*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subvi.b [[R3:\$w[0-9]+]], [[R1]], 1
198*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %2, <16 x i8>* %c
199*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
200*9880d681SAndroid Build Coastguard Worker
201*9880d681SAndroid Build Coastguard Worker  ret void
202*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v16i8_i
203*9880d681SAndroid Build Coastguard Worker}
204*9880d681SAndroid Build Coastguard Worker
205*9880d681SAndroid Build Coastguard Workerdefine void @sub_v8i16_i(<8 x i16>* %c, <8 x i16>* %a) nounwind {
206*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v8i16_i:
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
209*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
210*9880d681SAndroid Build Coastguard Worker  %2 = sub <8 x i16> %1, <i16 1, i16 1, i16 1, i16 1,
211*9880d681SAndroid Build Coastguard Worker                          i16 1, i16 1, i16 1, i16 1>
212*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subvi.h [[R3:\$w[0-9]+]], [[R1]], 1
213*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %2, <8 x i16>* %c
214*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
215*9880d681SAndroid Build Coastguard Worker
216*9880d681SAndroid Build Coastguard Worker  ret void
217*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v8i16_i
218*9880d681SAndroid Build Coastguard Worker}
219*9880d681SAndroid Build Coastguard Worker
220*9880d681SAndroid Build Coastguard Workerdefine void @sub_v4i32_i(<4 x i32>* %c, <4 x i32>* %a) nounwind {
221*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v4i32_i:
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
224*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
225*9880d681SAndroid Build Coastguard Worker  %2 = sub <4 x i32> %1, <i32 1, i32 1, i32 1, i32 1>
226*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subvi.w [[R3:\$w[0-9]+]], [[R1]], 1
227*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %2, <4 x i32>* %c
228*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
229*9880d681SAndroid Build Coastguard Worker
230*9880d681SAndroid Build Coastguard Worker  ret void
231*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v4i32_i
232*9880d681SAndroid Build Coastguard Worker}
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Workerdefine void @sub_v2i64_i(<2 x i64>* %c, <2 x i64>* %a) nounwind {
235*9880d681SAndroid Build Coastguard Worker  ; CHECK: sub_v2i64_i:
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
238*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
239*9880d681SAndroid Build Coastguard Worker  %2 = sub <2 x i64> %1, <i64 1, i64 1>
240*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: subvi.d [[R3:\$w[0-9]+]], [[R1]], 1
241*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %2, <2 x i64>* %c
242*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
243*9880d681SAndroid Build Coastguard Worker
244*9880d681SAndroid Build Coastguard Worker  ret void
245*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size sub_v2i64_i
246*9880d681SAndroid Build Coastguard Worker}
247*9880d681SAndroid Build Coastguard Worker
248*9880d681SAndroid Build Coastguard Workerdefine void @mul_v16i8(<16 x i8>* %c, <16 x i8>* %a, <16 x i8>* %b) nounwind {
249*9880d681SAndroid Build Coastguard Worker  ; CHECK: mul_v16i8:
250*9880d681SAndroid Build Coastguard Worker
251*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
252*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
253*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
254*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
255*9880d681SAndroid Build Coastguard Worker  %3 = mul <16 x i8> %1, %2
256*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mulv.b [[R3:\$w[0-9]+]], [[R1]], [[R2]]
257*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %3, <16 x i8>* %c
258*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
259*9880d681SAndroid Build Coastguard Worker
260*9880d681SAndroid Build Coastguard Worker  ret void
261*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mul_v16i8
262*9880d681SAndroid Build Coastguard Worker}
263*9880d681SAndroid Build Coastguard Worker
264*9880d681SAndroid Build Coastguard Workerdefine void @mul_v8i16(<8 x i16>* %c, <8 x i16>* %a, <8 x i16>* %b) nounwind {
265*9880d681SAndroid Build Coastguard Worker  ; CHECK: mul_v8i16:
266*9880d681SAndroid Build Coastguard Worker
267*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
268*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
269*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
270*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
271*9880d681SAndroid Build Coastguard Worker  %3 = mul <8 x i16> %1, %2
272*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mulv.h [[R3:\$w[0-9]+]], [[R1]], [[R2]]
273*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %3, <8 x i16>* %c
274*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
275*9880d681SAndroid Build Coastguard Worker
276*9880d681SAndroid Build Coastguard Worker  ret void
277*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mul_v8i16
278*9880d681SAndroid Build Coastguard Worker}
279*9880d681SAndroid Build Coastguard Worker
280*9880d681SAndroid Build Coastguard Workerdefine void @mul_v4i32(<4 x i32>* %c, <4 x i32>* %a, <4 x i32>* %b) nounwind {
281*9880d681SAndroid Build Coastguard Worker  ; CHECK: mul_v4i32:
282*9880d681SAndroid Build Coastguard Worker
283*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
284*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
285*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
286*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
287*9880d681SAndroid Build Coastguard Worker  %3 = mul <4 x i32> %1, %2
288*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mulv.w [[R3:\$w[0-9]+]], [[R1]], [[R2]]
289*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %3, <4 x i32>* %c
290*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
291*9880d681SAndroid Build Coastguard Worker
292*9880d681SAndroid Build Coastguard Worker  ret void
293*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mul_v4i32
294*9880d681SAndroid Build Coastguard Worker}
295*9880d681SAndroid Build Coastguard Worker
296*9880d681SAndroid Build Coastguard Workerdefine void @mul_v2i64(<2 x i64>* %c, <2 x i64>* %a, <2 x i64>* %b) nounwind {
297*9880d681SAndroid Build Coastguard Worker  ; CHECK: mul_v2i64:
298*9880d681SAndroid Build Coastguard Worker
299*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
300*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
301*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
302*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
303*9880d681SAndroid Build Coastguard Worker  %3 = mul <2 x i64> %1, %2
304*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mulv.d [[R3:\$w[0-9]+]], [[R1]], [[R2]]
305*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %3, <2 x i64>* %c
306*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
307*9880d681SAndroid Build Coastguard Worker
308*9880d681SAndroid Build Coastguard Worker  ret void
309*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mul_v2i64
310*9880d681SAndroid Build Coastguard Worker}
311*9880d681SAndroid Build Coastguard Worker
312*9880d681SAndroid Build Coastguard Workerdefine void @maddv_v16i8(<16 x i8>* %d, <16 x i8>* %a, <16 x i8>* %b,
313*9880d681SAndroid Build Coastguard Worker                         <16 x i8>* %c) nounwind {
314*9880d681SAndroid Build Coastguard Worker  ; CHECK: maddv_v16i8:
315*9880d681SAndroid Build Coastguard Worker
316*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
317*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
318*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
319*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
320*9880d681SAndroid Build Coastguard Worker  %3 = load <16 x i8>, <16 x i8>* %c
321*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R3:\$w[0-9]+]], 0($7)
322*9880d681SAndroid Build Coastguard Worker  %4 = mul <16 x i8> %2, %3
323*9880d681SAndroid Build Coastguard Worker  %5 = add <16 x i8> %4, %1
324*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: maddv.b [[R1]], [[R2]], [[R3]]
325*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %5, <16 x i8>* %d
326*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R1]], 0($4)
327*9880d681SAndroid Build Coastguard Worker
328*9880d681SAndroid Build Coastguard Worker  ret void
329*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size maddv_v16i8
330*9880d681SAndroid Build Coastguard Worker}
331*9880d681SAndroid Build Coastguard Worker
332*9880d681SAndroid Build Coastguard Workerdefine void @maddv_v8i16(<8 x i16>* %d, <8 x i16>* %a, <8 x i16>* %b,
333*9880d681SAndroid Build Coastguard Worker                         <8 x i16>* %c) nounwind {
334*9880d681SAndroid Build Coastguard Worker  ; CHECK: maddv_v8i16:
335*9880d681SAndroid Build Coastguard Worker
336*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
337*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
338*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
339*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
340*9880d681SAndroid Build Coastguard Worker  %3 = load <8 x i16>, <8 x i16>* %c
341*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R3:\$w[0-9]+]], 0($7)
342*9880d681SAndroid Build Coastguard Worker  %4 = mul <8 x i16> %2, %3
343*9880d681SAndroid Build Coastguard Worker  %5 = add <8 x i16> %4, %1
344*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: maddv.h [[R1]], [[R2]], [[R3]]
345*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %5, <8 x i16>* %d
346*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R1]], 0($4)
347*9880d681SAndroid Build Coastguard Worker
348*9880d681SAndroid Build Coastguard Worker  ret void
349*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size maddv_v8i16
350*9880d681SAndroid Build Coastguard Worker}
351*9880d681SAndroid Build Coastguard Worker
352*9880d681SAndroid Build Coastguard Workerdefine void @maddv_v4i32(<4 x i32>* %d, <4 x i32>* %a, <4 x i32>* %b,
353*9880d681SAndroid Build Coastguard Worker                         <4 x i32>* %c) nounwind {
354*9880d681SAndroid Build Coastguard Worker  ; CHECK: maddv_v4i32:
355*9880d681SAndroid Build Coastguard Worker
356*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
357*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
358*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
359*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
360*9880d681SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %c
361*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R3:\$w[0-9]+]], 0($7)
362*9880d681SAndroid Build Coastguard Worker  %4 = mul <4 x i32> %2, %3
363*9880d681SAndroid Build Coastguard Worker  %5 = add <4 x i32> %4, %1
364*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: maddv.w [[R1]], [[R2]], [[R3]]
365*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %5, <4 x i32>* %d
366*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R1]], 0($4)
367*9880d681SAndroid Build Coastguard Worker
368*9880d681SAndroid Build Coastguard Worker  ret void
369*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size maddv_v4i32
370*9880d681SAndroid Build Coastguard Worker}
371*9880d681SAndroid Build Coastguard Worker
372*9880d681SAndroid Build Coastguard Workerdefine void @maddv_v2i64(<2 x i64>* %d, <2 x i64>* %a, <2 x i64>* %b,
373*9880d681SAndroid Build Coastguard Worker                         <2 x i64>* %c) nounwind {
374*9880d681SAndroid Build Coastguard Worker  ; CHECK: maddv_v2i64:
375*9880d681SAndroid Build Coastguard Worker
376*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
377*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
378*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
379*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
380*9880d681SAndroid Build Coastguard Worker  %3 = load <2 x i64>, <2 x i64>* %c
381*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R3:\$w[0-9]+]], 0($7)
382*9880d681SAndroid Build Coastguard Worker  %4 = mul <2 x i64> %2, %3
383*9880d681SAndroid Build Coastguard Worker  %5 = add <2 x i64> %4, %1
384*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: maddv.d [[R1]], [[R2]], [[R3]]
385*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %5, <2 x i64>* %d
386*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R1]], 0($4)
387*9880d681SAndroid Build Coastguard Worker
388*9880d681SAndroid Build Coastguard Worker  ret void
389*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size maddv_v2i64
390*9880d681SAndroid Build Coastguard Worker}
391*9880d681SAndroid Build Coastguard Worker
392*9880d681SAndroid Build Coastguard Workerdefine void @msubv_v16i8(<16 x i8>* %d, <16 x i8>* %a, <16 x i8>* %b,
393*9880d681SAndroid Build Coastguard Worker                         <16 x i8>* %c) nounwind {
394*9880d681SAndroid Build Coastguard Worker  ; CHECK: msubv_v16i8:
395*9880d681SAndroid Build Coastguard Worker
396*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
397*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
398*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
399*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
400*9880d681SAndroid Build Coastguard Worker  %3 = load <16 x i8>, <16 x i8>* %c
401*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R3:\$w[0-9]+]], 0($7)
402*9880d681SAndroid Build Coastguard Worker  %4 = mul <16 x i8> %2, %3
403*9880d681SAndroid Build Coastguard Worker  %5 = sub <16 x i8> %1, %4
404*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: msubv.b [[R1]], [[R2]], [[R3]]
405*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %5, <16 x i8>* %d
406*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R1]], 0($4)
407*9880d681SAndroid Build Coastguard Worker
408*9880d681SAndroid Build Coastguard Worker  ret void
409*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size msubv_v16i8
410*9880d681SAndroid Build Coastguard Worker}
411*9880d681SAndroid Build Coastguard Worker
412*9880d681SAndroid Build Coastguard Workerdefine void @msubv_v8i16(<8 x i16>* %d, <8 x i16>* %a, <8 x i16>* %b,
413*9880d681SAndroid Build Coastguard Worker                         <8 x i16>* %c) nounwind {
414*9880d681SAndroid Build Coastguard Worker  ; CHECK: msubv_v8i16:
415*9880d681SAndroid Build Coastguard Worker
416*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
417*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
418*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
419*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
420*9880d681SAndroid Build Coastguard Worker  %3 = load <8 x i16>, <8 x i16>* %c
421*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R3:\$w[0-9]+]], 0($7)
422*9880d681SAndroid Build Coastguard Worker  %4 = mul <8 x i16> %2, %3
423*9880d681SAndroid Build Coastguard Worker  %5 = sub <8 x i16> %1, %4
424*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: msubv.h [[R1]], [[R2]], [[R3]]
425*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %5, <8 x i16>* %d
426*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R1]], 0($4)
427*9880d681SAndroid Build Coastguard Worker
428*9880d681SAndroid Build Coastguard Worker  ret void
429*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size msubv_v8i16
430*9880d681SAndroid Build Coastguard Worker}
431*9880d681SAndroid Build Coastguard Worker
432*9880d681SAndroid Build Coastguard Workerdefine void @msubv_v4i32(<4 x i32>* %d, <4 x i32>* %a, <4 x i32>* %b,
433*9880d681SAndroid Build Coastguard Worker                         <4 x i32>* %c) nounwind {
434*9880d681SAndroid Build Coastguard Worker  ; CHECK: msubv_v4i32:
435*9880d681SAndroid Build Coastguard Worker
436*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
437*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
438*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
439*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
440*9880d681SAndroid Build Coastguard Worker  %3 = load <4 x i32>, <4 x i32>* %c
441*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R3:\$w[0-9]+]], 0($7)
442*9880d681SAndroid Build Coastguard Worker  %4 = mul <4 x i32> %2, %3
443*9880d681SAndroid Build Coastguard Worker  %5 = sub <4 x i32> %1, %4
444*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: msubv.w [[R1]], [[R2]], [[R3]]
445*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %5, <4 x i32>* %d
446*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R1]], 0($4)
447*9880d681SAndroid Build Coastguard Worker
448*9880d681SAndroid Build Coastguard Worker  ret void
449*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size msubv_v4i32
450*9880d681SAndroid Build Coastguard Worker}
451*9880d681SAndroid Build Coastguard Worker
452*9880d681SAndroid Build Coastguard Workerdefine void @msubv_v2i64(<2 x i64>* %d, <2 x i64>* %a, <2 x i64>* %b,
453*9880d681SAndroid Build Coastguard Worker                         <2 x i64>* %c) nounwind {
454*9880d681SAndroid Build Coastguard Worker  ; CHECK: msubv_v2i64:
455*9880d681SAndroid Build Coastguard Worker
456*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
457*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
458*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
459*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
460*9880d681SAndroid Build Coastguard Worker  %3 = load <2 x i64>, <2 x i64>* %c
461*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R3:\$w[0-9]+]], 0($7)
462*9880d681SAndroid Build Coastguard Worker  %4 = mul <2 x i64> %2, %3
463*9880d681SAndroid Build Coastguard Worker  %5 = sub <2 x i64> %1, %4
464*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: msubv.d [[R1]], [[R2]], [[R3]]
465*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %5, <2 x i64>* %d
466*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R1]], 0($4)
467*9880d681SAndroid Build Coastguard Worker
468*9880d681SAndroid Build Coastguard Worker  ret void
469*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size msubv_v2i64
470*9880d681SAndroid Build Coastguard Worker}
471*9880d681SAndroid Build Coastguard Worker
472*9880d681SAndroid Build Coastguard Workerdefine void @div_s_v16i8(<16 x i8>* %c, <16 x i8>* %a, <16 x i8>* %b) nounwind {
473*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_s_v16i8:
474*9880d681SAndroid Build Coastguard Worker
475*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
476*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
477*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
478*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
479*9880d681SAndroid Build Coastguard Worker  %3 = sdiv <16 x i8> %1, %2
480*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_s.b [[R3:\$w[0-9]+]], [[R1]], [[R2]]
481*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %3, <16 x i8>* %c
482*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
483*9880d681SAndroid Build Coastguard Worker
484*9880d681SAndroid Build Coastguard Worker  ret void
485*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_s_v16i8
486*9880d681SAndroid Build Coastguard Worker}
487*9880d681SAndroid Build Coastguard Worker
488*9880d681SAndroid Build Coastguard Workerdefine void @div_s_v8i16(<8 x i16>* %c, <8 x i16>* %a, <8 x i16>* %b) nounwind {
489*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_s_v8i16:
490*9880d681SAndroid Build Coastguard Worker
491*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
492*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
493*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
494*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
495*9880d681SAndroid Build Coastguard Worker  %3 = sdiv <8 x i16> %1, %2
496*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_s.h [[R3:\$w[0-9]+]], [[R1]], [[R2]]
497*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %3, <8 x i16>* %c
498*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
499*9880d681SAndroid Build Coastguard Worker
500*9880d681SAndroid Build Coastguard Worker  ret void
501*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_s_v8i16
502*9880d681SAndroid Build Coastguard Worker}
503*9880d681SAndroid Build Coastguard Worker
504*9880d681SAndroid Build Coastguard Workerdefine void @div_s_v4i32(<4 x i32>* %c, <4 x i32>* %a, <4 x i32>* %b) nounwind {
505*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_s_v4i32:
506*9880d681SAndroid Build Coastguard Worker
507*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
508*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
509*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
510*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
511*9880d681SAndroid Build Coastguard Worker  %3 = sdiv <4 x i32> %1, %2
512*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_s.w [[R3:\$w[0-9]+]], [[R1]], [[R2]]
513*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %3, <4 x i32>* %c
514*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
515*9880d681SAndroid Build Coastguard Worker
516*9880d681SAndroid Build Coastguard Worker  ret void
517*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_s_v4i32
518*9880d681SAndroid Build Coastguard Worker}
519*9880d681SAndroid Build Coastguard Worker
520*9880d681SAndroid Build Coastguard Workerdefine void @div_s_v2i64(<2 x i64>* %c, <2 x i64>* %a, <2 x i64>* %b) nounwind {
521*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_s_v2i64:
522*9880d681SAndroid Build Coastguard Worker
523*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
524*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
525*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
526*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
527*9880d681SAndroid Build Coastguard Worker  %3 = sdiv <2 x i64> %1, %2
528*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_s.d [[R3:\$w[0-9]+]], [[R1]], [[R2]]
529*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %3, <2 x i64>* %c
530*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
531*9880d681SAndroid Build Coastguard Worker
532*9880d681SAndroid Build Coastguard Worker  ret void
533*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_s_v2i64
534*9880d681SAndroid Build Coastguard Worker}
535*9880d681SAndroid Build Coastguard Worker
536*9880d681SAndroid Build Coastguard Workerdefine void @div_u_v16i8(<16 x i8>* %c, <16 x i8>* %a, <16 x i8>* %b) nounwind {
537*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_u_v16i8:
538*9880d681SAndroid Build Coastguard Worker
539*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
540*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
541*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
542*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
543*9880d681SAndroid Build Coastguard Worker  %3 = udiv <16 x i8> %1, %2
544*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_u.b [[R3:\$w[0-9]+]], [[R1]], [[R2]]
545*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %3, <16 x i8>* %c
546*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
547*9880d681SAndroid Build Coastguard Worker
548*9880d681SAndroid Build Coastguard Worker  ret void
549*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_u_v16i8
550*9880d681SAndroid Build Coastguard Worker}
551*9880d681SAndroid Build Coastguard Worker
552*9880d681SAndroid Build Coastguard Workerdefine void @div_u_v8i16(<8 x i16>* %c, <8 x i16>* %a, <8 x i16>* %b) nounwind {
553*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_u_v8i16:
554*9880d681SAndroid Build Coastguard Worker
555*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
556*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
557*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
558*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
559*9880d681SAndroid Build Coastguard Worker  %3 = udiv <8 x i16> %1, %2
560*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_u.h [[R3:\$w[0-9]+]], [[R1]], [[R2]]
561*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %3, <8 x i16>* %c
562*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
563*9880d681SAndroid Build Coastguard Worker
564*9880d681SAndroid Build Coastguard Worker  ret void
565*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_u_v8i16
566*9880d681SAndroid Build Coastguard Worker}
567*9880d681SAndroid Build Coastguard Worker
568*9880d681SAndroid Build Coastguard Workerdefine void @div_u_v4i32(<4 x i32>* %c, <4 x i32>* %a, <4 x i32>* %b) nounwind {
569*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_u_v4i32:
570*9880d681SAndroid Build Coastguard Worker
571*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
572*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
573*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
574*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
575*9880d681SAndroid Build Coastguard Worker  %3 = udiv <4 x i32> %1, %2
576*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_u.w [[R3:\$w[0-9]+]], [[R1]], [[R2]]
577*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %3, <4 x i32>* %c
578*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
579*9880d681SAndroid Build Coastguard Worker
580*9880d681SAndroid Build Coastguard Worker  ret void
581*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_u_v4i32
582*9880d681SAndroid Build Coastguard Worker}
583*9880d681SAndroid Build Coastguard Worker
584*9880d681SAndroid Build Coastguard Workerdefine void @div_u_v2i64(<2 x i64>* %c, <2 x i64>* %a, <2 x i64>* %b) nounwind {
585*9880d681SAndroid Build Coastguard Worker  ; CHECK: div_u_v2i64:
586*9880d681SAndroid Build Coastguard Worker
587*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
588*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
589*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
590*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
591*9880d681SAndroid Build Coastguard Worker  %3 = udiv <2 x i64> %1, %2
592*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: div_u.d [[R3:\$w[0-9]+]], [[R1]], [[R2]]
593*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %3, <2 x i64>* %c
594*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
595*9880d681SAndroid Build Coastguard Worker
596*9880d681SAndroid Build Coastguard Worker  ret void
597*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size div_u_v2i64
598*9880d681SAndroid Build Coastguard Worker}
599*9880d681SAndroid Build Coastguard Worker
600*9880d681SAndroid Build Coastguard Workerdefine void @mod_s_v16i8(<16 x i8>* %c, <16 x i8>* %a, <16 x i8>* %b) nounwind {
601*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_s_v16i8:
602*9880d681SAndroid Build Coastguard Worker
603*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
604*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
605*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
606*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
607*9880d681SAndroid Build Coastguard Worker  %3 = srem <16 x i8> %1, %2
608*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_s.b [[R3:\$w[0-9]+]], [[R1]], [[R2]]
609*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %3, <16 x i8>* %c
610*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
611*9880d681SAndroid Build Coastguard Worker
612*9880d681SAndroid Build Coastguard Worker  ret void
613*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_s_v16i8
614*9880d681SAndroid Build Coastguard Worker}
615*9880d681SAndroid Build Coastguard Worker
616*9880d681SAndroid Build Coastguard Workerdefine void @mod_s_v8i16(<8 x i16>* %c, <8 x i16>* %a, <8 x i16>* %b) nounwind {
617*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_s_v8i16:
618*9880d681SAndroid Build Coastguard Worker
619*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
620*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
621*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
622*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
623*9880d681SAndroid Build Coastguard Worker  %3 = srem <8 x i16> %1, %2
624*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_s.h [[R3:\$w[0-9]+]], [[R1]], [[R2]]
625*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %3, <8 x i16>* %c
626*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
627*9880d681SAndroid Build Coastguard Worker
628*9880d681SAndroid Build Coastguard Worker  ret void
629*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_s_v8i16
630*9880d681SAndroid Build Coastguard Worker}
631*9880d681SAndroid Build Coastguard Worker
632*9880d681SAndroid Build Coastguard Workerdefine void @mod_s_v4i32(<4 x i32>* %c, <4 x i32>* %a, <4 x i32>* %b) nounwind {
633*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_s_v4i32:
634*9880d681SAndroid Build Coastguard Worker
635*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
636*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
637*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
638*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
639*9880d681SAndroid Build Coastguard Worker  %3 = srem <4 x i32> %1, %2
640*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_s.w [[R3:\$w[0-9]+]], [[R1]], [[R2]]
641*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %3, <4 x i32>* %c
642*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
643*9880d681SAndroid Build Coastguard Worker
644*9880d681SAndroid Build Coastguard Worker  ret void
645*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_s_v4i32
646*9880d681SAndroid Build Coastguard Worker}
647*9880d681SAndroid Build Coastguard Worker
648*9880d681SAndroid Build Coastguard Workerdefine void @mod_s_v2i64(<2 x i64>* %c, <2 x i64>* %a, <2 x i64>* %b) nounwind {
649*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_s_v2i64:
650*9880d681SAndroid Build Coastguard Worker
651*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
652*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
653*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
654*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
655*9880d681SAndroid Build Coastguard Worker  %3 = srem <2 x i64> %1, %2
656*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_s.d [[R3:\$w[0-9]+]], [[R1]], [[R2]]
657*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %3, <2 x i64>* %c
658*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
659*9880d681SAndroid Build Coastguard Worker
660*9880d681SAndroid Build Coastguard Worker  ret void
661*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_s_v2i64
662*9880d681SAndroid Build Coastguard Worker}
663*9880d681SAndroid Build Coastguard Worker
664*9880d681SAndroid Build Coastguard Workerdefine void @mod_u_v16i8(<16 x i8>* %c, <16 x i8>* %a, <16 x i8>* %b) nounwind {
665*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_u_v16i8:
666*9880d681SAndroid Build Coastguard Worker
667*9880d681SAndroid Build Coastguard Worker  %1 = load <16 x i8>, <16 x i8>* %a
668*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R1:\$w[0-9]+]], 0($5)
669*9880d681SAndroid Build Coastguard Worker  %2 = load <16 x i8>, <16 x i8>* %b
670*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.b [[R2:\$w[0-9]+]], 0($6)
671*9880d681SAndroid Build Coastguard Worker  %3 = urem <16 x i8> %1, %2
672*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_u.b [[R3:\$w[0-9]+]], [[R1]], [[R2]]
673*9880d681SAndroid Build Coastguard Worker  store <16 x i8> %3, <16 x i8>* %c
674*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.b [[R3]], 0($4)
675*9880d681SAndroid Build Coastguard Worker
676*9880d681SAndroid Build Coastguard Worker  ret void
677*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_u_v16i8
678*9880d681SAndroid Build Coastguard Worker}
679*9880d681SAndroid Build Coastguard Worker
680*9880d681SAndroid Build Coastguard Workerdefine void @mod_u_v8i16(<8 x i16>* %c, <8 x i16>* %a, <8 x i16>* %b) nounwind {
681*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_u_v8i16:
682*9880d681SAndroid Build Coastguard Worker
683*9880d681SAndroid Build Coastguard Worker  %1 = load <8 x i16>, <8 x i16>* %a
684*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R1:\$w[0-9]+]], 0($5)
685*9880d681SAndroid Build Coastguard Worker  %2 = load <8 x i16>, <8 x i16>* %b
686*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.h [[R2:\$w[0-9]+]], 0($6)
687*9880d681SAndroid Build Coastguard Worker  %3 = urem <8 x i16> %1, %2
688*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_u.h [[R3:\$w[0-9]+]], [[R1]], [[R2]]
689*9880d681SAndroid Build Coastguard Worker  store <8 x i16> %3, <8 x i16>* %c
690*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.h [[R3]], 0($4)
691*9880d681SAndroid Build Coastguard Worker
692*9880d681SAndroid Build Coastguard Worker  ret void
693*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_u_v8i16
694*9880d681SAndroid Build Coastguard Worker}
695*9880d681SAndroid Build Coastguard Worker
696*9880d681SAndroid Build Coastguard Workerdefine void @mod_u_v4i32(<4 x i32>* %c, <4 x i32>* %a, <4 x i32>* %b) nounwind {
697*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_u_v4i32:
698*9880d681SAndroid Build Coastguard Worker
699*9880d681SAndroid Build Coastguard Worker  %1 = load <4 x i32>, <4 x i32>* %a
700*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R1:\$w[0-9]+]], 0($5)
701*9880d681SAndroid Build Coastguard Worker  %2 = load <4 x i32>, <4 x i32>* %b
702*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.w [[R2:\$w[0-9]+]], 0($6)
703*9880d681SAndroid Build Coastguard Worker  %3 = urem <4 x i32> %1, %2
704*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_u.w [[R3:\$w[0-9]+]], [[R1]], [[R2]]
705*9880d681SAndroid Build Coastguard Worker  store <4 x i32> %3, <4 x i32>* %c
706*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.w [[R3]], 0($4)
707*9880d681SAndroid Build Coastguard Worker
708*9880d681SAndroid Build Coastguard Worker  ret void
709*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_u_v4i32
710*9880d681SAndroid Build Coastguard Worker}
711*9880d681SAndroid Build Coastguard Worker
712*9880d681SAndroid Build Coastguard Workerdefine void @mod_u_v2i64(<2 x i64>* %c, <2 x i64>* %a, <2 x i64>* %b) nounwind {
713*9880d681SAndroid Build Coastguard Worker  ; CHECK: mod_u_v2i64:
714*9880d681SAndroid Build Coastguard Worker
715*9880d681SAndroid Build Coastguard Worker  %1 = load <2 x i64>, <2 x i64>* %a
716*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R1:\$w[0-9]+]], 0($5)
717*9880d681SAndroid Build Coastguard Worker  %2 = load <2 x i64>, <2 x i64>* %b
718*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: ld.d [[R2:\$w[0-9]+]], 0($6)
719*9880d681SAndroid Build Coastguard Worker  %3 = urem <2 x i64> %1, %2
720*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: mod_u.d [[R3:\$w[0-9]+]], [[R1]], [[R2]]
721*9880d681SAndroid Build Coastguard Worker  store <2 x i64> %3, <2 x i64>* %c
722*9880d681SAndroid Build Coastguard Worker  ; CHECK-DAG: st.d [[R3]], 0($4)
723*9880d681SAndroid Build Coastguard Worker
724*9880d681SAndroid Build Coastguard Worker  ret void
725*9880d681SAndroid Build Coastguard Worker  ; CHECK: .size mod_u_v2i64
726*9880d681SAndroid Build Coastguard Worker}
727