diff --git a/src/relay/pass/quantize.cc b/src/relay/pass/quantize.cc
index 452744b..ff6c8ea 100644
--- a/src/relay/pass/quantize.cc
+++ b/src/relay/pass/quantize.cc
@@ -198,14 +198,20 @@
   // x * idom_scale = y * odom_scale
   // => y = x * idom_scale / odom_scale
   if (const auto* n = new_args[0].as<QRealizeIntExprNode>()) {
+    // int32->int8
     Expr data = n->data;
     float idom_scale_imm = GetScalarFromConstant<float>(n->dom_scale);
     float odom_scale_imm = GetScalarFromConstant<float>(dom_scale);
+    if (idom_scale_imm == odom_scale_imm) {
+      // same domain scale, only clip
+      data = Clip(data, clip_min_imm, clip_max_imm);
+      return QRealizeIntExprNode::make(data, dom_scale, n->dtype);
+    }
+
     float shift_nbit = std::log2(odom_scale_imm / idom_scale_imm);
-    // int32->int8
     CHECK_GT(shift_nbit, 0);
     if (static_cast<int>(shift_nbit) == shift_nbit) {
-      // use shift
+      // use right shift
       if (cfg->round_for_shift) {
         float round_bias = std::pow(2.0, shift_nbit - 1);
         data = Add(data, MakeConstantScalar(cfg->dtype_activation, static_cast<int>(round_bias)));
