blob: 18f57ea41cd83b74400b0c3c60bab192c125a161 [file] [log] [blame]
James Molloy17dcaf52012-04-05 10:01:12 +00001; RUN: llc -mtriple armv7 %s -o - | FileCheck %s
2
3; CHECK: f:
4define float @f(<4 x i16>* nocapture %in) {
5 ; CHECK: vldr
6 ; CHECK: vmovl.u16
7 ; CHECK-NOT: vand
8 %1 = load <4 x i16>* %in
9 ; CHECK: vcvt.f32.u32
10 %2 = uitofp <4 x i16> %1 to <4 x float>
11 %3 = extractelement <4 x float> %2, i32 0
12 %4 = extractelement <4 x float> %2, i32 1
13 %5 = extractelement <4 x float> %2, i32 2
14
15 ; CHECK: vadd.f32
16 %6 = fadd float %3, %4
17 %7 = fadd float %6, %5
18
19 ret float %7
20}
21
22define float @g(<4 x i16>* nocapture %in) {
23 ; CHECK: vldr
24 %1 = load <4 x i16>* %in
25 ; CHECK-NOT: uxth
26 %2 = extractelement <4 x i16> %1, i32 0
27 ; CHECK: vcvt.f32.u32
28 %3 = uitofp i16 %2 to float
29 ret float %3
30}