Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 1 | ; Make sure this testcase codegens to the sin and cos instructions, not calls |
Bob Wilson | 5f91a99 | 2012-08-08 20:31:37 +0000 | [diff] [blame] | 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 |
Benjamin Kramer | 562b240 | 2012-09-15 12:44:27 +0000 | [diff] [blame] | 4 | ; RUN: llc < %s -mtriple=i686-apple-macosx -mattr=-sse,-sse2,-sse3 | FileCheck %s --check-prefix=SAFE |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 5 | |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 6 | declare float @sinf(float) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 7 | |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 8 | declare double @sin(double) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 9 | |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 10 | declare x86_fp80 @sinl(x86_fp80) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 11 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 12 | ; SIN: test1: |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 13 | define float @test1(float %X) { |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 14 | %Y = call float @sinf(float %X) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 15 | ret float %Y |
| 16 | } |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 17 | ; SIN: {{^[ \t]*fsin$}} |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 18 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 19 | ; SIN-NOT: fsin |
| 20 | |
Benjamin Kramer | 562b240 | 2012-09-15 12:44:27 +0000 | [diff] [blame] | 21 | ; SAFE: test1 |
| 22 | ; SAFE-NOT: fsin |
| 23 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 24 | ; SIN: test2: |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 25 | define double @test2(double %X) { |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 26 | %Y = call double @sin(double %X) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 27 | ret double %Y |
| 28 | } |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 29 | ; SIN: {{^[ \t]*fsin$}} |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 30 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 31 | ; SIN-NOT: fsin |
| 32 | |
Benjamin Kramer | 562b240 | 2012-09-15 12:44:27 +0000 | [diff] [blame] | 33 | ; SAFE: test2 |
| 34 | ; SAFE-NOT: fsin |
| 35 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 36 | ; SIN: test3: |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 37 | define x86_fp80 @test3(x86_fp80 %X) { |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 38 | %Y = call x86_fp80 @sinl(x86_fp80 %X) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 39 | ret x86_fp80 %Y |
| 40 | } |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 41 | ; SIN: {{^[ \t]*fsin$}} |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 42 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 43 | ; SIN-NOT: fsin |
| 44 | ; COS-NOT: fcos |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 45 | declare float @cosf(float) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 46 | |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 47 | declare double @cos(double) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 48 | |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 49 | declare x86_fp80 @cosl(x86_fp80) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 50 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 51 | |
| 52 | ; SIN: test4: |
| 53 | ; COS: test3: |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 54 | define float @test4(float %X) { |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 55 | %Y = call float @cosf(float %X) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 56 | ret float %Y |
| 57 | } |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 58 | ; COS: {{^[ \t]*fcos}} |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 59 | |
Benjamin Kramer | 562b240 | 2012-09-15 12:44:27 +0000 | [diff] [blame] | 60 | ; SAFE: test4 |
| 61 | ; SAFE-NOT: fcos |
| 62 | |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 63 | define double @test5(double %X) { |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 64 | %Y = call double @cos(double %X) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 65 | ret double %Y |
| 66 | } |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 67 | ; COS: {{^[ \t]*fcos}} |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 68 | |
Benjamin Kramer | 562b240 | 2012-09-15 12:44:27 +0000 | [diff] [blame] | 69 | ; SAFE: test5 |
| 70 | ; SAFE-NOT: fcos |
| 71 | |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 72 | define x86_fp80 @test6(x86_fp80 %X) { |
Dale Johannesen | 1d73742 | 2009-09-25 18:15:29 +0000 | [diff] [blame] | 73 | %Y = call x86_fp80 @cosl(x86_fp80 %X) readonly |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 74 | ret x86_fp80 %Y |
| 75 | } |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 76 | ; COS: {{^[ \t]*fcos}} |
Dale Johannesen | fe5293d | 2007-09-26 21:12:10 +0000 | [diff] [blame] | 77 | |
NAKAMURA Takumi | ea957f0 | 2012-07-03 03:59:22 +0000 | [diff] [blame] | 78 | ; SIN-NOT: fsin |
| 79 | ; COS-NOT: fcos |