brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 7bf1658 Raw
172 lines · plain
1; RUN: llc < %s -mtriple=xcore | FileCheck %s2declare double @llvm.cos.f64(double)3declare double @llvm.exp.f64(double)4declare double @llvm.exp2.f64(double)5declare double @llvm.log.f64(double)6declare double @llvm.log10.f64(double)7declare double @llvm.log2.f64(double)8declare double @llvm.pow.f64(double, double)9declare double @llvm.powi.f64.i32(double, i32)10declare double @llvm.sin.f64(double)11declare double @llvm.sqrt.f64(double)12 13define double @cos(double %F) {14; CHECK-LABEL: cos:15; CHECK: bl cos16        %result = call double @llvm.cos.f64(double %F)17	ret double %result18}19 20declare float @llvm.cos.f32(float)21 22; CHECK-LABEL: cosf:23; CHECK: bl cosf24define float @cosf(float %F) {25        %result = call float @llvm.cos.f32(float %F)26	ret float %result27}28 29define double @exp(double %F) {30; CHECK-LABEL: exp:31; CHECK: bl exp32        %result = call double @llvm.exp.f64(double %F)33	ret double %result34}35 36declare float @llvm.exp.f32(float)37 38define float @expf(float %F) {39; CHECK-LABEL: expf:40; CHECK: bl expf41        %result = call float @llvm.exp.f32(float %F)42	ret float %result43}44 45define double @exp2(double %F) {46; CHECK-LABEL: exp2:47; CHECK: bl exp248        %result = call double @llvm.exp2.f64(double %F)49	ret double %result50}51 52declare float @llvm.exp2.f32(float)53 54define float @exp2f(float %F) {55; CHECK-LABEL: exp2f:56; CHECK: bl exp2f57        %result = call float @llvm.exp2.f32(float %F)58	ret float %result59}60 61define double @log(double %F) {62; CHECK-LABEL: log:63; CHECK: bl log64        %result = call double @llvm.log.f64(double %F)65	ret double %result66}67 68declare float @llvm.log.f32(float)69 70define float @logf(float %F) {71; CHECK-LABEL: logf:72; CHECK: bl logf73        %result = call float @llvm.log.f32(float %F)74	ret float %result75}76 77define double @log10(double %F) {78; CHECK-LABEL: log10:79; CHECK: bl log1080        %result = call double @llvm.log10.f64(double %F)81	ret double %result82}83 84declare float @llvm.log10.f32(float)85 86define float @log10f(float %F) {87; CHECK-LABEL: log10f:88; CHECK: bl log10f89        %result = call float @llvm.log10.f32(float %F)90	ret float %result91}92 93define double @log2(double %F) {94; CHECK-LABEL: log2:95; CHECK: bl log296        %result = call double @llvm.log2.f64(double %F)97	ret double %result98}99 100declare float @llvm.log2.f32(float)101 102define float @log2f(float %F) {103; CHECK-LABEL: log2f:104; CHECK: bl log2f105        %result = call float @llvm.log2.f32(float %F)106	ret float %result107}108 109define double @pow(double %F, double %power) {110; CHECK-LABEL: pow:111; CHECK: bl pow112        %result = call double @llvm.pow.f64(double %F, double %power)113	ret double %result114}115 116declare float @llvm.pow.f32(float, float)117 118define float @powf(float %F, float %power) {119; CHECK-LABEL: powf:120; CHECK: bl powf121        %result = call float @llvm.pow.f32(float %F, float %power)122	ret float %result123}124 125define double @powi(double %F, i32 %power) {126; CHECK-LABEL: powi:127; CHECK: bl __powidf2128        %result = call double @llvm.powi.f64.i32(double %F, i32 %power)129	ret double %result130}131 132declare float @llvm.powi.f32.i32(float, i32)133 134define float @powif(float %F, i32 %power) {135; CHECK-LABEL: powif:136; CHECK: bl __powisf2137        %result = call float @llvm.powi.f32.i32(float %F, i32 %power)138	ret float %result139}140 141define double @sin(double %F) {142; CHECK-LABEL: sin:143; CHECK: bl sin144        %result = call double @llvm.sin.f64(double %F)145	ret double %result146}147 148declare float @llvm.sin.f32(float)149 150define float @sinf(float %F) {151; CHECK-LABEL: sinf:152; CHECK: bl sinf153        %result = call float @llvm.sin.f32(float %F)154	ret float %result155}156 157define double @sqrt(double %F) {158; CHECK-LABEL: sqrt:159; CHECK: bl sqrt160        %result = call double @llvm.sqrt.f64(double %F)161	ret double %result162}163 164declare float @llvm.sqrt.f32(float)165 166define float @sqrtf(float %F) {167; CHECK-LABEL: sqrtf:168; CHECK: bl sqrtf169        %result = call float @llvm.sqrt.f32(float %F)170	ret float %result171}172