blob: 6a51d2d371bba260e981e203312bef03fcdbc7f9 [file] [log] [blame]
Dan Gohmanc8054d92009-09-09 00:09:15 +00001; RUN: llc < %s
Richard Smith857efb02016-11-07 16:47:20 +00002; RUN: llc -O0 < %s
Chris Lattner7100fcd2005-04-30 04:07:15 +00003
Chris Lattner9efa7e72005-04-30 04:41:27 +00004;; SQRT
Tanya Lattner3f047732008-02-19 01:41:04 +00005declare float @llvm.sqrt.f32(float)
6
7declare double @llvm.sqrt.f64(double)
8
9define double @test_sqrt(float %F) {
10 %G = call float @llvm.sqrt.f32( float %F ) ; <float> [#uses=1]
11 %H = fpext float %G to double ; <double> [#uses=1]
12 %I = call double @llvm.sqrt.f64( double %H ) ; <double> [#uses=1]
13 ret double %I
Chris Lattner7100fcd2005-04-30 04:07:15 +000014}
Chris Lattner9efa7e72005-04-30 04:41:27 +000015
Tanya Lattner3f047732008-02-19 01:41:04 +000016
Chris Lattner9efa7e72005-04-30 04:41:27 +000017; SIN
Nate Begemana21bc752009-11-03 02:19:31 +000018declare float @sinf(float) readonly
Tanya Lattner3f047732008-02-19 01:41:04 +000019
Nate Begemana21bc752009-11-03 02:19:31 +000020declare double @sin(double) readonly
Tanya Lattner3f047732008-02-19 01:41:04 +000021
22define double @test_sin(float %F) {
23 %G = call float @sinf( float %F ) ; <float> [#uses=1]
24 %H = fpext float %G to double ; <double> [#uses=1]
25 %I = call double @sin( double %H ) ; <double> [#uses=1]
26 ret double %I
Chris Lattner9efa7e72005-04-30 04:41:27 +000027}
28
Tanya Lattner3f047732008-02-19 01:41:04 +000029
Chris Lattner9efa7e72005-04-30 04:41:27 +000030; COS
Nate Begemana21bc752009-11-03 02:19:31 +000031declare float @cosf(float) readonly
Tanya Lattner3f047732008-02-19 01:41:04 +000032
Nate Begemana21bc752009-11-03 02:19:31 +000033declare double @cos(double) readonly
Tanya Lattner3f047732008-02-19 01:41:04 +000034
35define double @test_cos(float %F) {
36 %G = call float @cosf( float %F ) ; <float> [#uses=1]
37 %H = fpext float %G to double ; <double> [#uses=1]
38 %I = call double @cos( double %H ) ; <double> [#uses=1]
39 ret double %I
Chris Lattner9efa7e72005-04-30 04:41:27 +000040}
Tanya Lattner3f047732008-02-19 01:41:04 +000041
Richard Smith857efb02016-11-07 16:47:20 +000042declare i8* @llvm.invariant.group.barrier(i8*)
43
44define i8* @barrier(i8* %p) {
45 %q = call i8* @llvm.invariant.group.barrier(i8* %p)
46 ret i8* %q
47}
Dan Gohman2c74fe92017-11-08 21:59:51 +000048
49; sideeffect
50
51declare void @llvm.sideeffect()
52
53define void @test_sideeffect() {
54 call void @llvm.sideeffect()
55 ret void
56}