58 lines · plain
1; RUN: opt < %s -passes=instcombine -mtriple=x86_64-apple-macosx -S | FileCheck %s2target triple = "x86_64-apple-macosx"3 4define double @test1(double %a, double %b) nounwind {5 %wa = fpext double %a to x86_fp806 %wb = fpext double %b to x86_fp807 %wr = fadd x86_fp80 %wa, %wb8 %r = fptrunc x86_fp80 %wr to double9 ret double %r10; CHECK: test111; CHECK: fadd x86_fp8012; CHECK: ret13}14 15define double @test2(double %a, double %b) nounwind {16 %wa = fpext double %a to x86_fp8017 %wb = fpext double %b to x86_fp8018 %wr = fsub x86_fp80 %wa, %wb19 %r = fptrunc x86_fp80 %wr to double20 ret double %r21; CHECK: test222; CHECK: fsub x86_fp8023; CHECK: ret24}25 26define double @test3(double %a, double %b) nounwind {27 %wa = fpext double %a to x86_fp8028 %wb = fpext double %b to x86_fp8029 %wr = fmul x86_fp80 %wa, %wb30 %r = fptrunc x86_fp80 %wr to double31 ret double %r32; CHECK: test333; CHECK: fmul x86_fp8034; CHECK: ret35}36 37define double @test4(double %a, half %b) nounwind {38 %wa = fpext double %a to x86_fp8039 %wb = fpext half %b to x86_fp8040 %wr = fmul x86_fp80 %wa, %wb41 %r = fptrunc x86_fp80 %wr to double42 ret double %r43; CHECK: test444; CHECK: fmul double45; CHECK: ret46}47 48define double @test5(double %a, double %b) nounwind {49 %wa = fpext double %a to x86_fp8050 %wb = fpext double %b to x86_fp8051 %wr = fdiv x86_fp80 %wa, %wb52 %r = fptrunc x86_fp80 %wr to double53 ret double %r54; CHECK: test555; CHECK: fdiv x86_fp8056; CHECK: ret57}58