xref: /aosp_15_r20/external/llvm/test/CodeGen/ARM/vaba.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=arm-eabi -mattr=+neon %s -o - | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vabas8(<8 x i8>* %A, <8 x i8>* %B, <8 x i8>* %C) nounwind {
4*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabas8:
5*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.s8
6*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <8 x i8>, <8 x i8>* %A
7*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <8 x i8>, <8 x i8>* %B
8*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <8 x i8>, <8 x i8>* %C
9*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <8 x i8> @llvm.arm.neon.vabds.v8i8(<8 x i8> %tmp2, <8 x i8> %tmp3)
10*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <8 x i8> %tmp1, %tmp4
11*9880d681SAndroid Build Coastguard Worker	ret <8 x i8> %tmp5
12*9880d681SAndroid Build Coastguard Worker}
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vabas16(<4 x i16>* %A, <4 x i16>* %B, <4 x i16>* %C) nounwind {
15*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabas16:
16*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.s16
17*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <4 x i16>, <4 x i16>* %A
18*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <4 x i16>, <4 x i16>* %B
19*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <4 x i16>, <4 x i16>* %C
20*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <4 x i16> @llvm.arm.neon.vabds.v4i16(<4 x i16> %tmp2, <4 x i16> %tmp3)
21*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <4 x i16> %tmp1, %tmp4
22*9880d681SAndroid Build Coastguard Worker	ret <4 x i16> %tmp5
23*9880d681SAndroid Build Coastguard Worker}
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vabas32(<2 x i32>* %A, <2 x i32>* %B, <2 x i32>* %C) nounwind {
26*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabas32:
27*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.s32
28*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <2 x i32>, <2 x i32>* %A
29*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <2 x i32>, <2 x i32>* %B
30*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <2 x i32>, <2 x i32>* %C
31*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <2 x i32> @llvm.arm.neon.vabds.v2i32(<2 x i32> %tmp2, <2 x i32> %tmp3)
32*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <2 x i32> %tmp1, %tmp4
33*9880d681SAndroid Build Coastguard Worker	ret <2 x i32> %tmp5
34*9880d681SAndroid Build Coastguard Worker}
35*9880d681SAndroid Build Coastguard Worker
36*9880d681SAndroid Build Coastguard Workerdefine <8 x i8> @vabau8(<8 x i8>* %A, <8 x i8>* %B, <8 x i8>* %C) nounwind {
37*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabau8:
38*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.u8
39*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <8 x i8>, <8 x i8>* %A
40*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <8 x i8>, <8 x i8>* %B
41*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <8 x i8>, <8 x i8>* %C
42*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <8 x i8> @llvm.arm.neon.vabdu.v8i8(<8 x i8> %tmp2, <8 x i8> %tmp3)
43*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <8 x i8> %tmp1, %tmp4
44*9880d681SAndroid Build Coastguard Worker	ret <8 x i8> %tmp5
45*9880d681SAndroid Build Coastguard Worker}
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerdefine <4 x i16> @vabau16(<4 x i16>* %A, <4 x i16>* %B, <4 x i16>* %C) nounwind {
48*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabau16:
49*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.u16
50*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <4 x i16>, <4 x i16>* %A
51*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <4 x i16>, <4 x i16>* %B
52*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <4 x i16>, <4 x i16>* %C
53*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <4 x i16> @llvm.arm.neon.vabdu.v4i16(<4 x i16> %tmp2, <4 x i16> %tmp3)
54*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <4 x i16> %tmp1, %tmp4
55*9880d681SAndroid Build Coastguard Worker	ret <4 x i16> %tmp5
56*9880d681SAndroid Build Coastguard Worker}
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Workerdefine <2 x i32> @vabau32(<2 x i32>* %A, <2 x i32>* %B, <2 x i32>* %C) nounwind {
59*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabau32:
60*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.u32
61*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <2 x i32>, <2 x i32>* %A
62*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <2 x i32>, <2 x i32>* %B
63*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <2 x i32>, <2 x i32>* %C
64*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <2 x i32> @llvm.arm.neon.vabdu.v2i32(<2 x i32> %tmp2, <2 x i32> %tmp3)
65*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <2 x i32> %tmp1, %tmp4
66*9880d681SAndroid Build Coastguard Worker	ret <2 x i32> %tmp5
67*9880d681SAndroid Build Coastguard Worker}
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vabaQs8(<16 x i8>* %A, <16 x i8>* %B, <16 x i8>* %C) nounwind {
70*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabaQs8:
71*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.s8
72*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <16 x i8>, <16 x i8>* %A
73*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <16 x i8>, <16 x i8>* %B
74*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <16 x i8>, <16 x i8>* %C
75*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <16 x i8> @llvm.arm.neon.vabds.v16i8(<16 x i8> %tmp2, <16 x i8> %tmp3)
76*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <16 x i8> %tmp1, %tmp4
77*9880d681SAndroid Build Coastguard Worker	ret <16 x i8> %tmp5
78*9880d681SAndroid Build Coastguard Worker}
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vabaQs16(<8 x i16>* %A, <8 x i16>* %B, <8 x i16>* %C) nounwind {
81*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabaQs16:
82*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.s16
83*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <8 x i16>, <8 x i16>* %A
84*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <8 x i16>, <8 x i16>* %B
85*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <8 x i16>, <8 x i16>* %C
86*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <8 x i16> @llvm.arm.neon.vabds.v8i16(<8 x i16> %tmp2, <8 x i16> %tmp3)
87*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <8 x i16> %tmp1, %tmp4
88*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp5
89*9880d681SAndroid Build Coastguard Worker}
90*9880d681SAndroid Build Coastguard Worker
91*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vabaQs32(<4 x i32>* %A, <4 x i32>* %B, <4 x i32>* %C) nounwind {
92*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabaQs32:
93*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.s32
94*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <4 x i32>, <4 x i32>* %A
95*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <4 x i32>, <4 x i32>* %B
96*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <4 x i32>, <4 x i32>* %C
97*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <4 x i32> @llvm.arm.neon.vabds.v4i32(<4 x i32> %tmp2, <4 x i32> %tmp3)
98*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <4 x i32> %tmp1, %tmp4
99*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp5
100*9880d681SAndroid Build Coastguard Worker}
101*9880d681SAndroid Build Coastguard Worker
102*9880d681SAndroid Build Coastguard Workerdefine <16 x i8> @vabaQu8(<16 x i8>* %A, <16 x i8>* %B, <16 x i8>* %C) nounwind {
103*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabaQu8:
104*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.u8
105*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <16 x i8>, <16 x i8>* %A
106*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <16 x i8>, <16 x i8>* %B
107*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <16 x i8>, <16 x i8>* %C
108*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <16 x i8> @llvm.arm.neon.vabdu.v16i8(<16 x i8> %tmp2, <16 x i8> %tmp3)
109*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <16 x i8> %tmp1, %tmp4
110*9880d681SAndroid Build Coastguard Worker	ret <16 x i8> %tmp5
111*9880d681SAndroid Build Coastguard Worker}
112*9880d681SAndroid Build Coastguard Worker
113*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vabaQu16(<8 x i16>* %A, <8 x i16>* %B, <8 x i16>* %C) nounwind {
114*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabaQu16:
115*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.u16
116*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <8 x i16>, <8 x i16>* %A
117*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <8 x i16>, <8 x i16>* %B
118*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <8 x i16>, <8 x i16>* %C
119*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <8 x i16> @llvm.arm.neon.vabdu.v8i16(<8 x i16> %tmp2, <8 x i16> %tmp3)
120*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <8 x i16> %tmp1, %tmp4
121*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp5
122*9880d681SAndroid Build Coastguard Worker}
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vabaQu32(<4 x i32>* %A, <4 x i32>* %B, <4 x i32>* %C) nounwind {
125*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabaQu32:
126*9880d681SAndroid Build Coastguard Worker;CHECK: vaba.u32
127*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <4 x i32>, <4 x i32>* %A
128*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <4 x i32>, <4 x i32>* %B
129*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <4 x i32>, <4 x i32>* %C
130*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <4 x i32> @llvm.arm.neon.vabdu.v4i32(<4 x i32> %tmp2, <4 x i32> %tmp3)
131*9880d681SAndroid Build Coastguard Worker	%tmp5 = add <4 x i32> %tmp1, %tmp4
132*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp5
133*9880d681SAndroid Build Coastguard Worker}
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8>  @llvm.arm.neon.vabds.v8i8(<8 x i8>, <8 x i8>) nounwind readnone
136*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.arm.neon.vabds.v4i16(<4 x i16>, <4 x i16>) nounwind readnone
137*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.arm.neon.vabds.v2i32(<2 x i32>, <2 x i32>) nounwind readnone
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Workerdeclare <8 x i8>  @llvm.arm.neon.vabdu.v8i8(<8 x i8>, <8 x i8>) nounwind readnone
140*9880d681SAndroid Build Coastguard Workerdeclare <4 x i16> @llvm.arm.neon.vabdu.v4i16(<4 x i16>, <4 x i16>) nounwind readnone
141*9880d681SAndroid Build Coastguard Workerdeclare <2 x i32> @llvm.arm.neon.vabdu.v2i32(<2 x i32>, <2 x i32>) nounwind readnone
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.arm.neon.vabds.v16i8(<16 x i8>, <16 x i8>) nounwind readnone
144*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.arm.neon.vabds.v8i16(<8 x i16>, <8 x i16>) nounwind readnone
145*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.arm.neon.vabds.v4i32(<4 x i32>, <4 x i32>) nounwind readnone
146*9880d681SAndroid Build Coastguard Worker
147*9880d681SAndroid Build Coastguard Workerdeclare <16 x i8> @llvm.arm.neon.vabdu.v16i8(<16 x i8>, <16 x i8>) nounwind readnone
148*9880d681SAndroid Build Coastguard Workerdeclare <8 x i16> @llvm.arm.neon.vabdu.v8i16(<8 x i16>, <8 x i16>) nounwind readnone
149*9880d681SAndroid Build Coastguard Workerdeclare <4 x i32> @llvm.arm.neon.vabdu.v4i32(<4 x i32>, <4 x i32>) nounwind readnone
150*9880d681SAndroid Build Coastguard Worker
151*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vabals8(<8 x i16>* %A, <8 x i8>* %B, <8 x i8>* %C) nounwind {
152*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabals8:
153*9880d681SAndroid Build Coastguard Worker;CHECK: vabal.s8
154*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <8 x i16>, <8 x i16>* %A
155*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <8 x i8>, <8 x i8>* %B
156*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <8 x i8>, <8 x i8>* %C
157*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <8 x i8> @llvm.arm.neon.vabds.v8i8(<8 x i8> %tmp2, <8 x i8> %tmp3)
158*9880d681SAndroid Build Coastguard Worker	%tmp5 = zext <8 x i8> %tmp4 to <8 x i16>
159*9880d681SAndroid Build Coastguard Worker	%tmp6 = add <8 x i16> %tmp1, %tmp5
160*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp6
161*9880d681SAndroid Build Coastguard Worker}
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vabals16(<4 x i32>* %A, <4 x i16>* %B, <4 x i16>* %C) nounwind {
164*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabals16:
165*9880d681SAndroid Build Coastguard Worker;CHECK: vabal.s16
166*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <4 x i32>, <4 x i32>* %A
167*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <4 x i16>, <4 x i16>* %B
168*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <4 x i16>, <4 x i16>* %C
169*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <4 x i16> @llvm.arm.neon.vabds.v4i16(<4 x i16> %tmp2, <4 x i16> %tmp3)
170*9880d681SAndroid Build Coastguard Worker	%tmp5 = zext <4 x i16> %tmp4 to <4 x i32>
171*9880d681SAndroid Build Coastguard Worker	%tmp6 = add <4 x i32> %tmp1, %tmp5
172*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp6
173*9880d681SAndroid Build Coastguard Worker}
174*9880d681SAndroid Build Coastguard Worker
175*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vabals32(<2 x i64>* %A, <2 x i32>* %B, <2 x i32>* %C) nounwind {
176*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabals32:
177*9880d681SAndroid Build Coastguard Worker;CHECK: vabal.s32
178*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <2 x i64>, <2 x i64>* %A
179*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <2 x i32>, <2 x i32>* %B
180*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <2 x i32>, <2 x i32>* %C
181*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <2 x i32> @llvm.arm.neon.vabds.v2i32(<2 x i32> %tmp2, <2 x i32> %tmp3)
182*9880d681SAndroid Build Coastguard Worker	%tmp5 = zext <2 x i32> %tmp4 to <2 x i64>
183*9880d681SAndroid Build Coastguard Worker	%tmp6 = add <2 x i64> %tmp1, %tmp5
184*9880d681SAndroid Build Coastguard Worker	ret <2 x i64> %tmp6
185*9880d681SAndroid Build Coastguard Worker}
186*9880d681SAndroid Build Coastguard Worker
187*9880d681SAndroid Build Coastguard Workerdefine <8 x i16> @vabalu8(<8 x i16>* %A, <8 x i8>* %B, <8 x i8>* %C) nounwind {
188*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabalu8:
189*9880d681SAndroid Build Coastguard Worker;CHECK: vabal.u8
190*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <8 x i16>, <8 x i16>* %A
191*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <8 x i8>, <8 x i8>* %B
192*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <8 x i8>, <8 x i8>* %C
193*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <8 x i8> @llvm.arm.neon.vabdu.v8i8(<8 x i8> %tmp2, <8 x i8> %tmp3)
194*9880d681SAndroid Build Coastguard Worker	%tmp5 = zext <8 x i8> %tmp4 to <8 x i16>
195*9880d681SAndroid Build Coastguard Worker	%tmp6 = add <8 x i16> %tmp1, %tmp5
196*9880d681SAndroid Build Coastguard Worker	ret <8 x i16> %tmp6
197*9880d681SAndroid Build Coastguard Worker}
198*9880d681SAndroid Build Coastguard Worker
199*9880d681SAndroid Build Coastguard Workerdefine <4 x i32> @vabalu16(<4 x i32>* %A, <4 x i16>* %B, <4 x i16>* %C) nounwind {
200*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabalu16:
201*9880d681SAndroid Build Coastguard Worker;CHECK: vabal.u16
202*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <4 x i32>, <4 x i32>* %A
203*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <4 x i16>, <4 x i16>* %B
204*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <4 x i16>, <4 x i16>* %C
205*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <4 x i16> @llvm.arm.neon.vabdu.v4i16(<4 x i16> %tmp2, <4 x i16> %tmp3)
206*9880d681SAndroid Build Coastguard Worker	%tmp5 = zext <4 x i16> %tmp4 to <4 x i32>
207*9880d681SAndroid Build Coastguard Worker	%tmp6 = add <4 x i32> %tmp1, %tmp5
208*9880d681SAndroid Build Coastguard Worker	ret <4 x i32> %tmp6
209*9880d681SAndroid Build Coastguard Worker}
210*9880d681SAndroid Build Coastguard Worker
211*9880d681SAndroid Build Coastguard Workerdefine <2 x i64> @vabalu32(<2 x i64>* %A, <2 x i32>* %B, <2 x i32>* %C) nounwind {
212*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: vabalu32:
213*9880d681SAndroid Build Coastguard Worker;CHECK: vabal.u32
214*9880d681SAndroid Build Coastguard Worker	%tmp1 = load <2 x i64>, <2 x i64>* %A
215*9880d681SAndroid Build Coastguard Worker	%tmp2 = load <2 x i32>, <2 x i32>* %B
216*9880d681SAndroid Build Coastguard Worker	%tmp3 = load <2 x i32>, <2 x i32>* %C
217*9880d681SAndroid Build Coastguard Worker	%tmp4 = call <2 x i32> @llvm.arm.neon.vabdu.v2i32(<2 x i32> %tmp2, <2 x i32> %tmp3)
218*9880d681SAndroid Build Coastguard Worker	%tmp5 = zext <2 x i32> %tmp4 to <2 x i64>
219*9880d681SAndroid Build Coastguard Worker	%tmp6 = add <2 x i64> %tmp1, %tmp5
220*9880d681SAndroid Build Coastguard Worker	ret <2 x i64> %tmp6
221*9880d681SAndroid Build Coastguard Worker}
222