xref: /llvm-project/llvm/test/CodeGen/X86/fp_constant_op.ll (revision 79e1847792c2270fa878cbfa7b7abcac02cdac49)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=i686-- -x86-asm-syntax=intel -mcpu=i486 | FileCheck %s
3
4; Test that the load of the constant is folded into the operation.
5
6
7define double @foo_add(double %P) {
8; CHECK-LABEL: foo_add:
9; CHECK:       # %bb.0:
10; CHECK-NEXT:    fld qword ptr [esp + 4]
11; CHECK-NEXT:    fadd dword ptr [{{\.?LCPI[0-9]+_[0-9]+}}]
12; CHECK-NEXT:    ret
13	%tmp.1 = fadd double %P, 1.230000e+02		; <double> [#uses=1]
14	ret double %tmp.1
15}
16
17define double @foo_mul(double %P) {
18; CHECK-LABEL: foo_mul:
19; CHECK:       # %bb.0:
20; CHECK-NEXT:    fld qword ptr [esp + 4]
21; CHECK-NEXT:    fmul dword ptr [{{\.?LCPI[0-9]+_[0-9]+}}]
22; CHECK-NEXT:    ret
23	%tmp.1 = fmul double %P, 1.230000e+02		; <double> [#uses=1]
24	ret double %tmp.1
25}
26
27define double @foo_sub(double %P) {
28; CHECK-LABEL: foo_sub:
29; CHECK:       # %bb.0:
30; CHECK-NEXT:    fld qword ptr [esp + 4]
31; CHECK-NEXT:    fadd dword ptr [{{\.?LCPI[0-9]+_[0-9]+}}]
32; CHECK-NEXT:    ret
33	%tmp.1 = fsub double %P, 1.230000e+02		; <double> [#uses=1]
34	ret double %tmp.1
35}
36
37define double @foo_subr(double %P) {
38; CHECK-LABEL: foo_subr:
39; CHECK:       # %bb.0:
40; CHECK-NEXT:    fld dword ptr [{{\.?LCPI[0-9]+_[0-9]+}}]
41; CHECK-NEXT:    fsub qword ptr [esp + 4]
42; CHECK-NEXT:    ret
43	%tmp.1 = fsub double 1.230000e+02, %P		; <double> [#uses=1]
44	ret double %tmp.1
45}
46
47define double @foo_div(double %P) {
48; CHECK-LABEL: foo_div:
49; CHECK:       # %bb.0:
50; CHECK-NEXT:    fld qword ptr [esp + 4]
51; CHECK-NEXT:    fdiv dword ptr [{{\.?LCPI[0-9]+_[0-9]+}}]
52; CHECK-NEXT:    ret
53	%tmp.1 = fdiv double %P, 1.230000e+02		; <double> [#uses=1]
54	ret double %tmp.1
55}
56
57define double @foo_divr(double %P) {
58; CHECK-LABEL: foo_divr:
59; CHECK:       # %bb.0:
60; CHECK-NEXT:    fld dword ptr [{{\.?LCPI[0-9]+_[0-9]+}}]
61; CHECK-NEXT:    fdiv qword ptr [esp + 4]
62; CHECK-NEXT:    ret
63	%tmp.1 = fdiv double 1.230000e+02, %P		; <double> [#uses=1]
64	ret double %tmp.1
65}
66
67