brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 9206c25 Raw
96 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; Make sure this testcase codegens to the sin and cos instructions, not calls3; RUN: llc < %s -mtriple=i686-apple-macosx -mattr=-sse,-sse2,-sse3  | FileCheck %s4; RUN: llc < %s -mtriple=i686-apple-macosx -mattr=-sse,-sse2,-sse3 | FileCheck %s5 6declare float  @sinf(float) readonly7 8declare double @sin(double) readonly9 10declare x86_fp80 @sinl(x86_fp80) readonly11 12define float @test1(float %X) nounwind {13; CHECK-LABEL: test1:14; CHECK:       ## %bb.0:15; CHECK-NEXT:    subl $12, %esp16; CHECK-NEXT:    flds {{[0-9]+}}(%esp)17; CHECK-NEXT:    fstps (%esp)18; CHECK-NEXT:    calll _sinf19; CHECK-NEXT:    addl $12, %esp20; CHECK-NEXT:    retl21        %Y = call float @sinf(float %X) readonly22        ret float %Y23}24 25define double @test2(double %X) nounwind {26; CHECK-LABEL: test2:27; CHECK:       ## %bb.0:28; CHECK-NEXT:    subl $12, %esp29; CHECK-NEXT:    fldl {{[0-9]+}}(%esp)30; CHECK-NEXT:    fstpl (%esp)31; CHECK-NEXT:    calll _sin32; CHECK-NEXT:    addl $12, %esp33; CHECK-NEXT:    retl34        %Y = call double @sin(double %X) readonly35        ret double %Y36}37 38define x86_fp80 @test3(x86_fp80 %X) nounwind {39; CHECK-LABEL: test3:40; CHECK:       ## %bb.0:41; CHECK-NEXT:    subl $28, %esp42; CHECK-NEXT:    fldt {{[0-9]+}}(%esp)43; CHECK-NEXT:    fstpt (%esp)44; CHECK-NEXT:    calll _sinl45; CHECK-NEXT:    addl $28, %esp46; CHECK-NEXT:    retl47        %Y = call x86_fp80 @sinl(x86_fp80 %X) readonly48        ret x86_fp80 %Y49}50 51declare float @cosf(float) readonly52 53declare double @cos(double) readonly54 55declare x86_fp80 @cosl(x86_fp80) readonly56 57 58define float @test4(float %X) nounwind {59; CHECK-LABEL: test4:60; CHECK:       ## %bb.0:61; CHECK-NEXT:    subl $12, %esp62; CHECK-NEXT:    flds {{[0-9]+}}(%esp)63; CHECK-NEXT:    fstps (%esp)64; CHECK-NEXT:    calll _cosf65; CHECK-NEXT:    addl $12, %esp66; CHECK-NEXT:    retl67        %Y = call float @cosf(float %X) readonly68        ret float %Y69}70 71define double @test5(double %X) nounwind {72; CHECK-LABEL: test5:73; CHECK:       ## %bb.0:74; CHECK-NEXT:    subl $12, %esp75; CHECK-NEXT:    fldl {{[0-9]+}}(%esp)76; CHECK-NEXT:    fstpl (%esp)77; CHECK-NEXT:    calll _cos78; CHECK-NEXT:    addl $12, %esp79; CHECK-NEXT:    retl80        %Y = call double @cos(double %X) readonly81        ret double %Y82}83 84define x86_fp80 @test6(x86_fp80 %X) nounwind {85; CHECK-LABEL: test6:86; CHECK:       ## %bb.0:87; CHECK-NEXT:    subl $28, %esp88; CHECK-NEXT:    fldt {{[0-9]+}}(%esp)89; CHECK-NEXT:    fstpt (%esp)90; CHECK-NEXT:    calll _cosl91; CHECK-NEXT:    addl $28, %esp92; CHECK-NEXT:    retl93        %Y = call x86_fp80 @cosl(x86_fp80 %X) readonly94        ret x86_fp80 %Y95}96