55 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 @ldexpf_too_many_args(float %a, i32 %b, i32 %c) nounwind {6; CHECK-LABEL: ldexpf_too_many_args: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: ldexpf_too_many_args:14; CHECK-WIN: # %bb.0:15; CHECK-WIN-NEXT: subl $12, %esp16; CHECK-WIN-NEXT: flds {{[0-9]+}}(%esp)17; CHECK-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax18; CHECK-WIN-NEXT: movl {{[0-9]+}}(%esp), %ecx19; CHECK-WIN-NEXT: movl %ecx, {{[0-9]+}}(%esp)20; CHECK-WIN-NEXT: movl %eax, {{[0-9]+}}(%esp)21; CHECK-WIN-NEXT: fstps (%esp)22; CHECK-WIN-NEXT: calll _ldexpf23; CHECK-WIN-NEXT: addl $12, %esp24; CHECK-WIN-NEXT: retl25 %result = call float @ldexpf(float %a, i32 %b, i32 %c) #026 ret float %result27}28 29define float @ldexp_wrong_fp_type(float %a, i32 %b) nounwind {30; CHECK-LABEL: ldexp_wrong_fp_type:31; CHECK: # %bb.0:32; CHECK-NEXT: pushq %rax33; CHECK-NEXT: callq ldexp@PLT34; CHECK-NEXT: popq %rax35; CHECK-NEXT: retq36;37; CHECK-WIN-LABEL: ldexp_wrong_fp_type:38; CHECK-WIN: # %bb.0:39; CHECK-WIN-NEXT: subl $8, %esp40; CHECK-WIN-NEXT: flds {{[0-9]+}}(%esp)41; CHECK-WIN-NEXT: movl {{[0-9]+}}(%esp), %eax42; CHECK-WIN-NEXT: movl %eax, {{[0-9]+}}(%esp)43; CHECK-WIN-NEXT: fstps (%esp)44; CHECK-WIN-NEXT: calll _ldexp45; CHECK-WIN-NEXT: addl $8, %esp46; CHECK-WIN-NEXT: retl47 %result = call float @ldexp(float %a, i32 %b) #048 ret float %result49}50 51declare float @ldexpf(float, i32, i32) #052declare float @ldexp(float, i32) #053 54attributes #0 = { nounwind readnone }55