summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/WebAssembly/fp32.ll40
-rw-r--r--llvm/test/CodeGen/WebAssembly/fp64.ll40
2 files changed, 80 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/fp32.ll b/llvm/test/CodeGen/WebAssembly/fp32.ll
index 74cf2de9fe1..279aaba44b9 100644
--- a/llvm/test/CodeGen/WebAssembly/fp32.ll
+++ b/llvm/test/CodeGen/WebAssembly/fp32.ll
@@ -8,6 +8,11 @@ target triple = "wasm32-unknown-unknown"
declare float @llvm.fabs.f32(float)
declare float @llvm.copysign.f32(float, float)
declare float @llvm.sqrt.f32(float)
+declare float @llvm.ceil.f32(float)
+declare float @llvm.floor.f32(float)
+declare float @llvm.trunc.f32(float)
+declare float @llvm.nearbyint.f32(float)
+declare float @llvm.rint.f32(float)
; CHECK-LABEL: fadd32:
; CHECK-NEXT: (setlocal @0 (argument 1))
@@ -67,3 +72,38 @@ define float @sqrt32(float %x) {
%a = call float @llvm.sqrt.f32(float %x)
ret float %a
}
+
+; CHECK-LABEL: ceil32:
+; CHECK: (setlocal @1 (ceil @0))
+define float @ceil32(float %x) {
+ %a = call float @llvm.ceil.f32(float %x)
+ ret float %a
+}
+
+; CHECK-LABEL: floor32:
+; CHECK: (setlocal @1 (floor @0))
+define float @floor32(float %x) {
+ %a = call float @llvm.floor.f32(float %x)
+ ret float %a
+}
+
+; CHECK-LABEL: trunc32:
+; CHECK: (setlocal @1 (trunc @0))
+define float @trunc32(float %x) {
+ %a = call float @llvm.trunc.f32(float %x)
+ ret float %a
+}
+
+; CHECK-LABEL: nearestint32:
+; CHECK: (setlocal @1 (nearestint @0))
+define float @nearestint32(float %x) {
+ %a = call float @llvm.nearbyint.f32(float %x)
+ ret float %a
+}
+
+; CHECK-LABEL: nearestint32_via_rint:
+; CHECK: (setlocal @1 (nearestint @0))
+define float @nearestint32_via_rint(float %x) {
+ %a = call float @llvm.rint.f32(float %x)
+ ret float %a
+}
diff --git a/llvm/test/CodeGen/WebAssembly/fp64.ll b/llvm/test/CodeGen/WebAssembly/fp64.ll
index 7aa666e5948..948d48470d6 100644
--- a/llvm/test/CodeGen/WebAssembly/fp64.ll
+++ b/llvm/test/CodeGen/WebAssembly/fp64.ll
@@ -8,6 +8,11 @@ target triple = "wasm32-unknown-unknown"
declare double @llvm.fabs.f64(double)
declare double @llvm.copysign.f64(double, double)
declare double @llvm.sqrt.f64(double)
+declare double @llvm.ceil.f64(double)
+declare double @llvm.floor.f64(double)
+declare double @llvm.trunc.f64(double)
+declare double @llvm.nearbyint.f64(double)
+declare double @llvm.rint.f64(double)
; CHECK-LABEL: fadd64:
; CHECK-NEXT: (setlocal @0 (argument 1))
@@ -67,3 +72,38 @@ define double @sqrt64(double %x) {
%a = call double @llvm.sqrt.f64(double %x)
ret double %a
}
+
+; CHECK-LABEL: ceil64:
+; CHECK: (setlocal @1 (ceil @0))
+define double @ceil64(double %x) {
+ %a = call double @llvm.ceil.f64(double %x)
+ ret double %a
+}
+
+; CHECK-LABEL: floor64:
+; CHECK: (setlocal @1 (floor @0))
+define double @floor64(double %x) {
+ %a = call double @llvm.floor.f64(double %x)
+ ret double %a
+}
+
+; CHECK-LABEL: trunc64:
+; CHECK: (setlocal @1 (trunc @0))
+define double @trunc64(double %x) {
+ %a = call double @llvm.trunc.f64(double %x)
+ ret double %a
+}
+
+; CHECK-LABEL: nearestint64:
+; CHECK: (setlocal @1 (nearestint @0))
+define double @nearestint64(double %x) {
+ %a = call double @llvm.nearbyint.f64(double %x)
+ ret double %a
+}
+
+; CHECK-LABEL: nearestint64_via_rint:
+; CHECK: (setlocal @1 (nearestint @0))
+define double @nearestint64_via_rint(double %x) {
+ %a = call double @llvm.rint.f64(double %x)
+ ret double %a
+}
OpenPOWER on IntegriCloud