| ; 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"} |