blob: 35f768cea7939308480e03a61d96c8896692a008 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc < %s -mtriple=x86_64-pc-windows-msvc | FileCheck %s
define { x86_fp80, x86_fp80 } @test_modf(x86_fp80 %val) {
; CHECK-LABEL: test_modf:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: pushq %rsi
; CHECK-NEXT: .seh_pushreg %rsi
; CHECK-NEXT: subq $64, %rsp
; CHECK-NEXT: .seh_stackalloc 64
; CHECK-NEXT: .seh_endprologue
; CHECK-NEXT: movq %rcx, %rsi
; CHECK-NEXT: fldt (%rdx)
; CHECK-NEXT: fstpt {{[0-9]+}}(%rsp)
; CHECK-NEXT: leaq 16(%rcx), %r8
; CHECK-NEXT: leaq {{[0-9]+}}(%rsp), %rcx
; CHECK-NEXT: leaq {{[0-9]+}}(%rsp), %rdx
; CHECK-NEXT: callq modfl
; CHECK-NEXT: fldt {{[0-9]+}}(%rsp)
; CHECK-NEXT: fstpt (%rsi)
; CHECK-NEXT: movq %rsi, %rax
; CHECK-NEXT: .seh_startepilogue
; CHECK-NEXT: addq $64, %rsp
; CHECK-NEXT: popq %rsi
; CHECK-NEXT: .seh_endepilogue
; CHECK-NEXT: retq
; CHECK-NEXT: .seh_endproc
entry:
%0 = call { x86_fp80, x86_fp80 } @llvm.modf.f80(x86_fp80 %val)
ret { x86_fp80, x86_fp80 } %0
}
!llvm.module.flags = !{!3409}
!3409 = !{i32 1, !"long-double-type", !"x86_fp80"}