Home | History | Annotate | Download | only in ARM
      1 ; RUN: llc < %s -march=arm -mattr=+neon -pre-RA-sched=source | FileCheck %s
      2 
      3 define <8 x i8> @sdivi8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
      4 ;CHECK: vrecpe.f32
      5 ;CHECK: vrecpe.f32
      6 ;CHECK: vmovn.i32
      7 ;CHECK: vmovn.i32
      8 ;CHECK: vmovn.i16
      9 	%tmp1 = load <8 x i8>* %A
     10 	%tmp2 = load <8 x i8>* %B
     11 	%tmp3 = sdiv <8 x i8> %tmp1, %tmp2
     12 	ret <8 x i8> %tmp3
     13 }
     14 
     15 define <8 x i8> @udivi8(<8 x i8>* %A, <8 x i8>* %B) nounwind {
     16 ;CHECK: vrecpe.f32
     17 ;CHECK: vrecps.f32
     18 ;CHECK: vrecpe.f32
     19 ;CHECK: vrecps.f32
     20 ;CHECK: vmovn.i32
     21 ;CHECK: vmovn.i32
     22 ;CHECK: vqmovun.s16
     23 	%tmp1 = load <8 x i8>* %A
     24 	%tmp2 = load <8 x i8>* %B
     25 	%tmp3 = udiv <8 x i8> %tmp1, %tmp2
     26 	ret <8 x i8> %tmp3
     27 }
     28 
     29 define <4 x i16> @sdivi16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
     30 ;CHECK: vrecpe.f32
     31 ;CHECK: vrecps.f32
     32 ;CHECK: vmovn.i32
     33 	%tmp1 = load <4 x i16>* %A
     34 	%tmp2 = load <4 x i16>* %B
     35 	%tmp3 = sdiv <4 x i16> %tmp1, %tmp2
     36 	ret <4 x i16> %tmp3
     37 }
     38 
     39 define <4 x i16> @udivi16(<4 x i16>* %A, <4 x i16>* %B) nounwind {
     40 ;CHECK: vrecpe.f32
     41 ;CHECK: vrecps.f32
     42 ;CHECK: vrecps.f32
     43 ;CHECK: vmovn.i32
     44 	%tmp1 = load <4 x i16>* %A
     45 	%tmp2 = load <4 x i16>* %B
     46 	%tmp3 = udiv <4 x i16> %tmp1, %tmp2
     47 	ret <4 x i16> %tmp3
     48 }
     49