| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- ; RUN: opt < %s -instcombine -mtriple=x86_64-apple-macosx -S | FileCheck %s
- target triple = "x86_64-apple-macosx"
- define double @test1(double %a, double %b) nounwind {
- %wa = fpext double %a to x86_fp80
- %wb = fpext double %b to x86_fp80
- %wr = fadd x86_fp80 %wa, %wb
- %r = fptrunc x86_fp80 %wr to double
- ret double %r
- ; CHECK: test1
- ; CHECK: fadd x86_fp80
- ; CHECK: ret
- }
- define double @test2(double %a, double %b) nounwind {
- %wa = fpext double %a to x86_fp80
- %wb = fpext double %b to x86_fp80
- %wr = fsub x86_fp80 %wa, %wb
- %r = fptrunc x86_fp80 %wr to double
- ret double %r
- ; CHECK: test2
- ; CHECK: fsub x86_fp80
- ; CHECK: ret
- }
- define double @test3(double %a, double %b) nounwind {
- %wa = fpext double %a to x86_fp80
- %wb = fpext double %b to x86_fp80
- %wr = fmul x86_fp80 %wa, %wb
- %r = fptrunc x86_fp80 %wr to double
- ret double %r
- ; CHECK: test3
- ; CHECK: fmul x86_fp80
- ; CHECK: ret
- }
- define double @test4(double %a, half %b) nounwind {
- %wa = fpext double %a to x86_fp80
- %wb = fpext half %b to x86_fp80
- %wr = fmul x86_fp80 %wa, %wb
- %r = fptrunc x86_fp80 %wr to double
- ret double %r
- ; CHECK: test4
- ; CHECK: fmul double
- ; CHECK: ret
- }
- define double @test5(double %a, double %b) nounwind {
- %wa = fpext double %a to x86_fp80
- %wb = fpext double %b to x86_fp80
- %wr = fdiv x86_fp80 %wa, %wb
- %r = fptrunc x86_fp80 %wr to double
- ret double %r
- ; CHECK: test5
- ; CHECK: fdiv x86_fp80
- ; CHECK: ret
- }
|