Finish materialize for ints
[oota-llvm.git] / test / CodeGen / Mips / selectcc.ll
1 ; RUN: llc -march=mipsel < %s
2 ; RUN: llc -march=mipsel -pre-RA-sched=source < %s | FileCheck %s --check-prefix=SOURCE-SCHED
3
4 @gf0 = external global float
5 @gf1 = external global float
6 @gd0 = external global double
7 @gd1 = external global double
8
9 define float @select_cc_f32(float %a, float %b) nounwind {
10 entry:
11 ; SOURCE-SCHED: lui
12 ; SOURCE-SCHED: addiu
13 ; SOURCE-SCHED: addu
14 ; SOURCE-SCHED: lw
15 ; SOURCE-SCHED: sw
16 ; SOURCE-SCHED: lw
17 ; SOURCE-SCHED: lui
18 ; SOURCE-SCHED: sw
19 ; SOURCE-SCHED: addiu
20 ; SOURCE-SCHED: addiu
21 ; SOURCE-SCHED: c.olt.s
22 ; SOURCE-SCHED: movt
23 ; SOURCE-SCHED: mtc1
24 ; SOURCE-SCHED: jr
25
26   store float 0.000000e+00, float* @gf0, align 4
27   store float 1.000000e+00, float* @gf1, align 4
28   %cmp = fcmp olt float %a, %b
29   %conv = zext i1 %cmp to i32
30   %conv1 = sitofp i32 %conv to float
31   ret float %conv1
32 }
33
34 define double @select_cc_f64(double %a, double %b) nounwind {
35 entry:
36   store double 0.000000e+00, double* @gd0, align 8
37   store double 1.000000e+00, double* @gd1, align 8
38   %cmp = fcmp olt double %a, %b
39   %conv = zext i1 %cmp to i32
40   %conv1 = sitofp i32 %conv to double
41   ret double %conv1
42 }
43