mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
Combine various XCore tests for floating point intrinsic support into a single test.
llvm-svn: 143458
This commit is contained in:
parent
280d51dd14
commit
8175a9601d
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.cos.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl cos
|
||||
%result = call double @llvm.cos.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.cos.f32(float)
|
||||
|
||||
; CHECK: testf:
|
||||
; CHECK: bl cosf
|
||||
define float @testf(float %F) {
|
||||
%result = call float @llvm.cos.f32(float %F)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.exp.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl exp
|
||||
%result = call double @llvm.exp.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.exp.f32(float)
|
||||
|
||||
define float @testf(float %F) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl expf
|
||||
%result = call float @llvm.exp.f32(float %F)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.exp2.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl exp2
|
||||
%result = call double @llvm.exp2.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.exp2.f32(float)
|
||||
|
||||
define float @testf(float %F) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl exp2f
|
||||
%result = call float @llvm.exp2.f32(float %F)
|
||||
ret float %result
|
||||
}
|
171
test/CodeGen/XCore/float-intrinsics.ll
Normal file
171
test/CodeGen/XCore/float-intrinsics.ll
Normal file
@ -0,0 +1,171 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.cos.f64(double)
|
||||
declare double @llvm.exp.f64(double)
|
||||
declare double @llvm.exp2.f64(double)
|
||||
declare double @llvm.log.f64(double)
|
||||
declare double @llvm.log10.f64(double)
|
||||
declare double @llvm.log2.f64(double)
|
||||
declare double @llvm.pow.f64(double, double)
|
||||
declare double @llvm.powi.f64(double, i32)
|
||||
declare double @llvm.sin.f64(double)
|
||||
declare double @llvm.sqrt.f64(double)
|
||||
|
||||
define double @cos(double %F) {
|
||||
; CHECK: cos:
|
||||
; CHECK: bl cos
|
||||
%result = call double @llvm.cos.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.cos.f32(float)
|
||||
|
||||
; CHECK: cosf:
|
||||
; CHECK: bl cosf
|
||||
define float @cosf(float %F) {
|
||||
%result = call float @llvm.cos.f32(float %F)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @exp(double %F) {
|
||||
; CHECK: exp:
|
||||
; CHECK: bl exp
|
||||
%result = call double @llvm.exp.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.exp.f32(float)
|
||||
|
||||
define float @expf(float %F) {
|
||||
; CHECK: expf:
|
||||
; CHECK: bl expf
|
||||
%result = call float @llvm.exp.f32(float %F)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @exp2(double %F) {
|
||||
; CHECK: exp2:
|
||||
; CHECK: bl exp2
|
||||
%result = call double @llvm.exp2.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.exp2.f32(float)
|
||||
|
||||
define float @exp2f(float %F) {
|
||||
; CHECK: exp2f:
|
||||
; CHECK: bl exp2f
|
||||
%result = call float @llvm.exp2.f32(float %F)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @log(double %F) {
|
||||
; CHECK: log:
|
||||
; CHECK: bl log
|
||||
%result = call double @llvm.log.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.log.f32(float)
|
||||
|
||||
define float @logf(float %F) {
|
||||
; CHECK: logf:
|
||||
; CHECK: bl logf
|
||||
%result = call float @llvm.log.f32(float %F)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @log10(double %F) {
|
||||
; CHECK: log10:
|
||||
; CHECK: bl log10
|
||||
%result = call double @llvm.log10.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.log10.f32(float)
|
||||
|
||||
define float @log10f(float %F) {
|
||||
; CHECK: log10f:
|
||||
; CHECK: bl log10f
|
||||
%result = call float @llvm.log10.f32(float %F)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @log2(double %F) {
|
||||
; CHECK: log2:
|
||||
; CHECK: bl log2
|
||||
%result = call double @llvm.log2.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.log2.f32(float)
|
||||
|
||||
define float @log2f(float %F) {
|
||||
; CHECK: log2f:
|
||||
; CHECK: bl log2f
|
||||
%result = call float @llvm.log2.f32(float %F)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @pow(double %F, double %power) {
|
||||
; CHECK: pow:
|
||||
; CHECK: bl pow
|
||||
%result = call double @llvm.pow.f64(double %F, double %power)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.pow.f32(float, float)
|
||||
|
||||
define float @powf(float %F, float %power) {
|
||||
; CHECK: powf:
|
||||
; CHECK: bl powf
|
||||
%result = call float @llvm.pow.f32(float %F, float %power)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @powi(double %F, i32 %power) {
|
||||
; CHECK: powi:
|
||||
; CHECK: bl __powidf2
|
||||
%result = call double @llvm.powi.f64(double %F, i32 %power)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.powi.f32(float, i32)
|
||||
|
||||
define float @powif(float %F, i32 %power) {
|
||||
; CHECK: powif:
|
||||
; CHECK: bl __powisf2
|
||||
%result = call float @llvm.powi.f32(float %F, i32 %power)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @sin(double %F) {
|
||||
; CHECK: sin:
|
||||
; CHECK: bl sin
|
||||
%result = call double @llvm.sin.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.sin.f32(float)
|
||||
|
||||
define float @sinf(float %F) {
|
||||
; CHECK: sinf:
|
||||
; CHECK: bl sinf
|
||||
%result = call float @llvm.sin.f32(float %F)
|
||||
ret float %result
|
||||
}
|
||||
|
||||
define double @sqrt(double %F) {
|
||||
; CHECK: sqrt:
|
||||
; CHECK: bl sqrt
|
||||
%result = call double @llvm.sqrt.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.sqrt.f32(float)
|
||||
|
||||
define float @sqrtf(float %F) {
|
||||
; CHECK: sqrtf:
|
||||
; CHECK: bl sqrtf
|
||||
%result = call float @llvm.sqrt.f32(float %F)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.log.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl log
|
||||
%result = call double @llvm.log.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.log.f32(float)
|
||||
|
||||
define float @testf(float %F) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl logf
|
||||
%result = call float @llvm.log.f32(float %F)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.log10.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl log10
|
||||
%result = call double @llvm.log10.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.log10.f32(float)
|
||||
|
||||
define float @testf(float %F) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl log10f
|
||||
%result = call float @llvm.log10.f32(float %F)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.log2.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl log2
|
||||
%result = call double @llvm.log2.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.log2.f32(float)
|
||||
|
||||
define float @testf(float %F) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl log2f
|
||||
%result = call float @llvm.log2.f32(float %F)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.pow.f64(double, double)
|
||||
|
||||
define double @test(double %F, double %power) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl pow
|
||||
%result = call double @llvm.pow.f64(double %F, double %power)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.pow.f32(float, float)
|
||||
|
||||
define float @testf(float %F, float %power) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl powf
|
||||
%result = call float @llvm.pow.f32(float %F, float %power)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.powi.f64(double, i32)
|
||||
|
||||
define double @test(double %F, i32 %power) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl __powidf2
|
||||
%result = call double @llvm.powi.f64(double %F, i32 %power)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.powi.f32(float, i32)
|
||||
|
||||
define float @testf(float %F, i32 %power) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl __powisf2
|
||||
%result = call float @llvm.powi.f32(float %F, i32 %power)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.sin.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl sin
|
||||
%result = call double @llvm.sin.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.sin.f32(float)
|
||||
|
||||
define float @testf(float %F) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl sinf
|
||||
%result = call float @llvm.sin.f32(float %F)
|
||||
ret float %result
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
; RUN: llc < %s -march=xcore | FileCheck %s
|
||||
declare double @llvm.sqrt.f64(double)
|
||||
|
||||
define double @test(double %F) {
|
||||
; CHECK: test:
|
||||
; CHECK: bl sqrt
|
||||
%result = call double @llvm.sqrt.f64(double %F)
|
||||
ret double %result
|
||||
}
|
||||
|
||||
declare float @llvm.sqrt.f32(float)
|
||||
|
||||
define float @testf(float %F) {
|
||||
; CHECK: testf:
|
||||
; CHECK: bl sqrtf
|
||||
%result = call float @llvm.sqrt.f32(float %F)
|
||||
ret float %result
|
||||
}
|
Loading…
Reference in New Issue
Block a user