Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / ARM / neon_div.ll
blobf09a81cdca40cef39f991765bea5d41389d51e79
1 ; RUN: llc -mtriple arm-eabi -mattr=+neon -disable-post-ra -pre-RA-sched source %s -o - | FileCheck %s
2 ; RUN: llc -mtriple thumbv7-windows-itanium -mattr=+neon -disable-post-ra -pre-RA-sched source %s -o - | FileCheck %s
4 define <8 x i8> @sdivi8(ptr %A, ptr %B) nounwind {
5   %tmp1 = load <8 x i8>, ptr %A
6   %tmp2 = load <8 x i8>, ptr %B
7   %tmp3 = sdiv <8 x i8> %tmp1, %tmp2
8   ret <8 x i8> %tmp3
11 ; CHECK-LABEL: sdivi8:
12 ; CHECK: vrecpe.f32
13 ; CHECK: vmovn.i32
14 ; CHECK: vrecpe.f32
15 ; CHECK: vmovn.i32
16 ; CHECK: vmovn.i16
18 define <8 x i8> @udivi8(ptr %A, ptr %B) nounwind {
19   %tmp1 = load <8 x i8>, ptr %A
20   %tmp2 = load <8 x i8>, ptr %B
21   %tmp3 = udiv <8 x i8> %tmp1, %tmp2
22   ret <8 x i8> %tmp3
25 ; CHECK-LABEL: udivi8:
26 ; CHECK: vrecpe.f32
27 ; CHECK: vrecps.f32
28 ; CHECK: vmovn.i32
29 ; CHECK: vrecpe.f32
30 ; CHECK: vrecps.f32
31 ; CHECK: vmovn.i32
32 ; CHECK: vqmovun.s16
34 define <4 x i16> @sdivi16(ptr %A, ptr %B) nounwind {
35   %tmp1 = load <4 x i16>, ptr %A
36   %tmp2 = load <4 x i16>, ptr %B
37   %tmp3 = sdiv <4 x i16> %tmp1, %tmp2
38   ret <4 x i16> %tmp3
41 ; CHECK-LABEL: sdivi16:
42 ; CHECK: vrecpe.f32
43 ; CHECK: vrecps.f32
44 ; CHECK: vmovn.i32
46 define <4 x i16> @udivi16(ptr %A, ptr %B) nounwind {
47   %tmp1 = load <4 x i16>, ptr %A
48   %tmp2 = load <4 x i16>, ptr %B
49   %tmp3 = udiv <4 x i16> %tmp1, %tmp2
50   ret <4 x i16> %tmp3
53 ; CHECK-LABEL: udivi16:
54 ; CHECK: vrecpe.f32
55 ; CHECK: vrecps.f32
56 ; CHECK: vrecps.f32
57 ; CHECK: vmovn.i32