brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · aa56068 Raw
148 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=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=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_atan2f32(float %a, float %b) nounwind {8; SDAG-X86-LABEL: use_atan2f32:9; SDAG-X86:       # %bb.0:10; SDAG-X86-NEXT:    subl $12, %esp11; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)12; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)13; SDAG-X86-NEXT:    fstps {{[0-9]+}}(%esp)14; SDAG-X86-NEXT:    fstps (%esp)15; SDAG-X86-NEXT:    calll atan2f16; SDAG-X86-NEXT:    addl $12, %esp17; SDAG-X86-NEXT:    retl18;19; SDAG-X64-LABEL: use_atan2f32:20; SDAG-X64:       # %bb.0:21; SDAG-X64-NEXT:    jmp atan2f@PLT # TAILCALL22;23; GISEL-X86-LABEL: use_atan2f32:24; GISEL-X86:       # %bb.0:25; GISEL-X86-NEXT:    subl $12, %esp26; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax27; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx28; GISEL-X86-NEXT:    movl %eax, (%esp)29; GISEL-X86-NEXT:    movl %ecx, {{[0-9]+}}(%esp)30; GISEL-X86-NEXT:    calll atan2f31; GISEL-X86-NEXT:    addl $12, %esp32; GISEL-X86-NEXT:    retl33;34; GISEL-X64-LABEL: use_atan2f32:35; GISEL-X64:       # %bb.0:36; GISEL-X64-NEXT:    pushq %rax37; GISEL-X64-NEXT:    callq atan2f38; GISEL-X64-NEXT:    popq %rax39; GISEL-X64-NEXT:    retq40  %x = call float @llvm.atan2.f32(float %a, float %b)41  ret float %x42}43 44define double @use_atan2f64(double %a, double %b) nounwind {45; SDAG-X86-LABEL: use_atan2f64:46; SDAG-X86:       # %bb.0:47; SDAG-X86-NEXT:    subl $28, %esp48; SDAG-X86-NEXT:    fldl {{[0-9]+}}(%esp)49; SDAG-X86-NEXT:    fldl {{[0-9]+}}(%esp)50; SDAG-X86-NEXT:    fstpl {{[0-9]+}}(%esp)51; SDAG-X86-NEXT:    fstpl (%esp)52; SDAG-X86-NEXT:    calll atan253; SDAG-X86-NEXT:    addl $28, %esp54; SDAG-X86-NEXT:    retl55;56; SDAG-X64-LABEL: use_atan2f64:57; SDAG-X64:       # %bb.0:58; SDAG-X64-NEXT:    jmp atan2@PLT # TAILCALL59;60; GISEL-X86-LABEL: use_atan2f64:61; GISEL-X86:       # %bb.0:62; GISEL-X86-NEXT:    pushl %edi63; GISEL-X86-NEXT:    pushl %esi64; GISEL-X86-NEXT:    subl $20, %esp65; GISEL-X86-NEXT:    leal {{[0-9]+}}(%esp), %eax66; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %ecx67; GISEL-X86-NEXT:    movl 4(%eax), %eax68; GISEL-X86-NEXT:    leal {{[0-9]+}}(%esp), %edx69; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %esi70; GISEL-X86-NEXT:    movl 4(%edx), %edx71; GISEL-X86-NEXT:    xorl %edi, %edi72; GISEL-X86-NEXT:    addl %esp, %edi73; GISEL-X86-NEXT:    movl %ecx, (%esp)74; GISEL-X86-NEXT:    movl %eax, 4(%edi)75; GISEL-X86-NEXT:    movl $8, %eax76; GISEL-X86-NEXT:    addl %esp, %eax77; GISEL-X86-NEXT:    movl %esi, {{[0-9]+}}(%esp)78; GISEL-X86-NEXT:    movl %edx, 4(%eax)79; GISEL-X86-NEXT:    calll atan280; GISEL-X86-NEXT:    addl $20, %esp81; GISEL-X86-NEXT:    popl %esi82; GISEL-X86-NEXT:    popl %edi83; GISEL-X86-NEXT:    retl84;85; GISEL-X64-LABEL: use_atan2f64:86; GISEL-X64:       # %bb.0:87; GISEL-X64-NEXT:    pushq %rax88; GISEL-X64-NEXT:    callq atan289; GISEL-X64-NEXT:    popq %rax90; GISEL-X64-NEXT:    retq91  %x = call double @llvm.atan2.f64(double %a, double %b)92  ret double %x93}94 95define x86_fp80 @use_atan2f80(x86_fp80 %a, x86_fp80 %b) nounwind {96; SDAG-X86-LABEL: use_atan2f80:97; SDAG-X86:       # %bb.0:98; SDAG-X86-NEXT:    subl $28, %esp99; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)100; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)101; SDAG-X86-NEXT:    fstpt {{[0-9]+}}(%esp)102; SDAG-X86-NEXT:    fstpt (%esp)103; SDAG-X86-NEXT:    calll atan2l104; SDAG-X86-NEXT:    addl $28, %esp105; SDAG-X86-NEXT:    retl106;107; SDAG-X64-LABEL: use_atan2f80:108; SDAG-X64:       # %bb.0:109; SDAG-X64-NEXT:    subq $40, %rsp110; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)111; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)112; SDAG-X64-NEXT:    fstpt {{[0-9]+}}(%rsp)113; SDAG-X64-NEXT:    fstpt (%rsp)114; SDAG-X64-NEXT:    callq atan2l@PLT115; SDAG-X64-NEXT:    addq $40, %rsp116; SDAG-X64-NEXT:    retq117;118; GISEL-X86-LABEL: use_atan2f80:119; GISEL-X86:       # %bb.0:120; GISEL-X86-NEXT:    subl $28, %esp121; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)122; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)123; GISEL-X86-NEXT:    fxch %st(1)124; GISEL-X86-NEXT:    fstpt (%esp)125; GISEL-X86-NEXT:    fstpt {{[0-9]+}}(%esp)126; GISEL-X86-NEXT:    calll atan2l127; GISEL-X86-NEXT:    addl $28, %esp128; GISEL-X86-NEXT:    retl129;130; GISEL-X64-LABEL: use_atan2f80:131; GISEL-X64:       # %bb.0:132; GISEL-X64-NEXT:    subq $40, %rsp133; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)134; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)135; GISEL-X64-NEXT:    fxch %st(1)136; GISEL-X64-NEXT:    fstpt (%rsp)137; GISEL-X64-NEXT:    fstpt {{[0-9]+}}(%rsp)138; GISEL-X64-NEXT:    callq atan2l139; GISEL-X64-NEXT:    addq $40, %rsp140; GISEL-X64-NEXT:    retq141  %x = call x86_fp80 @llvm.atan2.f80(x86_fp80 %a, x86_fp80 %b)142  ret x86_fp80 %x143}144 145declare float @llvm.atan2.f32(float, float)146declare double @llvm.atan2.f64(double, double)147declare x86_fp80 @llvm.atan2.f80(x86_fp80, x86_fp80)148