| ; RUN: opt -instcombine -S < %s | FileCheck %s |
| |
| ; CHECK: test1 |
| define double @test1(float %a, double %b) nounwind readnone ssp uwtable { |
| ; CHECK-NOT: fsub |
| ; CHECK: fpext |
| ; CHECK: fadd |
| %1 = fsub float -0.000000e+00, %a |
| %2 = fpext float %1 to double |
| %3 = fsub double %b, %2 |
| ret double %3 |
| } |
| |
| ; CHECK: test2 |
| define double @test2(float %a, double %b) nounwind readnone ssp uwtable { |
| ; CHECK-NOT: fsub |
| ; CHECK: fpext |
| ; CHECK: fadd fast |
| %1 = fsub float -0.000000e+00, %a |
| %2 = fpext float %1 to double |
| %3 = fsub fast double %b, %2 |
| ret double %3 |
| } |