51 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s3; RUN: llc < %s -mtriple=i386-pc-win32 | FileCheck %s -check-prefix=CHECK-WIN4 5define float @call_ldexpf(float %a, i32 %b) nounwind {6; CHECK-LABEL: call_ldexpf:7; CHECK: # %bb.0:8; CHECK-NEXT: pushq %rax9; CHECK-NEXT: callq ldexpf@PLT10; CHECK-NEXT: popq %rax11; CHECK-NEXT: retq12;13; CHECK-WIN-LABEL: call_ldexpf:14; CHECK-WIN: # %bb.0:15; CHECK-WIN-NEXT: subl $8, %esp16; CHECK-WIN-NEXT: flds {{[0-9]+}}(%esp)17; CHECK-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax18; CHECK-WIN-NEXT: movl %eax, {{[0-9]+}}(%esp)19; CHECK-WIN-NEXT: fstps (%esp)20; CHECK-WIN-NEXT: calll _ldexpf21; CHECK-WIN-NEXT: addl $8, %esp22; CHECK-WIN-NEXT: retl23 %result = call float @ldexpf(float %a, i32 %b)24 ret float %result25}26 27define double @call_ldexp(double %a, i32 %b) nounwind {28; CHECK-LABEL: call_ldexp:29; CHECK: # %bb.0:30; CHECK-NEXT: pushq %rax31; CHECK-NEXT: callq ldexp@PLT32; CHECK-NEXT: popq %rax33; CHECK-NEXT: retq34;35; CHECK-WIN-LABEL: call_ldexp:36; CHECK-WIN: # %bb.0:37; CHECK-WIN-NEXT: subl $12, %esp38; CHECK-WIN-NEXT: fldl {{[0-9]+}}(%esp)39; CHECK-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax40; CHECK-WIN-NEXT: movl %eax, {{[0-9]+}}(%esp)41; CHECK-WIN-NEXT: fstpl (%esp)42; CHECK-WIN-NEXT: calll _ldexp43; CHECK-WIN-NEXT: addl $12, %esp44; CHECK-WIN-NEXT: retl45 %result = call double @ldexp(double %a, i32 %b)46 ret double %result47}48 49declare float @ldexpf(float %a, i32 %b)50declare double @ldexp(double %a, i32 %b)51