diff --git a/llvm-external-projects/iree-dialects/BUILD b/llvm-external-projects/iree-dialects/BUILD
index 8ea6185..2a4ab88 100644
--- a/llvm-external-projects/iree-dialects/BUILD
+++ b/llvm-external-projects/iree-dialects/BUILD
@@ -290,6 +290,7 @@
         ":IREEPyDMDialect",
         ":IREEPyDMTransformsIncGen",
         "@llvm-project//llvm:Support",
+        "@llvm-project//mlir:ArithmeticDialect",
         "@llvm-project//mlir:IR",
         "@llvm-project//mlir:MathDialect",
         "@llvm-project//mlir:Parser",
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/CMakeLists.txt b/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/CMakeLists.txt
index 1e8fbef..8c332af 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/CMakeLists.txt
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/CMakeLists.txt
@@ -9,7 +9,9 @@
   LINK_LIBS PUBLIC
   IREEDialectsIREEPyDMDialect
   IREEDialectsIREEDialect
+  MLIRArithmetic
   MLIRIR
+  MLIRStandard
   MLIRTransformUtils
 )
 
diff --git a/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/ConversionPass.cpp b/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/ConversionPass.cpp
index 4ac31e8..2ee8e91 100644
--- a/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/ConversionPass.cpp
+++ b/llvm-external-projects/iree-dialects/lib/Dialect/IREEPyDM/Transforms/ToIREE/ConversionPass.cpp
@@ -11,6 +11,7 @@
 #include "iree-dialects/Dialect/IREEPyDM/Transforms/Passes.h"
 #include "iree-dialects/Dialect/IREEPyDM/Transforms/ToIREE/Patterns.h"
 #include "iree-dialects/Dialect/IREEPyDM/Transforms/ToIREE/TypeConverter.h"
+#include "mlir/Dialect/Arithmetic/IR/Arithmetic.h"
 #include "mlir/Dialect/Math/IR/Math.h"
 #include "mlir/Dialect/StandardOps/IR/Ops.h"
 #include "mlir/IR/BuiltinDialect.h"
@@ -38,8 +39,9 @@
     target.addIllegalDialect<IREEPyDMDialect>();
     target.addLegalDialect<BuiltinDialect>();
     target.addLegalDialect<mlir::iree::IREEDialect>();
+    target.addLegalDialect<mlir::arith::ArithmeticDialect>();
     target.addLegalDialect<mlir::math::MathDialect>();
-    target.addLegalDialect<StandardOpsDialect>();
+    target.addLegalDialect<mlir::StandardOpsDialect>();
 
     // Some CFG ops can be present in the original pydm program. Need to
     // verify legality based on types.
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir
index 6917bae..a0c134d 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/booleans.mlir
@@ -2,7 +2,7 @@
 
 // CHECK-LABEL: @fold_none
 iree_pydm.func @fold_none(%arg0 : !iree_pydm.none) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
-  // CHECK: %[[F:.*]] = arith.constant false -> !iree_pydm.bool
+  // CHECK: %[[F:.*]] = constant false -> !iree_pydm.bool
   // CHECK: return %[[F]]
   %0 = as_bool %arg0 : !iree_pydm.none -> !iree_pydm.bool
   return %0 : !iree_pydm.bool
