Revert "DI: Fold constant arguments into a single MDString"
[oota-llvm.git] / test / CodeGen / X86 / sincos.ll
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 ; RUN: llc < %s -mtriple=i686-apple-macosx -mattr=-sse,-sse2,-sse3 | FileCheck %s --check-prefix=SAFE
5
6 declare float  @sinf(float) readonly
7
8 declare double @sin(double) readonly
9
10 declare x86_fp80 @sinl(x86_fp80) readonly
11
12 ; SIN-LABEL: test1:
13 define float @test1(float %X) {
14         %Y = call float @sinf(float %X) readonly
15         ret float %Y
16 }
17 ; SIN: {{^[ \t]*fsin$}}
18
19 ; SIN-NOT: fsin
20
21 ; SAFE: test1
22 ; SAFE-NOT: fsin
23
24 ; SIN-LABEL: test2:
25 define double @test2(double %X) {
26         %Y = call double @sin(double %X) readonly
27         ret double %Y
28 }
29 ; SIN: {{^[ \t]*fsin$}}
30
31 ; SIN-NOT: fsin
32
33 ; SAFE: test2
34 ; SAFE-NOT: fsin
35
36 ; SIN-LABEL: test3:
37 define x86_fp80 @test3(x86_fp80 %X) {
38         %Y = call x86_fp80 @sinl(x86_fp80 %X) readonly
39         ret x86_fp80 %Y
40 }
41 ; SIN: {{^[ \t]*fsin$}}
42
43 ; SIN-NOT: fsin
44 ; COS-NOT: fcos
45 declare float @cosf(float) readonly
46
47 declare double @cos(double) readonly
48
49 declare x86_fp80 @cosl(x86_fp80) readonly
50
51
52 ; SIN-LABEL: test4:
53 ; COS-LABEL: test3:
54 define float @test4(float %X) {
55         %Y = call float @cosf(float %X) readonly
56         ret float %Y
57 }
58 ; COS: {{^[ \t]*fcos}}
59
60 ; SAFE: test4
61 ; SAFE-NOT: fcos
62
63 define double @test5(double %X) {
64         %Y = call double @cos(double %X) readonly
65         ret double %Y
66 }
67 ; COS: {{^[ \t]*fcos}}
68
69 ; SAFE: test5
70 ; SAFE-NOT: fcos
71
72 define x86_fp80 @test6(x86_fp80 %X) {
73         %Y = call x86_fp80 @cosl(x86_fp80 %X) readonly
74         ret x86_fp80 %Y
75 }
76 ; COS: {{^[ \t]*fcos}}
77
78 ; SIN-NOT: fsin
79 ; COS-NOT: fcos