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 4define 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 15define 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 27define 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 39define 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 50define 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