| Dan Gohman | c8054d9 | 2009-09-09 00:09:15 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=arm -mattr=+neon > %t | 
| Bob Wilson | 2e076c4 | 2009-06-22 23:27:02 +0000 | [diff] [blame] | 2 | ; RUN: grep {vmls\\.i8} %t | count 2 | 
|  | 3 | ; RUN: grep {vmls\\.i16} %t | count 2 | 
|  | 4 | ; RUN: grep {vmls\\.i32} %t | count 2 | 
|  | 5 | ; RUN: grep {vmls\\.f32} %t | count 2 | 
|  | 6 |  | 
|  | 7 | define <8 x i8> @vmlsi8(<8 x i8>* %A, <8 x i8>* %B, <8 x i8> * %C) nounwind { | 
|  | 8 | %tmp1 = load <8 x i8>* %A | 
|  | 9 | %tmp2 = load <8 x i8>* %B | 
|  | 10 | %tmp3 = load <8 x i8>* %C | 
|  | 11 | %tmp4 = mul <8 x i8> %tmp2, %tmp3 | 
|  | 12 | %tmp5 = sub <8 x i8> %tmp1, %tmp4 | 
|  | 13 | ret <8 x i8> %tmp5 | 
|  | 14 | } | 
|  | 15 |  | 
|  | 16 | define <4 x i16> @vmlsi16(<4 x i16>* %A, <4 x i16>* %B, <4 x i16>* %C) nounwind { | 
|  | 17 | %tmp1 = load <4 x i16>* %A | 
|  | 18 | %tmp2 = load <4 x i16>* %B | 
|  | 19 | %tmp3 = load <4 x i16>* %C | 
|  | 20 | %tmp4 = mul <4 x i16> %tmp2, %tmp3 | 
|  | 21 | %tmp5 = sub <4 x i16> %tmp1, %tmp4 | 
|  | 22 | ret <4 x i16> %tmp5 | 
|  | 23 | } | 
|  | 24 |  | 
|  | 25 | define <2 x i32> @vmlsi32(<2 x i32>* %A, <2 x i32>* %B, <2 x i32>* %C) nounwind { | 
|  | 26 | %tmp1 = load <2 x i32>* %A | 
|  | 27 | %tmp2 = load <2 x i32>* %B | 
|  | 28 | %tmp3 = load <2 x i32>* %C | 
|  | 29 | %tmp4 = mul <2 x i32> %tmp2, %tmp3 | 
|  | 30 | %tmp5 = sub <2 x i32> %tmp1, %tmp4 | 
|  | 31 | ret <2 x i32> %tmp5 | 
|  | 32 | } | 
|  | 33 |  | 
|  | 34 | define <2 x float> @vmlsf32(<2 x float>* %A, <2 x float>* %B, <2 x float>* %C) nounwind { | 
|  | 35 | %tmp1 = load <2 x float>* %A | 
|  | 36 | %tmp2 = load <2 x float>* %B | 
|  | 37 | %tmp3 = load <2 x float>* %C | 
|  | 38 | %tmp4 = mul <2 x float> %tmp2, %tmp3 | 
|  | 39 | %tmp5 = sub <2 x float> %tmp1, %tmp4 | 
|  | 40 | ret <2 x float> %tmp5 | 
|  | 41 | } | 
|  | 42 |  | 
|  | 43 | define <16 x i8> @vmlsQi8(<16 x i8>* %A, <16 x i8>* %B, <16 x i8> * %C) nounwind { | 
|  | 44 | %tmp1 = load <16 x i8>* %A | 
|  | 45 | %tmp2 = load <16 x i8>* %B | 
|  | 46 | %tmp3 = load <16 x i8>* %C | 
|  | 47 | %tmp4 = mul <16 x i8> %tmp2, %tmp3 | 
|  | 48 | %tmp5 = sub <16 x i8> %tmp1, %tmp4 | 
|  | 49 | ret <16 x i8> %tmp5 | 
|  | 50 | } | 
|  | 51 |  | 
|  | 52 | define <8 x i16> @vmlsQi16(<8 x i16>* %A, <8 x i16>* %B, <8 x i16>* %C) nounwind { | 
|  | 53 | %tmp1 = load <8 x i16>* %A | 
|  | 54 | %tmp2 = load <8 x i16>* %B | 
|  | 55 | %tmp3 = load <8 x i16>* %C | 
|  | 56 | %tmp4 = mul <8 x i16> %tmp2, %tmp3 | 
|  | 57 | %tmp5 = sub <8 x i16> %tmp1, %tmp4 | 
|  | 58 | ret <8 x i16> %tmp5 | 
|  | 59 | } | 
|  | 60 |  | 
|  | 61 | define <4 x i32> @vmlsQi32(<4 x i32>* %A, <4 x i32>* %B, <4 x i32>* %C) nounwind { | 
|  | 62 | %tmp1 = load <4 x i32>* %A | 
|  | 63 | %tmp2 = load <4 x i32>* %B | 
|  | 64 | %tmp3 = load <4 x i32>* %C | 
|  | 65 | %tmp4 = mul <4 x i32> %tmp2, %tmp3 | 
|  | 66 | %tmp5 = sub <4 x i32> %tmp1, %tmp4 | 
|  | 67 | ret <4 x i32> %tmp5 | 
|  | 68 | } | 
|  | 69 |  | 
|  | 70 | define <4 x float> @vmlsQf32(<4 x float>* %A, <4 x float>* %B, <4 x float>* %C) nounwind { | 
|  | 71 | %tmp1 = load <4 x float>* %A | 
|  | 72 | %tmp2 = load <4 x float>* %B | 
|  | 73 | %tmp3 = load <4 x float>* %C | 
|  | 74 | %tmp4 = mul <4 x float> %tmp2, %tmp3 | 
|  | 75 | %tmp5 = sub <4 x float> %tmp1, %tmp4 | 
|  | 76 | ret <4 x float> %tmp5 | 
|  | 77 | } |