1; Make sure this testcase codegens to the sin and cos instructions, not calls 2; RUN: llc < %s -mtriple=i686-apple-macosx -mattr=-sse,-sse2,-sse3 -enable-unsafe-fp-math | FileCheck %s --check-prefix=SIN 3; RUN: llc < %s -mtriple=i686-apple-macosx -mattr=-sse,-sse2,-sse3 -enable-unsafe-fp-math | FileCheck %s --check-prefix=COS 4 5declare float @sinf(float) readonly 6 7declare double @sin(double) readonly 8 9declare x86_fp80 @sinl(x86_fp80) readonly 10 11; SIN: test1: 12define float @test1(float %X) { 13 %Y = call float @sinf(float %X) readonly 14 ret float %Y 15} 16; SIN: {{^[ \t]*fsin$}} 17 18; SIN-NOT: fsin 19 20; SIN: test2: 21define double @test2(double %X) { 22 %Y = call double @sin(double %X) readonly 23 ret double %Y 24} 25; SIN: {{^[ \t]*fsin$}} 26 27; SIN-NOT: fsin 28 29; SIN: test3: 30define x86_fp80 @test3(x86_fp80 %X) { 31 %Y = call x86_fp80 @sinl(x86_fp80 %X) readonly 32 ret x86_fp80 %Y 33} 34; SIN: {{^[ \t]*fsin$}} 35 36; SIN-NOT: fsin 37; COS-NOT: fcos 38declare float @cosf(float) readonly 39 40declare double @cos(double) readonly 41 42declare x86_fp80 @cosl(x86_fp80) readonly 43 44 45; SIN: test4: 46; COS: test3: 47define float @test4(float %X) { 48 %Y = call float @cosf(float %X) readonly 49 ret float %Y 50} 51; COS: {{^[ \t]*fcos}} 52 53define double @test5(double %X) { 54 %Y = call double @cos(double %X) readonly 55 ret double %Y 56} 57; COS: {{^[ \t]*fcos}} 58 59define x86_fp80 @test6(x86_fp80 %X) { 60 %Y = call x86_fp80 @cosl(x86_fp80 %X) readonly 61 ret x86_fp80 %Y 62} 63; COS: {{^[ \t]*fcos}} 64 65; SIN-NOT: fsin 66; COS-NOT: fcos 67