Home | History | Annotate | Download | only in X86
      1 ; RUN: llc -march=x86-64 -mattr=+avx,-fma4 -mtriple=x86_64-apple-darwin -enable-unsafe-fp-math < %s | FileCheck %s
      2 
      3 ; CHECK: test1
      4 define float @test1(float %a) {
      5 ; CHECK-NOT: addss
      6 ; CHECK: mulss
      7 ; CHECK-NOT: addss
      8 ; CHECK: ret
      9   %t1 = fadd float %a, %a
     10   %r = fadd float %t1, %t1
     11   ret float %r
     12 }
     13 
     14 ; CHECK: test2
     15 define float @test2(float %a) {
     16 ; CHECK-NOT: addss
     17 ; CHECK: mulss
     18 ; CHECK-NOT: addss
     19 ; CHECK: ret
     20   %t1 = fmul float 4.0, %a
     21   %t2 = fadd float %a, %a
     22   %r = fadd float %t1, %t2
     23   ret float %r
     24 }
     25 
     26 ; CHECK: test3
     27 define float @test3(float %a) {
     28 ; CHECK-NOT: addss
     29 ; CHECK: xorps
     30 ; CHECK-NOT: addss
     31 ; CHECK: ret
     32   %t1 = fmul float 2.0, %a
     33   %t2 = fadd float %a, %a
     34   %r = fsub float %t1, %t2
     35   ret float %r
     36 }
     37 
     38 ; CHECK: test4
     39 define float @test4(float %a) {
     40 ; CHECK-NOT: fma
     41 ; CHECK-NOT: mul
     42 ; CHECK-NOT: add
     43 ; CHECK: ret
     44   %t1 = fmul float %a, 0.0
     45   %t2 = fadd float %a, %t1
     46   ret float %t2
     47 }
     48 
     49 ; CHECK: test5
     50 define float @test5(float %a) {
     51 ; CHECK-NOT: add
     52 ; CHECK: vxorps
     53 ; CHECK: ret
     54   %t1 = fsub float -0.0, %a
     55   %t2 = fadd float %a, %t1
     56   ret float %t2
     57 }
     58