brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · c4f6e2f Raw
112 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel=0 | FileCheck %s --check-prefixes=X86,SDAG-X863; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -global-isel=0 | FileCheck %s --check-prefixes=SDAG-X644; RUN: llc < %s -mtriple=i686-linux-gnu -global-isel -global-isel-abort=1 | FileCheck %s --check-prefixes=X86,GISEL-X865; RUN: llc < %s -mtriple=x86_64-linux-gnu -global-isel -global-isel-abort=1 | FileCheck %s --check-prefixes=GISEL-X646 7define float @use_tanhf32(float %a) nounwind {8; SDAG-X86-LABEL: use_tanhf32:9; SDAG-X86:       # %bb.0:10; SDAG-X86-NEXT:    subl $12, %esp11; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)12; SDAG-X86-NEXT:    fstps (%esp)13; SDAG-X86-NEXT:    calll tanhf14; SDAG-X86-NEXT:    addl $12, %esp15; SDAG-X86-NEXT:    retl16;17; SDAG-X64-LABEL: use_tanhf32:18; SDAG-X64:       # %bb.0:19; SDAG-X64-NEXT:    jmp tanhf@PLT # TAILCALL20;21; GISEL-X86-LABEL: use_tanhf32:22; GISEL-X86:       # %bb.0:23; GISEL-X86-NEXT:    subl $12, %esp24; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax25; GISEL-X86-NEXT:    movl %eax, (%esp)26; GISEL-X86-NEXT:    calll tanhf27; GISEL-X86-NEXT:    addl $12, %esp28; GISEL-X86-NEXT:    retl29;30; GISEL-X64-LABEL: use_tanhf32:31; GISEL-X64:       # %bb.0:32; GISEL-X64-NEXT:    pushq %rax33; GISEL-X64-NEXT:    callq tanhf34; GISEL-X64-NEXT:    popq %rax35; GISEL-X64-NEXT:    retq36  %x = call float @llvm.tanh.f32(float %a)37  ret float %x38}39 40define double @use_tanhf64(double %a) nounwind {41; SDAG-X86-LABEL: use_tanhf64:42; SDAG-X86:       # %bb.0:43; SDAG-X86-NEXT:    subl $12, %esp44; SDAG-X86-NEXT:    fldl {{[0-9]+}}(%esp)45; SDAG-X86-NEXT:    fstpl (%esp)46; SDAG-X86-NEXT:    calll tanh47; SDAG-X86-NEXT:    addl $12, %esp48; SDAG-X86-NEXT:    retl49;50; SDAG-X64-LABEL: use_tanhf64:51; SDAG-X64:       # %bb.0:52; SDAG-X64-NEXT:    jmp tanh@PLT # TAILCALL53;54; GISEL-X86-LABEL: use_tanhf64:55; GISEL-X86:       # %bb.0:56; GISEL-X86-NEXT:    subl $12, %esp57; GISEL-X86-NEXT:    leal {{[0-9]+}}(%esp), %eax58; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx59; GISEL-X86-NEXT:    movl 4(%eax), %eax60; GISEL-X86-NEXT:    xorl %edx, %edx61; GISEL-X86-NEXT:    addl %esp, %edx62; GISEL-X86-NEXT:    movl %ecx, (%esp)63; GISEL-X86-NEXT:    movl %eax, 4(%edx)64; GISEL-X86-NEXT:    calll tanh65; GISEL-X86-NEXT:    addl $12, %esp66; GISEL-X86-NEXT:    retl67;68; GISEL-X64-LABEL: use_tanhf64:69; GISEL-X64:       # %bb.0:70; GISEL-X64-NEXT:    pushq %rax71; GISEL-X64-NEXT:    callq tanh72; GISEL-X64-NEXT:    popq %rax73; GISEL-X64-NEXT:    retq74  %x = call double @llvm.tanh.f64(double %a)75  ret double %x76}77 78define x86_fp80 @use_tanhf80(x86_fp80 %a) nounwind {79; X86-LABEL: use_tanhf80:80; X86:       # %bb.0:81; X86-NEXT:    subl $12, %esp82; X86-NEXT:    fldt {{[0-9]+}}(%esp)83; X86-NEXT:    fstpt (%esp)84; X86-NEXT:    calll tanhl85; X86-NEXT:    addl $12, %esp86; X86-NEXT:    retl87;88; SDAG-X64-LABEL: use_tanhf80:89; SDAG-X64:       # %bb.0:90; SDAG-X64-NEXT:    subq $24, %rsp91; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)92; SDAG-X64-NEXT:    fstpt (%rsp)93; SDAG-X64-NEXT:    callq tanhl@PLT94; SDAG-X64-NEXT:    addq $24, %rsp95; SDAG-X64-NEXT:    retq96;97; GISEL-X64-LABEL: use_tanhf80:98; GISEL-X64:       # %bb.0:99; GISEL-X64-NEXT:    subq $24, %rsp100; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)101; GISEL-X64-NEXT:    fstpt (%rsp)102; GISEL-X64-NEXT:    callq tanhl103; GISEL-X64-NEXT:    addq $24, %rsp104; GISEL-X64-NEXT:    retq105  %x = call x86_fp80 @llvm.tanh.f80(x86_fp80 %a)106  ret x86_fp80 %x107}108 109declare float @llvm.tanh.f32(float)110declare double @llvm.tanh.f64(double)111declare x86_fp80 @llvm.tanh.f80(x86_fp80)112