Stackmap shadows should consider call returns a branch target.
[oota-llvm.git] / test / CodeGen / Mips / selectcc.ll
1 ; RUN: llc -march=mipsel -mcpu=mips32 < %s
2 ; RUN: llc -march=mipsel -mcpu=mips32 -pre-RA-sched=source < %s | FileCheck %s --check-prefix=SOURCE-SCHED
3 ; RUN: llc -march=mipsel -mcpu=mips32r2 < %s
4 ; RUN: llc -march=mipsel -mcpu=mips32r2 -pre-RA-sched=source < %s | FileCheck %s --check-prefix=SOURCE-SCHED
5
6 @gf0 = external global float
7 @gf1 = external global float
8 @gd0 = external global double
9 @gd1 = external global double
10
11 define float @select_cc_f32(float %a, float %b) nounwind {
12 entry:
13 ; SOURCE-SCHED: lui
14 ; SOURCE-SCHED: addiu
15 ; SOURCE-SCHED: addu
16 ; SOURCE-SCHED: lw
17 ; SOURCE-SCHED: sw
18 ; SOURCE-SCHED: lw
19 ; SOURCE-SCHED: lui
20 ; SOURCE-SCHED: sw
21 ; SOURCE-SCHED: lw
22 ; SOURCE-SCHED: lwc1
23 ; SOURCE-SCHED: mtc1
24 ; SOURCE-SCHED: c.olt.s
25 ; SOURCE-SCHED: jr
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