summaryrefslogtreecommitdiffstats
path: root/mlir/test/Target
diff options
context:
space:
mode:
authorMarcel Koester <marcel.koester@dfki.de>2019-12-18 11:27:09 -0800
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-12-18 11:42:43 -0800
commit6054610bbe0fcec5b9c71fded7c342b7bcaf3513 (patch)
tree53969cf1829134ab85ce9f176b6ee69a8a6f79d8 /mlir/test/Target
parentd9b500d3bb151bfb96073b0d66e8338a5c0186d5 (diff)
downloadbcm5719-llvm-6054610bbe0fcec5b9c71fded7c342b7bcaf3513.tar.gz
bcm5719-llvm-6054610bbe0fcec5b9c71fded7c342b7bcaf3513.zip
Added LLVM ops and lowering phases from standard dialect for FAbs, FCeil, Cos, FNeg, CopySign.
Added test cases for the newly added LLVM operations and lowering features. Closes tensorflow/mlir#300 COPYBARA_INTEGRATE_REVIEW=https://github.com/tensorflow/mlir/pull/300 from dfki-jugr:std_to_llvm da6168bbc1a369ae2e99ad3881fdddd82f075dd4 PiperOrigin-RevId: 286231169
Diffstat (limited to 'mlir/test/Target')
-rw-r--r--mlir/test/Target/llvmir-intrinsics.mlir42
1 files changed, 42 insertions, 0 deletions
diff --git a/mlir/test/Target/llvmir-intrinsics.mlir b/mlir/test/Target/llvmir-intrinsics.mlir
index 4eaefd6bcf2..e61ab4506e5 100644
--- a/mlir/test/Target/llvmir-intrinsics.mlir
+++ b/mlir/test/Target/llvmir-intrinsics.mlir
@@ -50,6 +50,42 @@ llvm.func @log2_test(%arg0: !llvm.float, %arg1: !llvm<"<8 x float>">) {
llvm.return
}
+// CHECK-LABEL: @fabs_test
+llvm.func @fabs_test(%arg0: !llvm.float, %arg1: !llvm<"<8 x float>">) {
+ // CHECK: call float @llvm.fabs.f32
+ "llvm.intr.fabs"(%arg0) : (!llvm.float) -> !llvm.float
+ // CHECK: call <8 x float> @llvm.fabs.v8f32
+ "llvm.intr.fabs"(%arg1) : (!llvm<"<8 x float>">) -> !llvm<"<8 x float>">
+ llvm.return
+}
+
+// CHECK-LABEL: @ceil_test
+llvm.func @ceil_test(%arg0: !llvm.float, %arg1: !llvm<"<8 x float>">) {
+ // CHECK: call float @llvm.ceil.f32
+ "llvm.intr.ceil"(%arg0) : (!llvm.float) -> !llvm.float
+ // CHECK: call <8 x float> @llvm.ceil.v8f32
+ "llvm.intr.ceil"(%arg1) : (!llvm<"<8 x float>">) -> !llvm<"<8 x float>">
+ llvm.return
+}
+
+// CHECK-LABEL: @cos_test
+llvm.func @cos_test(%arg0: !llvm.float, %arg1: !llvm<"<8 x float>">) {
+ // CHECK: call float @llvm.cos.f32
+ "llvm.intr.cos"(%arg0) : (!llvm.float) -> !llvm.float
+ // CHECK: call <8 x float> @llvm.cos.v8f32
+ "llvm.intr.cos"(%arg1) : (!llvm<"<8 x float>">) -> !llvm<"<8 x float>">
+ llvm.return
+}
+
+// CHECK-LABEL: @copysign_test
+llvm.func @copysign_test(%arg0: !llvm.float, %arg1: !llvm.float, %arg2: !llvm<"<8 x float>">, %arg3: !llvm<"<8 x float>">) {
+ // CHECK: call float @llvm.copysign.f32
+ "llvm.intr.copysign"(%arg0, %arg1) : (!llvm.float, !llvm.float) -> !llvm.float
+ // CHECK: call <8 x float> @llvm.copysign.v8f32
+ "llvm.intr.copysign"(%arg2, %arg3) : (!llvm<"<8 x float>">, !llvm<"<8 x float>">) -> !llvm<"<8 x float>">
+ llvm.return
+}
+
// Check that intrinsics are declared with appropriate types.
// CHECK: declare float @llvm.fmuladd.f32.f32.f32(float, float, float)
// CHECK: declare <8 x float> @llvm.fmuladd.v8f32.v8f32.v8f32(<8 x float>, <8 x float>, <8 x float>) #0
@@ -62,3 +98,9 @@ llvm.func @log2_test(%arg0: !llvm.float, %arg1: !llvm<"<8 x float>">) {
// CHECK: declare <8 x float> @llvm.log10.v8f32(<8 x float>) #0
// CHECK: declare float @llvm.log2.f32(float)
// CHECK: declare <8 x float> @llvm.log2.v8f32(<8 x float>) #0
+// CHECK: declare float @llvm.fabs.f32(float)
+// CHECK: declare <8 x float> @llvm.fabs.v8f32(<8 x float>) #0
+// CHECK: declare float @llvm.ceil.f32(float)
+// CHECK: declare <8 x float> @llvm.ceil.v8f32(<8 x float>) #0
+// CHECK: declare float @llvm.cos.f32(float)
+// CHECK: declare <8 x float> @llvm.cos.v8f32(<8 x float>) #0
OpenPOWER on IntegriCloud