summaryrefslogtreecommitdiffstats
path: root/mlir/test/Target
diff options
context:
space:
mode:
authorNagy Mostafa <nagy.mostafa@gmail.com>2019-08-08 18:29:23 -0700
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-08-08 18:29:48 -0700
commit48fdc8d7a301aff6ade00f2a5263628937b529f3 (patch)
tree50c8aa0a928e39ecbf95393fc2d7624ec62d02d8 /mlir/test/Target
parent96371d25c388cba4716a3d389c011b404b22c270 (diff)
downloadbcm5719-llvm-48fdc8d7a301aff6ade00f2a5263628937b529f3.tar.gz
bcm5719-llvm-48fdc8d7a301aff6ade00f2a5263628937b529f3.zip
Add support for floating-point comparison 'fcmp' to the LLVM dialect.
This adds support for fcmp to the LLVM dialect and adds any necessary lowerings, as well as support for EDSCs. Closes tensorflow/mlir#69 PiperOrigin-RevId: 262475255
Diffstat (limited to 'mlir/test/Target')
-rw-r--r--mlir/test/Target/llvmir.mlir33
1 files changed, 33 insertions, 0 deletions
diff --git a/mlir/test/Target/llvmir.mlir b/mlir/test/Target/llvmir.mlir
index 8a77b09a217..9b6e0a83261 100644
--- a/mlir/test/Target/llvmir.mlir
+++ b/mlir/test/Target/llvmir.mlir
@@ -829,3 +829,36 @@ func @noreach() {
// CHECK: unreachable
llvm.unreachable
}
+
+// CHECK-LABEL: define void @fcmp
+func @fcmp(%arg0: !llvm.float, %arg1: !llvm.float) {
+ // CHECK: fcmp oeq float %0, %1
+ // CHECK-NEXT: fcmp ogt float %0, %1
+ // CHECK-NEXT: fcmp oge float %0, %1
+ // CHECK-NEXT: fcmp olt float %0, %1
+ // CHECK-NEXT: fcmp ole float %0, %1
+ // CHECK-NEXT: fcmp one float %0, %1
+ // CHECK-NEXT: fcmp ord float %0, %1
+ // CHECK-NEXT: fcmp ueq float %0, %1
+ // CHECK-NEXT: fcmp ugt float %0, %1
+ // CHECK-NEXT: fcmp uge float %0, %1
+ // CHECK-NEXT: fcmp ult float %0, %1
+ // CHECK-NEXT: fcmp ule float %0, %1
+ // CHECK-NEXT: fcmp une float %0, %1
+ // CHECK-NEXT: fcmp uno float %0, %1
+ %0 = llvm.fcmp "oeq" %arg0, %arg1 : !llvm.float
+ %1 = llvm.fcmp "ogt" %arg0, %arg1 : !llvm.float
+ %2 = llvm.fcmp "oge" %arg0, %arg1 : !llvm.float
+ %3 = llvm.fcmp "olt" %arg0, %arg1 : !llvm.float
+ %4 = llvm.fcmp "ole" %arg0, %arg1 : !llvm.float
+ %5 = llvm.fcmp "one" %arg0, %arg1 : !llvm.float
+ %6 = llvm.fcmp "ord" %arg0, %arg1 : !llvm.float
+ %7 = llvm.fcmp "ueq" %arg0, %arg1 : !llvm.float
+ %8 = llvm.fcmp "ugt" %arg0, %arg1 : !llvm.float
+ %9 = llvm.fcmp "uge" %arg0, %arg1 : !llvm.float
+ %10 = llvm.fcmp "ult" %arg0, %arg1 : !llvm.float
+ %11 = llvm.fcmp "ule" %arg0, %arg1 : !llvm.float
+ %12 = llvm.fcmp "une" %arg0, %arg1 : !llvm.float
+ %13 = llvm.fcmp "uno" %arg0, %arg1 : !llvm.float
+ llvm.return
+}
OpenPOWER on IntegriCloud