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