xref: /aosp_15_r20/external/llvm/test/CodeGen/Mips/selectcc.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=pic < %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32 -pre-RA-sched=source -relocation-model=pic < %s | FileCheck %s --check-prefix=SOURCE-SCHED
3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r2 -relocation-model=pic < %s
4*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel -mcpu=mips32r2 -pre-RA-sched=source -relocation-model=pic < %s | FileCheck %s --check-prefix=SOURCE-SCHED
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@gf0 = external global float
7*9880d681SAndroid Build Coastguard Worker@gf1 = external global float
8*9880d681SAndroid Build Coastguard Worker@gd0 = external global double
9*9880d681SAndroid Build Coastguard Worker@gd1 = external global double
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Workerdefine float @select_cc_f32(float %a, float %b) nounwind {
12*9880d681SAndroid Build Coastguard Workerentry:
13*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: lui
14*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: addiu
15*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: addu
16*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: lw
17*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: sw
18*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: lw
19*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: lui
20*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: sw
21*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: lw
22*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: lwc1
23*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: mtc1
24*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: c.olt.s
25*9880d681SAndroid Build Coastguard Worker; SOURCE-SCHED: jr
26*9880d681SAndroid Build Coastguard Worker  store float 0.000000e+00, float* @gf0, align 4
27*9880d681SAndroid Build Coastguard Worker  store float 1.000000e+00, float* @gf1, align 4
28*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp olt float %a, %b
29*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
30*9880d681SAndroid Build Coastguard Worker  %conv1 = sitofp i32 %conv to float
31*9880d681SAndroid Build Coastguard Worker  ret float %conv1
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerdefine double @select_cc_f64(double %a, double %b) nounwind {
35*9880d681SAndroid Build Coastguard Workerentry:
36*9880d681SAndroid Build Coastguard Worker  store double 0.000000e+00, double* @gd0, align 8
37*9880d681SAndroid Build Coastguard Worker  store double 1.000000e+00, double* @gd1, align 8
38*9880d681SAndroid Build Coastguard Worker  %cmp = fcmp olt double %a, %b
39*9880d681SAndroid Build Coastguard Worker  %conv = zext i1 %cmp to i32
40*9880d681SAndroid Build Coastguard Worker  %conv1 = sitofp i32 %conv to double
41*9880d681SAndroid Build Coastguard Worker  ret double %conv1
42*9880d681SAndroid Build Coastguard Worker}
43*9880d681SAndroid Build Coastguard Worker
44