@@ -19,9 +19,9 @@
 // -----
 // CHECK-LABEL: @as_bool_from_integer_to_compare
 iree_pydm.func @as_bool_from_integer_to_compare(%arg0 : !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
-  // CHECK-DAG: %[[Z:.*]] = arith.constant 0 : i64 -> !iree_pydm.integer
-  // CHECK-DAG: %[[T:.*]] = arith.constant true -> !iree_pydm.bool
-  // CHECK-DAG: %[[F:.*]] = arith.constant false -> !iree_pydm.bool
+  // CHECK-DAG: %[[Z:.*]] = constant 0 : i64 -> !iree_pydm.integer
+  // CHECK-DAG: %[[T:.*]] = constant true -> !iree_pydm.bool
+  // CHECK-DAG: %[[F:.*]] = constant false -> !iree_pydm.bool
   // CHECK: %[[CMP:.*]] = apply_compare "eq", %arg0, %[[Z]]
   // CHECK: %[[SEL:.*]] = select %[[CMP]], %[[F]], %[[T]] : !iree_pydm.bool
   // CHECK: return %[[SEL]]
@@ -32,9 +32,9 @@
 // -----
 // CHECK-LABEL: @as_bool_from_real_to_compare
 iree_pydm.func @as_bool_from_real_to_compare(%arg0 : !iree_pydm.real) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
-  // CHECK-DAG: %[[Z:.*]] = arith.constant 0.000000e+00 : f64 -> !iree_pydm.real
-  // CHECK-DAG: %[[T:.*]] = arith.constant true -> !iree_pydm.bool
-  // CHECK-DAG: %[[F:.*]] = arith.constant false -> !iree_pydm.bool
+  // CHECK-DAG: %[[Z:.*]] = constant 0.000000e+00 : f64 -> !iree_pydm.real
+  // CHECK-DAG: %[[T:.*]] = constant true -> !iree_pydm.bool
+  // CHECK-DAG: %[[F:.*]] = constant false -> !iree_pydm.bool
   // CHECK: %[[CMP:.*]] = apply_compare "eq", %arg0, %[[Z]]
   // CHECK: %[[SEL:.*]] = select %[[CMP]], %[[F]], %[[T]] : !iree_pydm.bool
   // CHECK: return %[[SEL]]
@@ -46,7 +46,7 @@
 // CHECK-LABEL: @fold_bool_to_pred_from_constant
 iree_pydm.func @fold_bool_to_pred_from_constant() -> (!iree_pydm.exception_result, !iree_pydm.none) {
   %0 = iree_pydm.constant true -> !iree_pydm.bool
-  // CHECK: %[[P:.*]] = arith.constant true -> i1
+  // CHECK: %[[P:.*]] = constant true -> i1
   // CHECK: "custom.donotoptimize"(%[[P]])
   %1 = bool_to_pred %0
   "custom.donotoptimize"(%1) : (i1) -> ()
@@ -58,7 +58,7 @@
 // CHECK-LABEL: @as_bool_from_real_to_compare
 iree_pydm.func @as_bool_from_real_to_compare(%arg0: !iree_pydm.integer, %arg1: !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.integer) {
   // CHECK: return %arg0
-  %0 = arith.constant true -> !iree_pydm.bool
+  %0 = constant true -> !iree_pydm.bool
   %1 = select %0, %arg0, %arg1 : !iree_pydm.integer
   return %1 : !iree_pydm.integer
 }
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir
index 43d5ca4..e302baa 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/canonicalize/numerics.mlir
@@ -53,9 +53,9 @@
 // -----
 // CHECK-LABEL: @fold_promote_numeric_true_to_integer
 iree_pydm.func @fold_promote_numeric_true_to_integer() -> (!iree_pydm.exception_result, !iree_pydm.none) {
-  // CHECK: %[[CST:.*]] = arith.constant 1 : i64 -> !iree_pydm.integer
+  // CHECK: %[[CST:.*]] = constant 1 : i64 -> !iree_pydm.integer
   // CHECK: "custom.donotoptimize"(%[[CST]])
-  %0 = arith.constant true -> !iree_pydm.bool
+  %0 = constant true -> !iree_pydm.bool
   %1 = promote_numeric %0 : !iree_pydm.bool -> !iree_pydm.integer
   "custom.donotoptimize"(%1) : (!iree_pydm.integer) -> ()
   %none = none
@@ -65,9 +65,9 @@
 // -----
 // CHECK-LABEL: @fold_promote_numeric_false_to_integer
 iree_pydm.func @fold_promote_numeric_false_to_integer() -> (!iree_pydm.exception_result, !iree_pydm.none) {
-  // CHECK: %[[CST:.*]] = arith.constant 0 : i64 -> !iree_pydm.integer
+  // CHECK: %[[CST:.*]] = constant 0 : i64 -> !iree_pydm.integer
   // CHECK: "custom.donotoptimize"(%[[CST]])
-  %0 = arith.constant false -> !iree_pydm.bool
+  %0 = constant false -> !iree_pydm.bool
   %1 = promote_numeric %0 : !iree_pydm.bool -> !iree_pydm.integer
   "custom.donotoptimize"(%1) : (!iree_pydm.integer) -> ()
   %none = none
@@ -77,9 +77,9 @@
 // -----
 // CHECK-LABEL: @fold_promote_numeric_true_to_real
 iree_pydm.func @fold_promote_numeric_true_to_real() -> (!iree_pydm.exception_result, !iree_pydm.none) {
-  // CHECK: %[[CST:.*]] = arith.constant 1.000000e+00 : f64 -> !iree_pydm.real
+  // CHECK: %[[CST:.*]] = constant 1.000000e+00 : f64 -> !iree_pydm.real
   // CHECK: "custom.donotoptimize"(%[[CST]])
-  %0 = arith.constant true -> !iree_pydm.bool
+  %0 = constant true -> !iree_pydm.bool
   %1 = promote_numeric %0 : !iree_pydm.bool -> !iree_pydm.real
   "custom.donotoptimize"(%1) : (!iree_pydm.real) -> ()
   %none = none
@@ -89,9 +89,9 @@
 // -----
 // CHECK-LABEL: @fold_promote_numeric_false_to_real
 iree_pydm.func @fold_promote_numeric_false_to_real() -> (!iree_pydm.exception_result, !iree_pydm.none) {
-  // CHECK: %[[CST:.*]] = arith.constant 0.000000e+00 : f64 -> !iree_pydm.real
+  // CHECK: %[[CST:.*]] = constant 0.000000e+00 : f64 -> !iree_pydm.real
   // CHECK: "custom.donotoptimize"(%[[CST]])
-  %0 = arith.constant false -> !iree_pydm.bool
+  %0 = constant false -> !iree_pydm.bool
   %1 = promote_numeric %0 : !iree_pydm.bool -> !iree_pydm.real
   "custom.donotoptimize"(%1) : (!iree_pydm.real) -> ()
   %none = none
@@ -101,9 +101,9 @@
 // -----
 // CHECK-LABEL: @fold_promote_numeric_integet_to_real
 iree_pydm.func @fold_promote_numeric_integet_to_real() -> (!iree_pydm.exception_result, !iree_pydm.none) {
-  // CHECK: %[[CST:.*]] = arith.constant 2.000000e+00 : f64 -> !iree_pydm.real
+  // CHECK: %[[CST:.*]] = constant 2.000000e+00 : f64 -> !iree_pydm.real
   // CHECK: "custom.donotoptimize"(%[[CST]])
-  %0 = arith.constant 2 : i64 -> !iree_pydm.integer
+  %0 = constant 2 : i64 -> !iree_pydm.integer
   %1 = promote_numeric %0 : !iree_pydm.integer -> !iree_pydm.real
   "custom.donotoptimize"(%1) : (!iree_pydm.real) -> ()
   %none = none
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir
index a4daf20..52a6daa 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/rtl/link.mlir
@@ -5,7 +5,7 @@
 // Verifies that externs are replaced with definitions and are made private.
 // The MLIR verifier will ensure that any dependent symbols are included.
 // NOTE: The order here is not important but should be deterministic.
-// CHECK: iree_pydm.func private @pydmrtl$dynamic_binary_promote{{.*}}{
+// CHECK-NOT: iree_pydm.func private @pydmrtl$dynamic_binary_promote{{.*}}{
 // CHECK: iree_pydm.func private @pydmrtl$object_as_bool{{.*}}{
 module @multi_with_private {
   iree_pydm.func @object_as_bool(%arg0 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool) {
@@ -13,11 +13,12 @@
     return %0 : !iree_pydm.bool
   }
 
-  iree_pydm.func @dynamic_binary_promote(%arg0 : !iree_pydm.object, %arg1 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) {
-    %left, %right = dynamic_binary_promote %arg0, %arg1 : !iree_pydm.object, !iree_pydm.object
-    %result = make_tuple %left, %right : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.tuple
-    return %result : !iree_pydm.tuple
-  }
+  // TODO: Re-enable.
+  // iree_pydm.func @dynamic_binary_promote(%arg0 : !iree_pydm.object, %arg1 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) {
+  //   %left, %right = dynamic_binary_promote %arg0, %arg1 : !iree_pydm.object, !iree_pydm.object
+  //   %result = make_tuple %left, %right : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.tuple
+  //   return %result : !iree_pydm.tuple
+  // }
 }
 
 // -----
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir
index d0ea71b..73e8268 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/constants.mlir
@@ -11,14 +11,14 @@
 
 // CHECK-LABEL: @constant_integer_trunc
 iree_pydm.func @constant_integer_trunc() -> (!iree_pydm.exception_result, !iree_pydm.integer) {
-  // CHECK: constant -10 : i32
-  %0 = arith.constant -10 : i64 -> !iree_pydm.integer
+  // CHECK: arith.constant -10 : i32
+  %0 = constant -10 : i64 -> !iree_pydm.integer
   return %0 : !iree_pydm.integer
 }
 
 // CHECK-LABEL: @constant_real_trunc
 iree_pydm.func @constant_real_trunc() -> (!iree_pydm.exception_result, !iree_pydm.real) {
-  // CHECK: constant -2.000000e+00 : f32
-  %0 = arith.constant -2.0 : f64 -> !iree_pydm.real
+  // CHECK: arith.constant -2.000000e+00 : f32
+  %0 = constant -2.0 : f64 -> !iree_pydm.real
   return %0 : !iree_pydm.real
 }
diff --git a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir
index fbd944f..964c18e 100644
--- a/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir
+++ b/llvm-external-projects/iree-dialects/test/iree_pydm/to_iree/structural.mlir
@@ -26,20 +26,20 @@
 
 // -----
 // CHECK-LABEL: @box
-// NOTE: "9" is the type code for integer
-iree_pydm.func @box(%arg0 : !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.object<!iree_pydm.integer>) {
+// NOTE: "78" is the type code for signed i32
+iree_pydm.func @box(%arg0 : !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.object<!iree_pydm.integer<32>>) {
   // CHECK: %[[LIST:.*]] = iree.list.create : !iree.list<!iree.variant>
   // CHECK: %[[c2:.*]] = arith.constant 2 : index
   // CHECK: iree.list.resize %[[LIST]], %c2 : !iree.list<!iree.variant>
   // CHECK: %[[c0:.*]] = arith.constant 0 : index
-  // CHECK: %[[c9:.*]] = arith.constant 9 : i32
+  // CHECK: %[[c9:.*]] = arith.constant 78 : i32
   // CHECK: iree.list.set %[[LIST]][%[[c0]]], %[[c9]] : !iree.list<!iree.variant>, i32
   // CHECK: %[[c1:.*]] = arith.constant 1 : index
   // CHECK: iree.list.set %[[LIST]][%[[c1]]], %arg0 : !iree.list<!iree.variant>, i32
   // CHECK: %[[c0_i32:.*]] = arith.constant 0 : i32
   // return %[[c0_i32]], %[[LIST]] : i32, !iree.list<!iree.variant>
-  %0 = box %arg0 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
-  return %0 : !iree_pydm.object<!iree_pydm.integer>
+  %0 = box %arg0 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
+  return %0 : !iree_pydm.object<!iree_pydm.integer<32>>
 }
 
 // -----
@@ -65,12 +65,12 @@
 
 // -----
 // CHECK-LABEL: @unbox
-// NOTE: "9" is the type code for integer
-iree_pydm.func @unbox(%arg0 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.integer) {
+// NOTE: "78" is the type code for signed i32
+iree_pydm.func @unbox(%arg0 : !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) {
   // CHECK:  %[[c0:.*]] = arith.constant 0 : index
-  // CHECK: %[[NEEDED_TYPE_CODE:.*]] = arith.constant 9 : i32
+  // CHECK: %[[NEEDED_TYPE_CODE:.*]] = arith.constant 78 : i32
   // CHECK: %[[TYPE_CODE:.*]] = iree.list.get %arg0[%[[c0]]] : !iree.list<!iree.variant> -> i32
-  // CHECK: %[[TYPE_EQ:.*]] = cmpi eq, %[[NEEDED_TYPE_CODE]], %[[TYPE_CODE]] : i32
+  // CHECK: %[[TYPE_EQ:.*]] = arith.cmpi eq, %[[NEEDED_TYPE_CODE]], %[[TYPE_CODE]] : i32
   // CHECK: cond_br %[[TYPE_EQ]], ^bb1, ^bb4
 
   // bb1: On equal
@@ -91,16 +91,16 @@
   // CHECK: %[[VALUE_ERROR_CODE:.*]] = arith.constant -4 : i32
   // CHECK: %[[c0_i32_2:.*]] = arith.constant 0 : i32
   // CHECK: br ^bb2(%[[VALUE_ERROR_CODE]], %[[c0_i32_2]] : i32, i32)
-  %status, %primitive = unbox %arg0 : !iree_pydm.object -> !iree_pydm.integer
+  %status, %primitive = unbox %arg0 : !iree_pydm.object -> !iree_pydm.integer<32>
   raise_on_failure %status : !iree_pydm.exception_result
-  return %primitive : !iree_pydm.integer
+  return %primitive : !iree_pydm.integer<32>
 }
 
 // -----
 // CHECK-LABEL: @raise_on_failure_object_return
 iree_pydm.func @raise_on_failure_object_return(%arg0 : !iree_pydm.exception_result, %arg1: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) {
   // CHECK: %[[c0_i32:.*]] = arith.constant 0 : i32
-  // CHECK: %[[CMP:.*]] = cmpi eq, %[[c0_i32]], %arg0 : i32
+  // CHECK: %[[CMP:.*]] = arith.cmpi eq, %[[c0_i32]], %arg0 : i32
   // CHECK: cond_br %[[CMP]], ^bb1, ^bb2
   // bb1: success
   // CHECK: ^bb1:
diff --git a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/assignment.py b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/assignment.py
index 424a349..830195c 100644
--- a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/assignment.py
+++ b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/assignment.py
@@ -5,7 +5,7 @@
 
 
 # CHECK-LABEL: @assign_free_var_not_arg
-# CHECK: %[[CST:.*]] = arith.constant 1
+# CHECK: %[[CST:.*]] = constant 1
 # CHECK: %[[BOXED:.*]] = box %[[CST]] : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
 # CHECK: store_var %x = %[[BOXED]]
 @test_import_global
diff --git a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/booleans.py b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/booleans.py
index fd5f77f..36da239 100644
--- a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/booleans.py
+++ b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/booleans.py
@@ -55,8 +55,8 @@
 # CHECK-LABEL: func @logical_not
 # CHECK: %[[XVAL:.*]] = load_var %x
 # CHECK: %[[XBOOL:.*]] = as_bool %[[XVAL]]
-# CHECK: %[[T:.*]] = arith.constant true
-# CHECK: %[[F:.*]] = arith.constant false
+# CHECK: %[[T:.*]] = constant true
+# CHECK: %[[F:.*]] = constant false
 # CHECK: %[[R:.*]] = select %[[XBOOL]], %[[F]], %[[T]]
 @test_import_global
 def logical_not():
@@ -68,11 +68,11 @@
 # CHECK: %[[XVAL:.*]] = load_var %x
 # CHECK: %[[XBOOL:.*]] = as_bool %[[XVAL]]
 # CHECK: %[[R1:.*]] = functional_if %[[XBOOL]] {{.*}} {
-# CHECK:   %[[TWOVAL:.*]] = arith.constant 2
+# CHECK:   %[[TWOVAL:.*]] = constant 2
 # CHECK:   %[[TWOBOXED:.*]] = box %[[TWOVAL]] : !iree_pydm.integer -> !iree_pydm.object
 # CHECK:   yield %[[TWOBOXED]]
 # CHECK: } else {
-# CHECK:   %[[THREEVAL:.*]] = arith.constant 3
+# CHECK:   %[[THREEVAL:.*]] = constant 3
 # CHECK:   %[[THREEBOXED:.*]] = box %[[THREEVAL]] : !iree_pydm.integer -> !iree_pydm.object
 # CHECK:   yield %[[THREEBOXED]]
 # CHECK: }
diff --git a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/comparison.py b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/comparison.py
index fcd3e5f..1a0efc7 100644
--- a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/comparison.py
+++ b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/comparison.py
@@ -110,7 +110,7 @@
 
 
 # CHECK-LABEL: @short_circuit
-# CHECK-DAG: %[[FALSE:.*]] = arith.constant false
+# CHECK-DAG: %[[FALSE:.*]] = constant false
 # CHECK-DAG: %[[X:.*]] = load_var %x
 # CHECK-DAG: %[[Y:.*]] = load_var %y
 # CHECK: %[[XP:.*]], %[[YP:.*]] = dynamic_binary_promote %[[X]], %[[Y]]
diff --git a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/constants.py b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/constants.py
index 47f92ac..2c6823b 100644
--- a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/constants.py
+++ b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/constants.py
@@ -5,28 +5,28 @@
 
 
 # CHECK-LABEL: @const_integer
-# CHECK: = arith.constant 1 : i64 -> !iree_pydm.integer
+# CHECK: = constant 1 : i64 -> !iree_pydm.integer
 @test_import_global
 def const_integer():
   return 1
 
 
 # CHECK-LABEL: @const_float
-# CHECK: = arith.constant 2.200000e+00 : f64 -> !iree_pydm.real
+# CHECK: = constant 2.200000e+00 : f64 -> !iree_pydm.real
 @test_import_global
 def const_float():
   return 2.2
 
 
 # CHECK-LABEL: @const_str
-# CHECK: = arith.constant "Hello" -> !iree_pydm.str
+# CHECK: = constant "Hello" -> !iree_pydm.str
 @test_import_global
 def const_str():
   return "Hello"
 
 
 # CHECK-LABEL: @const_bytes
-# CHECK: = arith.constant "Bonjour" -> !iree_pydm.bytes
+# CHECK: = constant "Bonjour" -> !iree_pydm.bytes
 @test_import_global
 def const_bytes():
   return b"Bonjour"
@@ -40,14 +40,14 @@
 
 
 # CHECK-LABEL: @const_true
-# CHECK: = arith.constant true -> !iree_pydm.bool
+# CHECK: = constant true -> !iree_pydm.bool
 @test_import_global
 def const_true():
   return True
 
 
 # CHECK-LABEL: @const_false
-# CHECK: = arith.constant false -> !iree_pydm.bool
+# CHECK: = constant false -> !iree_pydm.bool
 @test_import_global
 def const_false():
   return False
diff --git a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/intrinsics.py b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/intrinsics.py
index cc63a67..8d0030c 100644
--- a/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/intrinsics.py
+++ b/llvm-external-projects/iree-dialects/test/python/iree_pydm/importer/intrinsics.py
@@ -41,8 +41,8 @@
 
 
 # CHECK-LABEL: @test_intrinsic_function_args
-# CHECK: %[[ZERO:.*]] = arith.constant 0 : i64 -> !iree_pydm.integer
-# CHECK: %[[ONE:.*]] = arith.constant 1 : i64 -> !iree_pydm.integer
+# CHECK: %[[ZERO:.*]] = constant 0 : i64 -> !iree_pydm.integer
+# CHECK: %[[ONE:.*]] = constant 1 : i64 -> !iree_pydm.integer
 # CHECK: dynamic_call @__return_first_true(%[[ZERO]], %[[ONE]]) : (!iree_pydm.integer, !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.object)
 # CHECK: func @__return_first_true
 @test_import_global
@@ -68,7 +68,7 @@
 
 
 # CHECK-LABEL: @test_intrinsic_macro_no_args
-# CHECK: %[[ONE:.*]] = arith.constant 1
+# CHECK: %[[ONE:.*]] = constant 1
 # CHECK: box %[[ONE]] : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
 @test_import_global
 def test_intrinsic_macro_no_args() -> int:
@@ -95,7 +95,7 @@
 
 
 # CHECK-LABEL: @test_pattern_call
-# CHECK: %[[TRUE:.*]] = arith.constant true
+# CHECK: %[[TRUE:.*]] = constant true
 # CHECK: pattern_match_call(%[[TRUE]]) : (!iree_pydm.bool) -> (!iree_pydm.exception_result, !iree_pydm.object)
 # CHECK-SAME:   matching generic [@__logical_not_generic] specific [@__logical_not_bool]
 # CHECK-DAG: func @__logical_not_generic
