1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=x86_64-unknown-unknown -mattr=avx -enable-unsafe-fp-math --enable-no-nans-fp-math < %s | FileCheck %s
4 define float @test1(float %a) {
7 ; CHECK-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0
9 %t1 = fadd float %a, %a
10 %r = fadd float %t1, %t1
14 define float @test2(float %a) {
17 ; CHECK-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0
19 %t1 = fmul float 4.0, %a
20 %t2 = fadd float %a, %a
21 %r = fadd float %t1, %t2
25 define float @test3(float %a) {
28 ; CHECK-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0
30 %t1 = fmul float %a, 4.0
31 %t2 = fadd float %a, %a
32 %r = fadd float %t1, %t2
36 define float @test4(float %a) {
39 ; CHECK-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0
41 %t1 = fadd float %a, %a
42 %t2 = fmul float 4.0, %a
43 %r = fadd float %t1, %t2
47 define float @test5(float %a) {
50 ; CHECK-NEXT: vmulss {{.*}}(%rip), %xmm0, %xmm0
52 %t1 = fadd float %a, %a
53 %t2 = fmul float %a, 4.0
54 %r = fadd float %t1, %t2
58 define float @test6(float %a) {
61 ; CHECK-NEXT: vxorps %xmm0, %xmm0, %xmm0
63 %t1 = fmul float 2.0, %a
64 %t2 = fadd float %a, %a
65 %r = fsub float %t1, %t2
69 define float @test7(float %a) {
72 ; CHECK-NEXT: vxorps %xmm0, %xmm0, %xmm0
74 %t1 = fmul float %a, 2.0
75 %t2 = fadd float %a, %a
76 %r = fsub float %t1, %t2
80 define float @test8(float %a) {
84 %t1 = fmul float %a, 0.0
85 %t2 = fadd float %a, %t1
89 define float @test9(float %a) {
93 %t1 = fmul float 0.0, %a
94 %t2 = fadd float %t1, %a
98 define float @test10(float %a) {
99 ; CHECK-LABEL: test10:
101 ; CHECK-NEXT: vxorps %xmm0, %xmm0, %xmm0
103 %t1 = fsub float -0.0, %a
104 %t2 = fadd float %a, %t1