Revert "[ir-to-program] Fix issue converting int32_t min."

This reverts commit 2e5296af62b62fee638a3d5ff5f0ae95e683d774.

Reason for revert: Breaking UBSAN

Original change's description:
> [ir-to-program] Fix issue converting int32_t min.
>
> When converting an `i32` minimum value from IR back to WGSL, we can't
> just emit the number as it won't parse in WGSL. We need to emit it as an
> abstract and convert that to an i32 value.
>
> Change-Id: I173d1a78f78c8af8ab9791c8b72f879b67520276
> Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/252954
> Commit-Queue: David Neto <dneto@google.com>
> Reviewed-by: David Neto <dneto@google.com>
> Commit-Queue: dan sinclair <dsinclair@chromium.org>

TBR=dneto@google.com,dsinclair@chromium.org,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: If3228b76993f181b31573154811d2091ca26ef42
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/253234
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc
index a9078b7..48be5d6 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc
+++ b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.cc
@@ -27,7 +27,6 @@
 
 #include "src/tint/lang/wgsl/writer/ir_to_program/ir_to_program.h"
 
-#include <limits>
 #include <string>
 #include <tuple>
 #include <utility>
@@ -963,15 +962,7 @@
         };
         return tint::Switch(
             c->Type(),  //
-            [&](const core::type::I32*) -> const ast::Expression* {
-                auto val = c->ValueAs<i32>();
-                if (val == std::numeric_limits<int32_t>::min()) {
-                    return b.Call(b.ty.i32(), b.create<ast::IntLiteralExpression>(
-                                                  val, ast::IntLiteralExpression::Suffix::kNone));
-                }
-
-                return b.Expr(val);
-            },
+            [&](const core::type::I32*) { return b.Expr(c->ValueAs<i32>()); },
             [&](const core::type::U32*) { return b.Expr(c->ValueAs<u32>()); },
             [&](const core::type::F32*) { return b.Expr(c->ValueAs<f32>()); },
             [&](const core::type::F16*) {
diff --git a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc
index 1030fee..95d0c11 100644
--- a/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc
+++ b/src/tint/lang/wgsl/writer/ir_to_program/ir_to_program_test.cc
@@ -117,18 +117,6 @@
 )");
 }
 
-TEST_F(IRToProgramTest, SingleFunction_Return_min_i32) {
-    auto* fn = b.Function("f", ty.i32());
-
-    fn->Block()->Append(b.Return(fn, -2147483648_i));
-
-    EXPECT_WGSL(R"(
-fn f() -> i32 {
-  return i32(-2147483648);
-}
-)");
-}
-
 TEST_F(IRToProgramTest, SingleFunction_Parameters) {
     auto* fn = b.Function("f", ty.i32());
     auto* i = b.FunctionParam("i", ty.i32());