gussmith23 commented on a change in pull request #5812:
URL: https://github.com/apache/incubator-tvm/pull/5812#discussion_r468018504



##########
File path: tests/python/unittest/test_custom_datatypes_change_dtype.py
##########
@@ -81,163 +81,109 @@ def setup():
     # You can pick a code for your datatype arbitrarily, as long as it is
     # greater than 128 and has not already been chosen.
 
-    register("posit32", 131)
-
-    register_op(create_lower_func("FloatToPosit32es2"), "Cast", "llvm",
-                "posit32", "float")
-    register_op(create_lower_func("Posit32es2ToFloat"), "Cast", "llvm",
-                "float", "posit32")
-    register_op(create_lower_func("IntToPosit32es2"), "Cast", "llvm",
-                "posit32", "int")
-    register_op(create_lower_func("Posit32es2Add"), "Add", "llvm", "posit32")
-    register_op(create_lower_func("Posit32es2Sub"), "Sub", "llvm", "posit32")
-    register_op(create_lower_func("FloatToPosit32es2"), "FloatImm", "llvm",
-                "posit32")
-    register_op(create_lower_func("Posit32es2Mul"), "Mul", "llvm", "posit32")
-    register_op(create_lower_func("Posit32es2Div"), "Div", "llvm", "posit32")
-    register_op(create_lower_func("Posit32es2Max"), "Max", "llvm", "posit32")
-    register_op(create_lower_func("Posit32es2Sqrt"),
-                "Call",
-                "llvm",
-                "posit32",
-                intrinsic_name="sqrt")
-    # TODO(gus) not sure if this will work...
-    register_op(lower_ite,
-                "Call",
-                "llvm",
-                "posit32",
-                intrinsic_name="tvm_if_then_else")
-    register_op(create_lower_func("Posit32es2Exp"),
-                "Call",
-                "llvm",
-                "posit32",
-                intrinsic_name="exp")
-    register_op(create_lower_func("Posit32es2Log"),
-                "Call",
-                "llvm",
-                "posit32",
-                intrinsic_name="log")
-    register_op(create_lower_func("Posit32es2Sigmoid"),
-                "Call",
-                "llvm",
-                "posit32",
-                intrinsic_name="sigmoid")
-    register_op(create_lower_func("Posit32es2Tanh"),
-                "Call",
-                "llvm",
-                "posit32",
-                intrinsic_name="tanh")
-    register_min_func(lambda num_bits: 
-1.329227995784915872903807060280344576e36, "posit32")
-
-    register("posit8", 132)
-    register_op(create_lower_func("FloatToPosit8es2"), "Cast", "llvm",
-                "posit8", "float")
-    register_op(create_lower_func("Posit8es2ToFloat"), "Cast", "llvm", "float",
-                "posit8")
-    register_op(create_lower_func("IntToPosit8es2"), "Cast", "llvm", "posit8",
-                "int")
-    register_op(create_lower_func("Posit8es2Add"), "Add", "llvm", "posit8")
-    register_op(create_lower_func("Posit8es2Sub"), "Sub", "llvm", "posit8")
-    register_op(create_lower_func("FloatToPosit8es2"), "FloatImm", "llvm",
-                "posit8")
-    register_op(create_lower_func("Posit8es2Mul"), "Mul", "llvm", "posit8")
-    register_op(create_lower_func("Posit8es2Div"), "Div", "llvm", "posit8")
-    register_op(create_lower_func("Posit8es2Max"), "Max", "llvm", "posit8")
-    register_op(create_lower_func("Posit8es2Sqrt"),
-                "Call",
-                "llvm",
-                "posit8",
-                intrinsic_name="sqrt")
-    # TODO(gus) not sure if this will work...
-    register_op(lower_ite,
-                "Call",
-                "llvm",
-                "posit8",
-                intrinsic_name="tvm_if_then_else")
-    register_op(create_lower_func("Posit8es2Exp"),
-                "Call",
-                "llvm",
-                "posit8",
-                intrinsic_name="exp")
-    register_op(create_lower_func("Posit8es2Log"),
-                "Call",
-                "llvm",
-                "posit8",
-                intrinsic_name="log")
-    register_op(create_lower_func("Posit8es2Sigmoid"),
-                "Call",
-                "llvm",
-                "posit8",
-                intrinsic_name="sigmoid")
-    register_op(create_lower_func("Posit8es2Tanh"),
-                "Call",
-                "llvm",
-                "posit8",
-                intrinsic_name="tanh")
-    register_min_func(lambda num_bits: -16777216, "posit8")
-
-    register("posit16", 133)
-    register_op(create_lower_func("FloatToPosit16es2"), "Cast", "llvm",
-                "posit16", "float")
-    register_op(create_lower_func("Posit16es2ToFloat"), "Cast", "llvm",
-                "float", "posit16")
-    register_op(create_lower_func("IntToPosit16es2"), "Cast", "llvm",
-                "posit16", "int")
-    register_op(create_lower_func("Posit16es2Add"), "Add", "llvm", "posit16")
-    register_op(create_lower_func("Posit16es2Sub"), "Sub", "llvm", "posit16")
-    register_op(create_lower_func("FloatToPosit16es2"), "FloatImm", "llvm",
-                "posit16")
-    register_op(create_lower_func("Posit16es2Mul"), "Mul", "llvm", "posit16")
-    register_op(create_lower_func("Posit16es2Div"), "Div", "llvm", "posit16")
-    register_op(create_lower_func("Posit16es2Max"), "Max", "llvm", "posit16")
-    register_op(create_lower_func("Posit16es2Sqrt"),
-                "Call",
-                "llvm",
-                "posit16",
-                intrinsic_name="sqrt")
-    # TODO(gus) not sure if this will work...
+    register("posites2", 131)
+
+    register_op(create_lower_func(
+        {
+            (32, 32): "FloatToPosit32es2",
+            (32, 16): "FloatToPosit16es2",
+            (32, 8): 'FloatToPosit8es2',
+        }), 
+        "Cast", "llvm", "posites2", "float")

Review comment:
       In the map, it seems like the order of bitwidths for a cast is (src, 
dest), where the order for the last two arguments to register_op is (dest, 
src). Can you make this consistent?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to