brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.9 KiB · 6160cd1 Raw
215 lines · plain
1; RUN: llc -mtriple=mips64 -mcpu=mips64r2 -mattr=+soft-float -O2 < %s | FileCheck %s2 3define void @foosf() #0 {4entry:5  %in = alloca float, align 46  %out = alloca float, align 47  store volatile float 0xBFD59E1380000000, ptr %in, align 48  %in.0.in.0. = load volatile float, ptr %in, align 49  %rintf = tail call float @rintf(float %in.0.in.0.) #110  store volatile float %rintf, ptr %out, align 411  ret void12 13; CHECK-LABEL:      foosf14; CHECK-NOT:        dsll15; CHECK-NOT:        dsrl16; CHECK-NOT:        lwu17}18 19declare float @rintf(float)20 21define float @foosf1(ptr nocapture readonly %a) #0 {22entry:23  %0 = load float, ptr %a, align 424  %call = tail call float @roundf(float %0) #225  ret float %call26 27; CHECK-LABEL:      foosf128; CHECK-NOT:        dsll29; CHECK-NOT:        dsrl30; CHECK-NOT:        lwu31}32 33declare float @roundf(float) #134 35define float @foosf2(ptr nocapture readonly %a) #0 {36entry:37  %0 = load float, ptr %a, align 438  %call = tail call float @truncf(float %0) #239  ret float %call40 41; CHECK-LABEL:      foosf242; CHECK-NOT:        dsll43; CHECK-NOT:        dsrl44; CHECK-NOT:        lwu45}46 47declare float @truncf(float) #148 49define float @foosf3(ptr nocapture readonly %a) #0 {50entry:51  %0 = load float, ptr %a, align 452  %call = tail call float @floorf(float %0) #253  ret float %call54 55; CHECK-LABEL:      foosf356; CHECK-NOT:        dsll57; CHECK-NOT:        dsrl58; CHECK-NOT:        lwu59}60 61declare float @floorf(float) #162 63define float @foosf4(ptr nocapture readonly %a) #0 {64entry:65  %0 = load float, ptr %a, align 466  %call = tail call float @nearbyintf(float %0) #267  ret float %call68 69; CHECK-LABEL:      foosf470; CHECK-NOT:        dsll71; CHECK-NOT:        dsrl72; CHECK-NOT:        lwu73}74 75declare float @nearbyintf(float) #176 77define float @foosf5(ptr nocapture readonly %a) #0 {78entry:79  %0 = load float, ptr %a, align 480  %mul = fmul float %0, undef81  ret float %mul82 83; CHECK-LABEL:      foosf584; CHECK-NOT:        dsll85; CHECK-NOT:        dsrl86; CHECK-NOT:        lwu87}88 89define float @foosf6(ptr nocapture readonly %a) #0 {90entry:91  %0 = load float, ptr %a, align 492  %sub = fsub float %0, undef93  ret float %sub94 95; CHECK-LABEL:      foosf696; CHECK-NOT:        dsll97; CHECK-NOT:        dsrl98; CHECK-NOT:        lwu99}100 101define float @foosf7(ptr nocapture readonly %a) #0 {102entry:103  %0 = load float, ptr %a, align 4104  %add = fadd float %0, undef105  ret float %add106 107; CHECK-LABEL:      foosf7108; CHECK-NOT:        dsll109; CHECK-NOT:        dsrl110; CHECK-NOT:        lwu111}112 113define float @foosf8(ptr nocapture readonly %a) #0 {114entry:115  %b = alloca float, align 4116  %b.0.b.0. = load volatile float, ptr %b, align 4117  %0 = load float, ptr %a, align 4118  %div = fdiv float %b.0.b.0., %0119  ret float %div120 121; CHECK-LABEL:      foosf8122; CHECK-NOT:        dsll123; CHECK-NOT:        dsrl124; CHECK-NOT:        lwu125}126 127define float @foosf9() #0 {128entry:129  %b = alloca float, align 4130  %b.0.b.0. = load volatile float, ptr %b, align 4131  %conv = fpext float %b.0.b.0. to double132  %b.0.b.0.3 = load volatile float, ptr %b, align 4133  %conv1 = fpext float %b.0.b.0.3 to double134  %call = tail call double @pow(double %conv, double %conv1) #1135  %conv2 = fptrunc double %call to float136  ret float %conv2137 138; CHECK-LABEL:      foosf9139; CHECK-NOT:        dsll140; CHECK-NOT:        dsrl141; CHECK-NOT:        lwu142}143 144declare double @pow(double, double) #0145 146define float @foosf10() #0 {147entry:148  %a = alloca float, align 4149  %a.0.a.0. = load volatile float, ptr %a, align 4150  %conv = fpext float %a.0.a.0. to double151  %call = tail call double @sin(double %conv) #1152  %conv1 = fptrunc double %call to float153  ret float %conv1154 155; CHECK-LABEL:      foosf10156; CHECK-NOT:        dsll157; CHECK-NOT:        dsrl158; CHECK-NOT:        lwu159}160 161declare double @sin(double) #0162 163define float @foosf11() #0 {164entry:165  %b = alloca float, align 4166  %b.0.b.0. = load volatile float, ptr %b, align 4167  %call = tail call float @ceilf(float %b.0.b.0.) #2168  ret float %call169 170; CHECK-LABEL:      foosf11171; CHECK-NOT:        dsll172; CHECK-NOT:        dsrl173; CHECK-NOT:        lwu174}175 176declare float @ceilf(float) #1177 178define float @foosf12() #0 {179entry:180  %b = alloca float, align 4181  %a = alloca float, align 4182  %b.0.b.0. = load volatile float, ptr %b, align 4183  %a.0.a.0. = load volatile float, ptr %a, align 4184  %call = tail call float @fmaxf(float %b.0.b.0., float %a.0.a.0.) #2185  ret float %call186 187; CHECK-LABEL:      foosf12188; CHECK-NOT:        dsll189; CHECK-NOT:        dsrl190; CHECK-NOT:        lwu191}192 193declare float @fmaxf(float, float) #1194 195define float @foosf13() #0 {196entry:197  %b = alloca float, align 4198  %a = alloca float, align 4199  %b.0.b.0. = load volatile float, ptr %b, align 4200  %a.0.a.0. = load volatile float, ptr %a, align 4201  %call = tail call float @fminf(float %b.0.b.0., float %a.0.a.0.) #2202  ret float %call203 204; CHECK-LABEL:      foosf13205; CHECK-NOT:        dsll206; CHECK-NOT:        dsrl207; CHECK-NOT:        lwu208}209 210declare float @fminf(float, float) #1211 212 213attributes #0 = { nounwind "use-soft-float"="true" }214attributes #1 = { nounwind readnone "use-soft-float"="true" }215