@@ -170,51 +170,6 @@ declare <2 x i32> @llvm.aarch64.neon.raddhn.v2i32(<2 x i64>, <2 x i64>) nounwind
170
170
declare <4 x i16 > @llvm.aarch64.neon.raddhn.v4i16 (<4 x i32 >, <4 x i32 >) nounwind readnone
171
171
declare <8 x i8 > @llvm.aarch64.neon.raddhn.v8i8 (<8 x i16 >, <8 x i16 >) nounwind readnone
172
172
173
- define <8 x i16 > @saddl8h (ptr %A , ptr %B ) nounwind {
174
- ; CHECK-LABEL: saddl8h:
175
- ; CHECK: // %bb.0:
176
- ; CHECK-NEXT: ldr d0, [x0]
177
- ; CHECK-NEXT: ldr d1, [x1]
178
- ; CHECK-NEXT: saddl v0.8h, v0.8b, v1.8b
179
- ; CHECK-NEXT: ret
180
- %tmp1 = load <8 x i8 >, ptr %A
181
- %tmp2 = load <8 x i8 >, ptr %B
182
- %tmp3 = sext <8 x i8 > %tmp1 to <8 x i16 >
183
- %tmp4 = sext <8 x i8 > %tmp2 to <8 x i16 >
184
- %tmp5 = add <8 x i16 > %tmp3 , %tmp4
185
- ret <8 x i16 > %tmp5
186
- }
187
-
188
- define <4 x i32 > @saddl4s (ptr %A , ptr %B ) nounwind {
189
- ; CHECK-LABEL: saddl4s:
190
- ; CHECK: // %bb.0:
191
- ; CHECK-NEXT: ldr d0, [x0]
192
- ; CHECK-NEXT: ldr d1, [x1]
193
- ; CHECK-NEXT: saddl v0.4s, v0.4h, v1.4h
194
- ; CHECK-NEXT: ret
195
- %tmp1 = load <4 x i16 >, ptr %A
196
- %tmp2 = load <4 x i16 >, ptr %B
197
- %tmp3 = sext <4 x i16 > %tmp1 to <4 x i32 >
198
- %tmp4 = sext <4 x i16 > %tmp2 to <4 x i32 >
199
- %tmp5 = add <4 x i32 > %tmp3 , %tmp4
200
- ret <4 x i32 > %tmp5
201
- }
202
-
203
- define <2 x i64 > @saddl2d (ptr %A , ptr %B ) nounwind {
204
- ; CHECK-LABEL: saddl2d:
205
- ; CHECK: // %bb.0:
206
- ; CHECK-NEXT: ldr d0, [x0]
207
- ; CHECK-NEXT: ldr d1, [x1]
208
- ; CHECK-NEXT: saddl v0.2d, v0.2s, v1.2s
209
- ; CHECK-NEXT: ret
210
- %tmp1 = load <2 x i32 >, ptr %A
211
- %tmp2 = load <2 x i32 >, ptr %B
212
- %tmp3 = sext <2 x i32 > %tmp1 to <2 x i64 >
213
- %tmp4 = sext <2 x i32 > %tmp2 to <2 x i64 >
214
- %tmp5 = add <2 x i64 > %tmp3 , %tmp4
215
- ret <2 x i64 > %tmp5
216
- }
217
-
218
173
define <8 x i16 > @saddl2_8h (<16 x i8 > %a , <16 x i8 > %b ) nounwind {
219
174
; CHECK-LABEL: saddl2_8h:
220
175
; CHECK: // %bb.0:
@@ -266,52 +221,6 @@ define <2 x i64> @saddl2_2d(<4 x i32> %a, <4 x i32> %b) nounwind {
266
221
ret <2 x i64 > %add.i
267
222
}
268
223
269
- define <8 x i16 > @uaddl8h (ptr %A , ptr %B ) nounwind {
270
- ; CHECK-LABEL: uaddl8h:
271
- ; CHECK: // %bb.0:
272
- ; CHECK-NEXT: ldr d0, [x0]
273
- ; CHECK-NEXT: ldr d1, [x1]
274
- ; CHECK-NEXT: uaddl v0.8h, v0.8b, v1.8b
275
- ; CHECK-NEXT: ret
276
- %tmp1 = load <8 x i8 >, ptr %A
277
- %tmp2 = load <8 x i8 >, ptr %B
278
- %tmp3 = zext <8 x i8 > %tmp1 to <8 x i16 >
279
- %tmp4 = zext <8 x i8 > %tmp2 to <8 x i16 >
280
- %tmp5 = add <8 x i16 > %tmp3 , %tmp4
281
- ret <8 x i16 > %tmp5
282
- }
283
-
284
- define <4 x i32 > @uaddl4s (ptr %A , ptr %B ) nounwind {
285
- ; CHECK-LABEL: uaddl4s:
286
- ; CHECK: // %bb.0:
287
- ; CHECK-NEXT: ldr d0, [x0]
288
- ; CHECK-NEXT: ldr d1, [x1]
289
- ; CHECK-NEXT: uaddl v0.4s, v0.4h, v1.4h
290
- ; CHECK-NEXT: ret
291
- %tmp1 = load <4 x i16 >, ptr %A
292
- %tmp2 = load <4 x i16 >, ptr %B
293
- %tmp3 = zext <4 x i16 > %tmp1 to <4 x i32 >
294
- %tmp4 = zext <4 x i16 > %tmp2 to <4 x i32 >
295
- %tmp5 = add <4 x i32 > %tmp3 , %tmp4
296
- ret <4 x i32 > %tmp5
297
- }
298
-
299
- define <2 x i64 > @uaddl2d (ptr %A , ptr %B ) nounwind {
300
- ; CHECK-LABEL: uaddl2d:
301
- ; CHECK: // %bb.0:
302
- ; CHECK-NEXT: ldr d0, [x0]
303
- ; CHECK-NEXT: ldr d1, [x1]
304
- ; CHECK-NEXT: uaddl v0.2d, v0.2s, v1.2s
305
- ; CHECK-NEXT: ret
306
- %tmp1 = load <2 x i32 >, ptr %A
307
- %tmp2 = load <2 x i32 >, ptr %B
308
- %tmp3 = zext <2 x i32 > %tmp1 to <2 x i64 >
309
- %tmp4 = zext <2 x i32 > %tmp2 to <2 x i64 >
310
- %tmp5 = add <2 x i64 > %tmp3 , %tmp4
311
- ret <2 x i64 > %tmp5
312
- }
313
-
314
-
315
224
define <8 x i16 > @uaddl2_8h (<16 x i8 > %a , <16 x i8 > %b ) nounwind {
316
225
; CHECK-LABEL: uaddl2_8h:
317
226
; CHECK: // %bb.0:
0 commit comments