[glsl][ir] Start bitcast emission.

This CL adds bitcast for non-f16 types to the GLSL IR backend.

Bug: 42251044
Change-Id: I2b696c303a3b333bf60c032463aad5ab1540274e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/206754
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/glsl/builtin_fn.cc b/src/tint/lang/glsl/builtin_fn.cc
index 8b85e3c..202c6c8 100644
--- a/src/tint/lang/glsl/builtin_fn.cc
+++ b/src/tint/lang/glsl/builtin_fn.cc
@@ -52,6 +52,14 @@
             return "atomicCompSwap";
         case BuiltinFn::kAtomicSub:
             return "atomicSub";
+        case BuiltinFn::kFloatBitsToInt:
+            return "floatBitsToInt";
+        case BuiltinFn::kFloatBitsToUint:
+            return "floatBitsToUint";
+        case BuiltinFn::kIntBitsToFloat:
+            return "intBitsToFloat";
+        case BuiltinFn::kUintBitsToFloat:
+            return "uintBitsToFloat";
     }
     return "<unknown>";
 }
diff --git a/src/tint/lang/glsl/builtin_fn.h b/src/tint/lang/glsl/builtin_fn.h
index aea0677..b003094 100644
--- a/src/tint/lang/glsl/builtin_fn.h
+++ b/src/tint/lang/glsl/builtin_fn.h
@@ -52,6 +52,10 @@
     kMemoryBarrierImage,
     kAtomicCompSwap,
     kAtomicSub,
+    kFloatBitsToInt,
+    kFloatBitsToUint,
+    kIntBitsToFloat,
+    kUintBitsToFloat,
     kNone,
 };
 
diff --git a/src/tint/lang/glsl/glsl.def b/src/tint/lang/glsl/glsl.def
index 9ac0e6e..3209365 100644
--- a/src/tint/lang/glsl/glsl.def
+++ b/src/tint/lang/glsl/glsl.def
@@ -42,10 +42,12 @@
 // Types                                                                      //
 ////////////////////////////////////////////////////////////////////////////////
 
+type f32
 type i32
 type u32
 type atomic<T>
 type ptr<S: address_space, T, A: access>
+@display("vec{N}<{T}>")     type vec<N: num, T>
 
 ////////////////////////////////////////////////////////////////////////////////
 // Type matchers                                                              //
@@ -69,8 +71,19 @@
 
 @stage("fragment", "compute") implicit(T: iu32) fn atomicCompSwap(
                                     ptr<workgroup_or_storage, atomic<T>, read_write>,
-                                    compare_value: u32,
-                                    value: u32) -> T
+                                    compare_value: T,
+                                    value: T) -> T
 @stage("fragment", "compute") implicit(T: iu32, S: workgroup_or_storage) fn atomicSub(
                                     ptr<S, atomic<T>, read_write>,
                                     T) -> T
+
+fn floatBitsToInt(value: f32) -> i32
+implicit(N: num) fn floatBitsToInt(value: vec<N, f32>) -> vec<N, i32>
+fn floatBitsToUint(value: f32) -> u32
+implicit(N: num) fn floatBitsToUint(value: vec<N, f32>) -> vec<N, u32>
+
+fn intBitsToFloat(value: i32) -> f32
+implicit(N: num) fn intBitsToFloat(value: vec<N, i32>) -> vec<N, f32>
+fn uintBitsToFloat(value: u32) -> f32
+implicit(N: num) fn uintBitsToFloat(value: vec<N, u32>) -> vec<N, f32>
+
diff --git a/src/tint/lang/glsl/intrinsic/data.cc b/src/tint/lang/glsl/intrinsic/data.cc
index 8cc84b4..ce47e3f 100644
--- a/src/tint/lang/glsl/intrinsic/data.cc
+++ b/src/tint/lang/glsl/intrinsic/data.cc
@@ -74,6 +74,20 @@
 
 // clang-format off
 
+/// TypeMatcher for 'type f32'
+constexpr TypeMatcher kF32Matcher {
+/* match */ [](MatchState& state, const Type* ty) -> const Type* {
+    if (!MatchF32(state, ty)) {
+      return nullptr;
+    }
+    return BuildF32(state, ty);
+  },
+/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {
+    out << style::Type("f32");
+  }
+};
+
+
 /// TypeMatcher for 'type i32'
 constexpr TypeMatcher kI32Matcher {
 /* match */ [](MatchState& state, const Type* ty) -> const Type* {
@@ -154,6 +168,32 @@
 };
 
 
+/// TypeMatcher for 'type vec'
+constexpr TypeMatcher kVecMatcher {
+/* match */ [](MatchState& state, const Type* ty) -> const Type* {
+  Number N = Number::invalid;
+  const Type* T = nullptr;
+    if (!MatchVec(state, ty, N, T)) {
+      return nullptr;
+    }
+    N = state.Num(N);
+    if (!N.IsValid()) {
+      return nullptr;
+    }
+    T = state.Type(T);
+    if (T == nullptr) {
+      return nullptr;
+    }
+    return BuildVec(state, ty, N, T);
+  },
+/* print */ []([[maybe_unused]] MatchState* state, StyledText& out) {StyledText N;
+  state->PrintNum(N);StyledText T;
+  state->PrintType(T);
+    out << style::Type("vec", N, "<", T, ">");
+  }
+};
+
+
 /// TypeMatcher for 'match iu32'
 constexpr TypeMatcher kIu32Matcher {
 /* match */ [](MatchState& state, const Type* ty) -> const Type* {
@@ -206,11 +246,13 @@
 constexpr TypeMatcher kTypeMatchers[] = {
   /* [0] */ TemplateTypeMatcher<0>::matcher,
   /* [1] */ TemplateTypeMatcher<1>::matcher,
-  /* [2] */ kI32Matcher,
-  /* [3] */ kU32Matcher,
-  /* [4] */ kAtomicMatcher,
-  /* [5] */ kPtrMatcher,
-  /* [6] */ kIu32Matcher,
+  /* [2] */ kF32Matcher,
+  /* [3] */ kI32Matcher,
+  /* [4] */ kU32Matcher,
+  /* [5] */ kAtomicMatcher,
+  /* [6] */ kPtrMatcher,
+  /* [7] */ kVecMatcher,
+  /* [8] */ kIu32Matcher,
 };
 
 /// The template numbers, and number matchers
@@ -222,17 +264,26 @@
 };
 
 constexpr MatcherIndex kMatcherIndices[] = {
-  /* [0] */ MatcherIndex(5),
+  /* [0] */ MatcherIndex(6),
   /* [1] */ MatcherIndex(3),
-  /* [2] */ MatcherIndex(4),
+  /* [2] */ MatcherIndex(5),
   /* [3] */ MatcherIndex(0),
   /* [4] */ MatcherIndex(2),
-  /* [5] */ MatcherIndex(5),
+  /* [5] */ MatcherIndex(6),
   /* [6] */ MatcherIndex(1),
-  /* [7] */ MatcherIndex(4),
+  /* [7] */ MatcherIndex(5),
   /* [8] */ MatcherIndex(0),
   /* [9] */ MatcherIndex(2),
-  /* [10] */ MatcherIndex(6),
+  /* [10] */ MatcherIndex(7),
+  /* [11] */ MatcherIndex(0),
+  /* [12] */ MatcherIndex(3),
+  /* [13] */ MatcherIndex(7),
+  /* [14] */ MatcherIndex(0),
+  /* [15] */ MatcherIndex(2),
+  /* [16] */ MatcherIndex(7),
+  /* [17] */ MatcherIndex(0),
+  /* [18] */ MatcherIndex(4),
+  /* [19] */ MatcherIndex(8),
 };
 
 static_assert(MatcherIndicesIndex::CanIndex(kMatcherIndices),
@@ -247,12 +298,12 @@
   {
     /* [1] */
     /* usage */ core::ParameterUsage::kCompareValue,
-    /* matcher_indices */ MatcherIndicesIndex(1),
+    /* matcher_indices */ MatcherIndicesIndex(3),
   },
   {
     /* [2] */
     /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(1),
+    /* matcher_indices */ MatcherIndicesIndex(3),
   },
   {
     /* [3] */
@@ -264,6 +315,36 @@
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(3),
   },
+  {
+    /* [5] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(4),
+  },
+  {
+    /* [6] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [7] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(1),
+  },
+  {
+    /* [8] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(10),
+  },
+  {
+    /* [9] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(18),
+  },
+  {
+    /* [10] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(16),
+  },
 };
 
 static_assert(ParameterIndex::CanIndex(kParameters),
@@ -273,7 +354,7 @@
   {
     /* [0] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(19),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
@@ -282,6 +363,12 @@
     /* matcher_indices */ MatcherIndicesIndex(1),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
+  {
+    /* [2] */
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
 };
 
 static_assert(TemplateIndex::CanIndex(kTemplates),
@@ -290,6 +377,94 @@
 constexpr OverloadInfo kOverloads[] = {
   {
     /* [0] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(5),
+    /* return_matcher_indices */ MatcherIndicesIndex(1),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [1] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(2),
+    /* parameters */ ParameterIndex(6),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [2] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(5),
+    /* return_matcher_indices */ MatcherIndicesIndex(18),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [3] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(2),
+    /* parameters */ ParameterIndex(6),
+    /* return_matcher_indices */ MatcherIndicesIndex(16),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [4] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(7),
+    /* return_matcher_indices */ MatcherIndicesIndex(4),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [5] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(2),
+    /* parameters */ ParameterIndex(8),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [6] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(9),
+    /* return_matcher_indices */ MatcherIndicesIndex(4),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [7] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(2),
+    /* parameters */ ParameterIndex(10),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [8] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 0,
     /* num_explicit_templates */ 0,
@@ -300,7 +475,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [1] */
+    /* [9] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
@@ -311,7 +486,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [2] */
+    /* [10] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
@@ -331,32 +506,60 @@
     /* [0] */
     /* fn barrier() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(0),
+    /* overloads */ OverloadIndex(8),
   },
   {
     /* [1] */
     /* fn memoryBarrierBuffer() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(0),
+    /* overloads */ OverloadIndex(8),
   },
   {
     /* [2] */
     /* fn memoryBarrierImage() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(0),
+    /* overloads */ OverloadIndex(8),
   },
   {
     /* [3] */
-    /* fn atomicCompSwap[T : iu32](ptr<workgroup_or_storage, atomic<T>, read_write>, compare_value: u32, value: u32) -> T */
+    /* fn atomicCompSwap[T : iu32](ptr<workgroup_or_storage, atomic<T>, read_write>, compare_value: T, value: T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(1),
+    /* overloads */ OverloadIndex(9),
   },
   {
     /* [4] */
     /* fn atomicSub[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
+    /* overloads */ OverloadIndex(10),
+  },
+  {
+    /* [5] */
+    /* fn floatBitsToInt(value: f32) -> i32 */
+    /* fn floatBitsToInt[N : num](value: vec<N, f32>) -> vec<N, i32> */
+    /* num overloads */ 2,
+    /* overloads */ OverloadIndex(0),
+  },
+  {
+    /* [6] */
+    /* fn floatBitsToUint(value: f32) -> u32 */
+    /* fn floatBitsToUint[N : num](value: vec<N, f32>) -> vec<N, u32> */
+    /* num overloads */ 2,
     /* overloads */ OverloadIndex(2),
   },
+  {
+    /* [7] */
+    /* fn intBitsToFloat(value: i32) -> f32 */
+    /* fn intBitsToFloat[N : num](value: vec<N, i32>) -> vec<N, f32> */
+    /* num overloads */ 2,
+    /* overloads */ OverloadIndex(4),
+  },
+  {
+    /* [8] */
+    /* fn uintBitsToFloat(value: u32) -> f32 */
+    /* fn uintBitsToFloat[N : num](value: vec<N, u32>) -> vec<N, f32> */
+    /* num overloads */ 2,
+    /* overloads */ OverloadIndex(6),
+  },
 };
 
 // clang-format on
diff --git a/src/tint/lang/glsl/writer/builtin_test.cc b/src/tint/lang/glsl/writer/builtin_test.cc
index 9778711..fdaacf9 100644
--- a/src/tint/lang/glsl/writer/builtin_test.cc
+++ b/src/tint/lang/glsl/writer/builtin_test.cc
@@ -170,8 +170,7 @@
 )");
 }
 
-// TODO(dsinclair): Needs bitcast
-TEST_F(GlslWriterTest, DISABLED_BuiltinStorageAtomicCompareExchangeWeak) {
+TEST_F(GlslWriterTest, BuiltinStorageAtomicCompareExchangeWeak) {
     auto* sb = ty.Struct(mod.symbols.New("SB"), {
                                                     {mod.symbols.New("padding"), ty.vec4<f32>()},
                                                     {mod.symbols.New("a"), ty.atomic<i32>()},
@@ -192,25 +191,33 @@
     });
 
     ASSERT_TRUE(Generate()) << err_ << output_.glsl;
-    EXPECT_EQ(output_.glsl, GlslHeader() + R"(struct atomic_compare_exchange_result_i32 {
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+
+struct SB {
+  vec4 padding;
+  int a;
+  uint b;
+};
+
+struct atomic_compare_exchange_result_i32 {
   int old_value;
   bool exchanged;
 };
 
-
-RWByteAddressBuffer v : register(u0);
-void foo() {
-  int v_1 = 0;
-  v.InterlockedCompareExchange(int(16u), 123, 345, v_1);
-  int v_2 = v_1;
-  atomic_compare_exchange_result_i32 x = {v_2, (v_2 == 123)};
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB tint_symbol;
+} v_1;
+void main() {
+  int v_2 = atomicCompSwap(v_1.tint_symbol.a, 123, 345);
+  atomic_compare_exchange_result_i32 x = atomic_compare_exchange_result_i32(v_2, (v_2 == 123));
 }
-
 )");
 }
 
-// TODO(dsinclair): Needs bitcast
-TEST_F(GlslWriterTest, DISABLED_BuiltinStorageAtomicCompareExchangeWeakDirect) {
+TEST_F(GlslWriterTest, BuiltinStorageAtomicCompareExchangeWeakDirect) {
     auto* var = b.Var("v", storage, ty.atomic<i32>(), core::Access::kReadWrite);
     var->SetBindingPoint(0, 0);
     b.ir.root_block->Append(var);
@@ -223,20 +230,23 @@
     });
 
     ASSERT_TRUE(Generate()) << err_ << output_.glsl;
-    EXPECT_EQ(output_.glsl, GlslHeader() + R"(struct atomic_compare_exchange_result_i32 {
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+
+struct atomic_compare_exchange_result_i32 {
   int old_value;
   bool exchanged;
 };
 
-
-RWByteAddressBuffer v : register(u0);
-void foo() {
-  int v_1 = 0;
-  v.InterlockedCompareExchange(int(0u), 123, 345, v_1);
-  int v_2 = v_1;
-  atomic_compare_exchange_result_i32 x = {v_2, (v_2 == 123)};
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v_1;
+void main() {
+  int v_2 = atomicCompSwap(v_1.tint_symbol, 123, 345);
+  atomic_compare_exchange_result_i32 x = atomic_compare_exchange_result_i32(v_2, (v_2 == 123));
 }
-
 )");
 }
 
@@ -331,8 +341,7 @@
 )");
 }
 
-// TODO(dsinclair): Needs bitcast
-TEST_F(GlslWriterTest, DISABLED_BuiltinWorkgroupAtomicCompareExchangeWeak) {
+TEST_F(GlslWriterTest, BuiltinWorkgroupAtomicCompareExchangeWeak) {
     auto* sb = ty.Struct(mod.symbols.New("SB"), {
                                                     {mod.symbols.New("padding"), ty.vec4<f32>()},
                                                     {mod.symbols.New("a"), ty.atomic<i32>()},
@@ -353,8 +362,10 @@
     });
 
     ASSERT_TRUE(Generate()) << err_ << output_.glsl;
-    EXPECT_EQ(output_.glsl, GlslHeader() + R"(struct SB {
-  float4 padding;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(
+
+struct SB {
+  vec4 padding;
   int a;
   uint b;
 };
@@ -364,32 +375,173 @@
   bool exchanged;
 };
 
-struct foo_inputs {
-  uint tint_local_index : SV_GroupIndex;
-};
-
-
-groupshared SB v;
+shared SB v;
 void foo_inner(uint tint_local_index) {
   if ((tint_local_index == 0u)) {
-    v.padding = (0.0f).xxxx;
-    int v_1 = 0;
-    InterlockedExchange(v.a, 0, v_1);
-    uint v_2 = 0u;
-    InterlockedExchange(v.b, 0u, v_2);
+    v.padding = vec4(0.0f);
+    atomicExchange(v.a, 0);
+    atomicExchange(v.b, 0u);
   }
-  GroupMemoryBarrierWithGroupSync();
-  int v_3 = 0;
-  InterlockedCompareExchange(v.a, 123, 345, v_3);
-  int v_4 = v_3;
-  atomic_compare_exchange_result_i32 x = {v_4, (v_4 == 123)};
+  barrier();
+  int v_1 = atomicCompSwap(v.a, 123, 345);
+  atomic_compare_exchange_result_i32 x = atomic_compare_exchange_result_i32(v_1, (v_1 == 123));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  foo_inner(gl_LocalInvocationIndex);
+}
+)");
 }
 
-[numthreads(1, 1, 1)]
-void foo(foo_inputs inputs) {
-  foo_inner(inputs.tint_local_index);
+TEST_F(GlslWriterTest, BuiltinBitcast_FloatToFloat) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_f);
+        b.Let("x", b.Bitcast<f32>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  float a = 1.0f;
+  float x = a;
+}
+)");
 }
 
+TEST_F(GlslWriterTest, BuiltinBitcast_IntToFloat) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_i);
+        b.Let("x", b.Bitcast<f32>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  int a = 1;
+  float x = intBitsToFloat(a);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinBitcast_UintToFloat) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_u);
+        b.Let("x", b.Bitcast<f32>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  uint a = 1u;
+  float x = uintBitsToFloat(a);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinBitcast_Vec3UintToVec3Float) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", b.Splat<vec3<u32>>(1_u));
+        b.Let("x", b.Bitcast<vec3<f32>>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  uvec3 a = uvec3(1u);
+  vec3 x = uintBitsToFloat(a);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinBitcast_FloatToInt) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_f);
+        b.Let("x", b.Bitcast<i32>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  float a = 1.0f;
+  int x = floatBitsToInt(a);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinBitcast_FloatToUint) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_f);
+        b.Let("x", b.Bitcast<u32>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  float a = 1.0f;
+  uint x = floatBitsToUint(a);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinBitcast_UintToInt) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_u);
+        b.Let("x", b.Bitcast<i32>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  uint a = 1u;
+  int x = int(a);
+}
+)");
+}
+
+TEST_F(GlslWriterTest, BuiltinBitcast_IntToUint) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_i);
+        b.Let("x", b.Bitcast<u32>(a));
+        b.Return(func);
+    });
+
+    ASSERT_TRUE(Generate()) << err_ << output_.glsl;
+    EXPECT_EQ(output_.glsl, GlslHeader() + R"(precision highp float;
+precision highp int;
+
+void main() {
+  int a = 1;
+  uint x = uint(a);
+}
 )");
 }
 
diff --git a/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc b/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
index 169aefd..a38f10d 100644
--- a/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
+++ b/src/tint/lang/glsl/writer/raise/builtin_polyfill.cc
@@ -61,10 +61,19 @@
         tint::UnorderedKeyWrapper<std::tuple<const core::type::Type*, const core::type::Type*>>;
     Hashmap<BitcastType, core::ir::Function*, 4> bitcast_funcs_{};
 
+    // The bitcast worklist is a member because some polyfills add bitcast calls. When they do, they
+    // can add the bitcast to the worklist to be fixed up as needed.
+    Vector<core::ir::Bitcast*, 4> bitcast_worklist{};
+
     /// Process the module.
     void Process() {
         Vector<core::ir::CoreBuiltinCall*, 4> call_worklist;
         for (auto* inst : ir.Instructions()) {
+            if (auto* bitcast = inst->As<core::ir::Bitcast>()) {
+                bitcast_worklist.Push(bitcast);
+                continue;
+            }
+
             if (auto* call = inst->As<core::ir::CoreBuiltinCall>()) {
                 switch (call->Func()) {
                     case core::BuiltinFn::kAtomicCompareExchangeWeak:
@@ -107,6 +116,75 @@
                     TINT_UNREACHABLE();
             }
         }
+
+        // Replace the bitcasts that we found. These are done after the other builtins as some of
+        // them also create bitcasts which will need to be updated.
+        for (auto* bitcast : bitcast_worklist) {
+            auto* src_type = bitcast->Val()->Type();
+            auto* dst_type = bitcast->Result(0)->Type();
+            auto* dst_deepest = dst_type->DeepestElement();
+
+            if (src_type == dst_type) {
+                ReplaceBitcastWithValue(bitcast);
+            } else if (src_type->DeepestElement()->Is<core::type::F16>()) {
+                // TODO(dsinclair): Polyfill from f16
+                TINT_UNREACHABLE();
+            } else if (dst_deepest->Is<core::type::F16>()) {
+                // TODO(dsinclair): Polyfill to f16
+                TINT_UNREACHABLE();
+            } else if (src_type->DeepestElement()->Is<core::type::F32>()) {
+                ReplaceBitcastFromF32(bitcast);
+            } else if (dst_type->DeepestElement()->Is<core::type::F32>()) {
+                ReplaceBitcastToF32(bitcast);
+            } else {
+                ReplaceBitcast(bitcast);
+            }
+        }
+    }
+
+    void ReplaceBitcastWithValue(core::ir::Bitcast* bitcast) {
+        bitcast->Result(0)->ReplaceAllUsesWith(bitcast->Val());
+        bitcast->Destroy();
+    }
+
+    void ReplaceBitcastFromF32(core::ir::Bitcast* bitcast) {
+        auto* dst_type = bitcast->Result(0)->Type();
+        auto* dst_deepest = dst_type->DeepestElement();
+
+        BuiltinFn fn = BuiltinFn::kNone;
+        tint::Switch(
+            dst_deepest,                                                        //
+            [&](const core::type::I32*) { fn = BuiltinFn::kFloatBitsToInt; },   //
+            [&](const core::type::U32*) { fn = BuiltinFn::kFloatBitsToUint; },  //
+            TINT_ICE_ON_NO_MATCH);
+
+        b.InsertBefore(bitcast, [&] {
+            b.CallWithResult<glsl::ir::BuiltinCall>(bitcast->DetachResult(), fn, bitcast->Val());
+        });
+        bitcast->Destroy();
+    }
+
+    void ReplaceBitcastToF32(core::ir::Bitcast* bitcast) {
+        auto* src_type = bitcast->Val()->Type();
+        auto* src_deepest = src_type->DeepestElement();
+
+        BuiltinFn fn = BuiltinFn::kNone;
+        tint::Switch(
+            src_deepest,                                                        //
+            [&](const core::type::I32*) { fn = BuiltinFn::kIntBitsToFloat; },   //
+            [&](const core::type::U32*) { fn = BuiltinFn::kUintBitsToFloat; },  //
+            TINT_ICE_ON_NO_MATCH);
+
+        b.InsertBefore(bitcast, [&] {
+            b.CallWithResult<glsl::ir::BuiltinCall>(bitcast->DetachResult(), fn, bitcast->Val());
+        });
+        bitcast->Destroy();
+    }
+
+    void ReplaceBitcast(core::ir::Bitcast* bitcast) {
+        b.InsertBefore(bitcast,
+                       [&] { b.ConvertWithResult(bitcast->DetachResult(), bitcast->Val()); });
+        bitcast->Destroy();
     }
 
     void AtomicCompareExchangeWeak(core::ir::BuiltinCall* call) {
@@ -120,10 +198,16 @@
         auto* result_type = call->Result(0)->Type();
 
         b.InsertBefore(call, [&] {
+            auto* bitcast_cmp_value = b.Bitcast(type, compare_value);
+            auto* bitcast_value = b.Bitcast(type, value);
+
+            bitcast_worklist.Push(bitcast_cmp_value);
+            bitcast_worklist.Push(bitcast_value);
+
             auto* swap = b.Call<glsl::ir::BuiltinCall>(
                 type, glsl::BuiltinFn::kAtomicCompSwap,
-                Vector<core::ir::Value*, 3>{dest, b.Bitcast(ty.u32(), compare_value)->Result(0),
-                                            b.Bitcast(ty.u32(), value)->Result(0)});
+                Vector<core::ir::Value*, 3>{dest, bitcast_cmp_value->Result(0),
+                                            bitcast_value->Result(0)});
 
             auto* exchanged = b.Equal(ty.bool_(), swap, compare_value);
 
diff --git a/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc b/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
index ab50554..58f8f0b 100644
--- a/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
+++ b/src/tint/lang/glsl/writer/raise/builtin_polyfill_test.cc
@@ -260,12 +260,10 @@
 
 %foo = @compute @workgroup_size(1, 1, 1) func():void {
   $B2: {
-    %3:u32 = bitcast 123i
-    %4:u32 = bitcast 345i
-    %5:i32 = glsl.atomicCompSwap %v, %3, %4
-    %6:bool = eq %5, 123i
-    %7:__atomic_compare_exchange_result_i32 = construct %5, %6
-    %x:__atomic_compare_exchange_result_i32 = let %7
+    %3:i32 = glsl.atomicCompSwap %v, 123i, 345i
+    %4:bool = eq %3, 123i
+    %5:__atomic_compare_exchange_result_i32 = construct %3, %4
+    %x:__atomic_compare_exchange_result_i32 = let %5
     ret
   }
 }
@@ -411,5 +409,284 @@
     EXPECT_EQ(expect, str());
 }
 
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastFloatToFloat) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_f);
+        b.Let("x", b.Bitcast<f32>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:f32 = let 1.0f
+    %3:f32 = bitcast %a
+    %x:f32 = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:f32 = let 1.0f
+    %x:f32 = let %a
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastIntToFloat) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_i);
+        b.Let("x", b.Bitcast<f32>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:i32 = let 1i
+    %3:f32 = bitcast %a
+    %x:f32 = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:i32 = let 1i
+    %3:f32 = glsl.intBitsToFloat %a
+    %x:f32 = let %3
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastUintToFloat) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_u);
+        b.Let("x", b.Bitcast<f32>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:u32 = let 1u
+    %3:f32 = bitcast %a
+    %x:f32 = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:u32 = let 1u
+    %3:f32 = glsl.uintBitsToFloat %a
+    %x:f32 = let %3
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastVec3UintToVec3Float) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", b.Splat<vec3<u32>>(1_u));
+        b.Let("x", b.Bitcast<vec3<f32>>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:vec3<u32> = let vec3<u32>(1u)
+    %3:vec3<f32> = bitcast %a
+    %x:vec3<f32> = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:vec3<u32> = let vec3<u32>(1u)
+    %3:vec3<f32> = glsl.uintBitsToFloat %a
+    %x:vec3<f32> = let %3
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastFloatToInt) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_f);
+        b.Let("x", b.Bitcast<i32>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:f32 = let 1.0f
+    %3:i32 = bitcast %a
+    %x:i32 = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:f32 = let 1.0f
+    %3:i32 = glsl.floatBitsToInt %a
+    %x:i32 = let %3
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastFloatToUint) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_f);
+        b.Let("x", b.Bitcast<u32>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:f32 = let 1.0f
+    %3:u32 = bitcast %a
+    %x:u32 = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:f32 = let 1.0f
+    %3:u32 = glsl.floatBitsToUint %a
+    %x:u32 = let %3
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastUintToInt) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_u);
+        b.Let("x", b.Bitcast<i32>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:u32 = let 1u
+    %3:i32 = bitcast %a
+    %x:i32 = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:u32 = let 1u
+    %3:i32 = convert %a
+    %x:i32 = let %3
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
+TEST_F(GlslWriter_BuiltinPolyfillTest, BitcastIntToUint) {
+    auto* func = b.Function("foo", ty.void_(), core::ir::Function::PipelineStage::kFragment);
+    b.Append(func->Block(), [&] {
+        auto* a = b.Let("a", 1_i);
+        b.Let("x", b.Bitcast<u32>(a));
+        b.Return(func);
+    });
+
+    auto* src = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:i32 = let 1i
+    %3:u32 = bitcast %a
+    %x:u32 = let %3
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = R"(
+%foo = @fragment func():void {
+  $B1: {
+    %a:i32 = let 1i
+    %3:u32 = convert %a
+    %x:u32 = let %3
+    ret
+  }
+}
+)";
+
+    Run(BuiltinPolyfill);
+    EXPECT_EQ(expect, str());
+}
+
 }  // namespace
 }  // namespace tint::glsl::writer::raise
diff --git a/test/tint/bug/tint/1573.wgsl.expected.ir.glsl b/test/tint/bug/tint/1573.wgsl.expected.ir.glsl
index 8aeaa3c..cf516d0 100644
--- a/test/tint/bug/tint/1573.wgsl.expected.ir.glsl
+++ b/test/tint/bug/tint/1573.wgsl.expected.ir.glsl
@@ -1,11 +1,18 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  uint tint_symbol_1;
+} v;
+layout(local_size_x = 16, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uint value = 42u;
+  uint v_1 = atomicCompSwap(v.tint_symbol_1, 0u, value);
+  atomic_compare_exchange_result_u32 result = atomic_compare_exchange_result_u32(v_1, (v_1 == 0u));
+}
diff --git a/test/tint/bug/tint/1574.wgsl.expected.ir.glsl b/test/tint/bug/tint/1574.wgsl.expected.ir.glsl
index 7292d5c..b286814 100644
--- a/test/tint/bug/tint/1574.wgsl.expected.ir.glsl
+++ b/test/tint/bug/tint/1574.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicStore
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  uint tint_symbol_1;
+} v;
+layout(binding = 1, std430)
+buffer tint_symbol_4_1_ssbo {
+  int tint_symbol_3;
+} v_1;
+shared uint b_u32;
+shared int b_i32;
+void tint_symbol_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    atomicExchange(b_u32, 0u);
+    atomicExchange(b_i32, 0);
+  }
+  barrier();
+  uint value = 42u;
+  uint v_2 = atomicCompSwap(v.tint_symbol_1, 0u, value);
+  atomic_compare_exchange_result_u32 r1 = atomic_compare_exchange_result_u32(v_2, (v_2 == 0u));
+  uint v_3 = atomicCompSwap(v.tint_symbol_1, 0u, value);
+  atomic_compare_exchange_result_u32 r2 = atomic_compare_exchange_result_u32(v_3, (v_3 == 0u));
+  uint v_4 = atomicCompSwap(v.tint_symbol_1, 0u, value);
+  atomic_compare_exchange_result_u32 r3 = atomic_compare_exchange_result_u32(v_4, (v_4 == 0u));
+  int value_1 = 42;
+  int v_5 = atomicCompSwap(v_1.tint_symbol_3, 0, value_1);
+  atomic_compare_exchange_result_i32 r1_1 = atomic_compare_exchange_result_i32(v_5, (v_5 == 0));
+  int v_6 = atomicCompSwap(v_1.tint_symbol_3, 0, value_1);
+  atomic_compare_exchange_result_i32 r2_1 = atomic_compare_exchange_result_i32(v_6, (v_6 == 0));
+  int v_7 = atomicCompSwap(v_1.tint_symbol_3, 0, value_1);
+  atomic_compare_exchange_result_i32 r3_1 = atomic_compare_exchange_result_i32(v_7, (v_7 == 0));
+  uint value_2 = 42u;
+  uint v_8 = atomicCompSwap(b_u32, 0u, value_2);
+  atomic_compare_exchange_result_u32 r1_2 = atomic_compare_exchange_result_u32(v_8, (v_8 == 0u));
+  uint v_9 = atomicCompSwap(b_u32, 0u, value_2);
+  atomic_compare_exchange_result_u32 r2_2 = atomic_compare_exchange_result_u32(v_9, (v_9 == 0u));
+  uint v_10 = atomicCompSwap(b_u32, 0u, value_2);
+  atomic_compare_exchange_result_u32 r3_2 = atomic_compare_exchange_result_u32(v_10, (v_10 == 0u));
+  int value_3 = 42;
+  int v_11 = atomicCompSwap(b_i32, 0, value_3);
+  atomic_compare_exchange_result_i32 r1_3 = atomic_compare_exchange_result_i32(v_11, (v_11 == 0));
+  int v_12 = atomicCompSwap(b_i32, 0, value_3);
+  atomic_compare_exchange_result_i32 r2_3 = atomic_compare_exchange_result_i32(v_12, (v_12 == 0));
+  int v_13 = atomicCompSwap(b_i32, 0, value_3);
+  atomic_compare_exchange_result_i32 r3_3 = atomic_compare_exchange_result_i32(v_13, (v_13 == 0));
+}
+layout(local_size_x = 16, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  tint_symbol_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/bug/tint/1963_b.wgsl.expected.ir.glsl b/test/tint/bug/tint/1963_b.wgsl.expected.ir.glsl
index 8aeaa3c..1402901 100644
--- a/test/tint/bug/tint/1963_b.wgsl.expected.ir.glsl
+++ b/test/tint/bug/tint/1963_b.wgsl.expected.ir.glsl
@@ -1,11 +1,17 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v_1;
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  int v_2 = atomicCompSwap(v_1.tint_symbol, 1, 1);
+  int v = atomic_compare_exchange_result_i32(v_2, (v_2 == 1)).old_value;
+}
diff --git a/test/tint/bug/tint/977.spvasm.expected.ir.glsl b/test/tint/bug/tint/977.spvasm.expected.ir.glsl
index 5cf8186..25b32c0 100644
--- a/test/tint/bug/tint/977.spvasm.expected.ir.glsl
+++ b/test/tint/bug/tint/977.spvasm.expected.ir.glsl
@@ -1,11 +1,45 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+uvec3 tint_symbol = uvec3(0u);
+layout(binding = 2, std430)
+buffer ResultMatrix_1_ssbo {
+  float numbers[];
+} resultMatrix;
+float binaryOperation_f1_f1_(inout float a, inout float b) {
+  float x_26 = 0.0f;
+  if ((b == 0.0f)) {
+    return 1.0f;
+  }
+  float x_21 = b;
+  if (!((round((x_21 - (2.0f * floor((x_21 / 2.0f))))) == 1.0f))) {
+    float v = abs(a);
+    x_26 = pow(v, b);
+  } else {
+    float v_1 = sign(a);
+    float v_2 = abs(a);
+    x_26 = (v_1 * pow(v_2, b));
+  }
+  float x_41 = x_26;
+  return x_41;
+}
+void main_1() {
+  int index = 0;
+  int a_1 = 0;
+  float param = 0.0f;
+  float param_1 = 0.0f;
+  index = int(tint_symbol.x);
+  a_1 = -10;
+  int x_63 = index;
+  param = -4.0f;
+  param_1 = -3.0f;
+  float x_68 = binaryOperation_f1_f1_(param, param_1);
+  resultMatrix.numbers[x_63] = x_68;
+}
+void tint_symbol_1_inner(uvec3 tint_symbol_2) {
+  tint_symbol = tint_symbol_2;
+  main_1();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  tint_symbol_1_inner(gl_GlobalInvocationID);
+}
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl
index 8aeaa3c..45a5b8f 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl
@@ -1,11 +1,71 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW_atomic {
+  int arg_0;
+};
+
+struct tint_symbol {
+  int old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  tint_symbol res = tint_symbol(0, false);
+  int v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, 1, 1);
+  int old_value_1 = atomic_compare_exchange_result_i32(v_1, (v_1 == 1)).old_value;
+  int x_19 = old_value_1;
+  res = tint_symbol(x_19, (x_19 == 1));
+}
+void fragment_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+void main() {
+  fragment_main_1();
+}
+#version 310 es
+
+
+struct SB_RW_atomic {
+  int arg_0;
+};
+
+struct tint_symbol {
+  int old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  tint_symbol res = tint_symbol(0, false);
+  int v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, 1, 1);
+  int old_value_1 = atomic_compare_exchange_result_i32(v_1, (v_1 == 1)).old_value;
+  int x_19 = old_value_1;
+  res = tint_symbol(x_19, (x_19 == 1));
+}
+void compute_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_1();
+}
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl
index 8aeaa3c..ccc490b 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl
@@ -1,11 +1,71 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW_atomic {
+  uint arg_0;
+};
+
+struct tint_symbol {
+  uint old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  tint_symbol res = tint_symbol(0u, false);
+  uint v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, 1u, 1u);
+  uint old_value_1 = atomic_compare_exchange_result_u32(v_1, (v_1 == 1u)).old_value;
+  uint x_17 = old_value_1;
+  res = tint_symbol(x_17, (x_17 == 1u));
+}
+void fragment_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+void main() {
+  fragment_main_1();
+}
+#version 310 es
+
+
+struct SB_RW_atomic {
+  uint arg_0;
+};
+
+struct tint_symbol {
+  uint old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  tint_symbol res = tint_symbol(0u, false);
+  uint v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, 1u, 1u);
+  uint old_value_1 = atomic_compare_exchange_result_u32(v_1, (v_1 == 1u)).old_value;
+  uint x_17 = old_value_1;
+  res = tint_symbol(x_17, (x_17 == 1u));
+}
+void compute_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_1();
+}
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl
index 8aeaa3c..3c8a328 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl
@@ -1,11 +1,43 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct tint_symbol {
+  int old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+uint local_invocation_index_1 = 0u;
+shared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  tint_symbol res = tint_symbol(0, false);
+  int v = atomicCompSwap(arg_0, 1, 1);
+  int old_value_1 = atomic_compare_exchange_result_i32(v, (v == 1)).old_value;
+  int x_18 = old_value_1;
+  res = tint_symbol(x_18, (x_18 == 1));
+}
+void compute_main_inner(uint local_invocation_index_2) {
+  atomicExchange(arg_0, 0);
+  barrier();
+  atomicCompareExchangeWeak_e88938();
+}
+void compute_main_1() {
+  uint x_36 = local_invocation_index_1;
+  compute_main_inner(x_36);
+}
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    atomicExchange(arg_0, 0);
+  }
+  barrier();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner_1(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl
index 8aeaa3c..b6d3804 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl
@@ -1,11 +1,43 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct tint_symbol {
+  uint old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+uint local_invocation_index_1 = 0u;
+shared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  tint_symbol res = tint_symbol(0u, false);
+  uint v = atomicCompSwap(arg_0, 1u, 1u);
+  uint old_value_1 = atomic_compare_exchange_result_u32(v, (v == 1u)).old_value;
+  uint x_17 = old_value_1;
+  res = tint_symbol(x_17, (x_17 == 1u));
+}
+void compute_main_inner(uint local_invocation_index_2) {
+  atomicExchange(arg_0, 0u);
+  barrier();
+  atomicCompareExchangeWeak_83580d();
+}
+void compute_main_1() {
+  uint x_35 = local_invocation_index_1;
+  compute_main_inner(x_35);
+}
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    atomicExchange(arg_0, 0u);
+  }
+  barrier();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner_1(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl
index 8aeaa3c..17ad9ff 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.glsl
@@ -1,11 +1,83 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW_atomic {
+  int arg_0;
+};
+
+struct tint_symbol {
+  int old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 0;
+  int arg_2 = 0;
+  tint_symbol res = tint_symbol(0, false);
+  arg_1 = 1;
+  arg_2 = 1;
+  int x_23 = arg_2;
+  int x_24 = arg_1;
+  int v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, x_24, x_23);
+  int old_value_1 = atomic_compare_exchange_result_i32(v_1, (v_1 == x_24)).old_value;
+  int x_25 = old_value_1;
+  res = tint_symbol(x_25, (x_25 == x_23));
+}
+void fragment_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+void main() {
+  fragment_main_1();
+}
+#version 310 es
+
+
+struct SB_RW_atomic {
+  int arg_0;
+};
+
+struct tint_symbol {
+  int old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 0;
+  int arg_2 = 0;
+  tint_symbol res = tint_symbol(0, false);
+  arg_1 = 1;
+  arg_2 = 1;
+  int x_23 = arg_2;
+  int x_24 = arg_1;
+  int v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, x_24, x_23);
+  int old_value_1 = atomic_compare_exchange_result_i32(v_1, (v_1 == x_24)).old_value;
+  int x_25 = old_value_1;
+  res = tint_symbol(x_25, (x_25 == x_23));
+}
+void compute_main_1() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_1();
+}
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl
index 8aeaa3c..d11582f 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.glsl
@@ -1,11 +1,83 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW_atomic {
+  uint arg_0;
+};
+
+struct tint_symbol {
+  uint old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 0u;
+  uint arg_2 = 0u;
+  tint_symbol res = tint_symbol(0u, false);
+  arg_1 = 1u;
+  arg_2 = 1u;
+  uint x_21 = arg_2;
+  uint x_22 = arg_1;
+  uint v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, x_22, x_21);
+  uint old_value_1 = atomic_compare_exchange_result_u32(v_1, (v_1 == x_22)).old_value;
+  uint x_23 = old_value_1;
+  res = tint_symbol(x_23, (x_23 == x_21));
+}
+void fragment_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+void main() {
+  fragment_main_1();
+}
+#version 310 es
+
+
+struct SB_RW_atomic {
+  uint arg_0;
+};
+
+struct tint_symbol {
+  uint old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_2_1_ssbo {
+  SB_RW_atomic tint_symbol_1;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 0u;
+  uint arg_2 = 0u;
+  tint_symbol res = tint_symbol(0u, false);
+  arg_1 = 1u;
+  arg_2 = 1u;
+  uint x_21 = arg_2;
+  uint x_22 = arg_1;
+  uint v_1 = atomicCompSwap(v.tint_symbol_1.arg_0, x_22, x_21);
+  uint old_value_1 = atomic_compare_exchange_result_u32(v_1, (v_1 == x_22)).old_value;
+  uint x_23 = old_value_1;
+  res = tint_symbol(x_23, (x_23 == x_21));
+}
+void compute_main_1() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_1();
+}
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl
index 8aeaa3c..cb737b9 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.glsl
@@ -1,11 +1,49 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct tint_symbol {
+  int old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+uint local_invocation_index_1 = 0u;
+shared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int arg_1 = 0;
+  int arg_2 = 0;
+  tint_symbol res = tint_symbol(0, false);
+  arg_1 = 1;
+  arg_2 = 1;
+  int x_22 = arg_2;
+  int x_23 = arg_1;
+  int v = atomicCompSwap(arg_0, x_23, x_22);
+  int old_value_1 = atomic_compare_exchange_result_i32(v, (v == x_23)).old_value;
+  int x_24 = old_value_1;
+  res = tint_symbol(x_24, (x_24 == x_22));
+}
+void compute_main_inner(uint local_invocation_index_2) {
+  atomicExchange(arg_0, 0);
+  barrier();
+  atomicCompareExchangeWeak_e88938();
+}
+void compute_main_1() {
+  uint x_41 = local_invocation_index_1;
+  compute_main_inner(x_41);
+}
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    atomicExchange(arg_0, 0);
+  }
+  barrier();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner_1(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl
index 8aeaa3c..7d408f2 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.glsl
@@ -1,11 +1,49 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct tint_symbol {
+  uint old_value;
+  bool exchanged;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+uint local_invocation_index_1 = 0u;
+shared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint arg_1 = 0u;
+  uint arg_2 = 0u;
+  tint_symbol res = tint_symbol(0u, false);
+  arg_1 = 1u;
+  arg_2 = 1u;
+  uint x_21 = arg_2;
+  uint x_22 = arg_1;
+  uint v = atomicCompSwap(arg_0, x_22, x_21);
+  uint old_value_1 = atomic_compare_exchange_result_u32(v, (v == x_22)).old_value;
+  uint x_23 = old_value_1;
+  res = tint_symbol(x_23, (x_23 == x_21));
+}
+void compute_main_inner(uint local_invocation_index_2) {
+  atomicExchange(arg_0, 0u);
+  barrier();
+  atomicCompareExchangeWeak_83580d();
+}
+void compute_main_1() {
+  uint x_40 = local_invocation_index_1;
+  compute_main_inner(x_40);
+}
+void compute_main_inner_1(uint local_invocation_index_1_param) {
+  if ((local_invocation_index_1_param == 0u)) {
+    atomicExchange(arg_0, 0u);
+  }
+  barrier();
+  local_invocation_index_1 = local_invocation_index_1_param;
+  compute_main_1();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner_1(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl
index 8aeaa3c..1839726 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl
@@ -1,11 +1,49 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW {
+  int arg_0;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  int v_1 = atomicCompSwap(v.tint_symbol.arg_0, 1, 1);
+  atomic_compare_exchange_result_i32 res = atomic_compare_exchange_result_i32(v_1, (v_1 == 1));
+}
+void main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+#version 310 es
+
+
+struct SB_RW {
+  int arg_0;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  int v_1 = atomicCompSwap(v.tint_symbol.arg_0, 1, 1);
+  atomic_compare_exchange_result_i32 res = atomic_compare_exchange_result_i32(v_1, (v_1 == 1));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl
index 8aeaa3c..ed6c195 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl
@@ -1,11 +1,49 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW {
+  uint arg_0;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  uint v_1 = atomicCompSwap(v.tint_symbol.arg_0, 1u, 1u);
+  atomic_compare_exchange_result_u32 res = atomic_compare_exchange_result_u32(v_1, (v_1 == 1u));
+}
+void main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+#version 310 es
+
+
+struct SB_RW {
+  uint arg_0;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  uint v_1 = atomicCompSwap(v.tint_symbol.arg_0, 1u, 1u);
+  atomic_compare_exchange_result_u32 res = atomic_compare_exchange_result_u32(v_1, (v_1 == 1u));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl
index 8aeaa3c..4ab288e 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+shared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint v = atomicCompSwap(arg_0, 1u, 1u);
+  atomic_compare_exchange_result_u32 res = atomic_compare_exchange_result_u32(v, (v == 1u));
+}
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    atomicExchange(arg_0, 0u);
+  }
+  barrier();
+  atomicCompareExchangeWeak_83580d();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl
index 8aeaa3c..0e14937 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl
@@ -1,11 +1,24 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+shared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int v = atomicCompSwap(arg_0, 1, 1);
+  atomic_compare_exchange_result_i32 res = atomic_compare_exchange_result_i32(v, (v == 1));
+}
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    atomicExchange(arg_0, 0);
+  }
+  barrier();
+  atomicCompareExchangeWeak_e88938();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl
index 8aeaa3c..5430088 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.glsl
@@ -1,11 +1,55 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW {
+  int arg_0;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v_1 = arg_1;
+  int v_2 = atomicCompSwap(v.tint_symbol.arg_0, v_1, arg_2);
+  atomic_compare_exchange_result_i32 res = atomic_compare_exchange_result_i32(v_2, (v_2 == v_1));
+}
+void main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
+#version 310 es
+
+
+struct SB_RW {
+  int arg_0;
+};
+
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_1bd40a() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v_1 = arg_1;
+  int v_2 = atomicCompSwap(v.tint_symbol.arg_0, v_1, arg_2);
+  atomic_compare_exchange_result_i32 res = atomic_compare_exchange_result_i32(v_2, (v_2 == v_1));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  atomicCompareExchangeWeak_1bd40a();
+}
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl
index 8aeaa3c..3fc42a8 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.glsl
@@ -1,11 +1,55 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct SB_RW {
+  uint arg_0;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v_1 = arg_1;
+  uint v_2 = atomicCompSwap(v.tint_symbol.arg_0, v_1, arg_2);
+  atomic_compare_exchange_result_u32 res = atomic_compare_exchange_result_u32(v_2, (v_2 == v_1));
+}
+void main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
+#version 310 es
+
+
+struct SB_RW {
+  uint arg_0;
+};
+
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  SB_RW tint_symbol;
+} v;
+void atomicCompareExchangeWeak_63d8e6() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v_1 = arg_1;
+  uint v_2 = atomicCompSwap(v.tint_symbol.arg_0, v_1, arg_2);
+  atomic_compare_exchange_result_u32 res = atomic_compare_exchange_result_u32(v_2, (v_2 == v_1));
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  atomicCompareExchangeWeak_63d8e6();
+}
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl
index 8aeaa3c..1d795fd 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.glsl
@@ -1,11 +1,27 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct atomic_compare_exchange_result_u32 {
+  uint old_value;
+  bool exchanged;
+};
+
+shared uint arg_0;
+void atomicCompareExchangeWeak_83580d() {
+  uint arg_1 = 1u;
+  uint arg_2 = 1u;
+  uint v = arg_1;
+  uint v_1 = atomicCompSwap(arg_0, v, arg_2);
+  atomic_compare_exchange_result_u32 res = atomic_compare_exchange_result_u32(v_1, (v_1 == v));
+}
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    atomicExchange(arg_0, 0u);
+  }
+  barrier();
+  atomicCompareExchangeWeak_83580d();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl
index 8aeaa3c..08bdd8f 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.glsl
@@ -1,11 +1,27 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1423 internal compiler error: TINT_UNREACHABLE unhandled core builtin: atomicCompareExchangeWeak
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+struct atomic_compare_exchange_result_i32 {
+  int old_value;
+  bool exchanged;
+};
+
+shared int arg_0;
+void atomicCompareExchangeWeak_e88938() {
+  int arg_1 = 1;
+  int arg_2 = 1;
+  int v = arg_1;
+  int v_1 = atomicCompSwap(arg_0, v, arg_2);
+  atomic_compare_exchange_result_i32 res = atomic_compare_exchange_result_i32(v_1, (v_1 == v));
+}
+void compute_main_inner(uint tint_local_index) {
+  if ((tint_local_index == 0u)) {
+    atomicExchange(arg_0, 0);
+  }
+  barrier();
+  atomicCompareExchangeWeak_e88938();
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main_inner(gl_LocalInvocationIndex);
+}
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.glsl
index 5cf8186..8bf9118 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec3 tint_symbol;
+} v;
+vec3 bitcast_0fe0c9() {
+  uvec3 arg_0 = uvec3(1u);
+  vec3 res = uintBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_0fe0c9();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec3 tint_symbol;
+} v;
+vec3 bitcast_0fe0c9() {
+  uvec3 arg_0 = uvec3(1u);
+  vec3 res = uintBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_0fe0c9();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec3 prevent_dce;
+};
+
+layout(location = 0) flat out vec3 vertex_main_loc0_Output;
+vec3 bitcast_0fe0c9() {
+  uvec3 arg_0 = uvec3(1u);
+  vec3 res = uintBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec3(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_0fe0c9();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.glsl
index 5cf8186..0ae9c42 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int bitcast_16cba4() {
+  float arg_0 = 1.0f;
+  int res = floatBitsToInt(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_16cba4();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int bitcast_16cba4() {
+  float arg_0 = 1.0f;
+  int res = floatBitsToInt(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_16cba4();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  int prevent_dce;
+};
+
+layout(location = 0) flat out int vertex_main_loc0_Output;
+int bitcast_16cba4() {
+  float arg_0 = 1.0f;
+  int res = floatBitsToInt(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_16cba4();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.glsl
index 5cf8186..c973d7b 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uvec2 bitcast_1c3b31() {
+  ivec2 arg_0 = ivec2(1);
+  uvec2 res = uvec2(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_1c3b31();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uvec2 bitcast_1c3b31() {
+  ivec2 arg_0 = ivec2(1);
+  uvec2 res = uvec2(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_1c3b31();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 bitcast_1c3b31() {
+  ivec2 arg_0 = ivec2(1);
+  uvec2 res = uvec2(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_1c3b31();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.glsl
index 5cf8186..4b7ae26 100644
--- a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  f16vec2 tint_symbol;
+} v;
+f16vec2 bitcast_1df11f() {
+  f16vec2 arg_0 = f16vec2(1.0hf);
+  f16vec2 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_1df11f();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  f16vec2 tint_symbol;
+} v;
+f16vec2 bitcast_1df11f() {
+  f16vec2 arg_0 = f16vec2(1.0hf);
+  f16vec2 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_1df11f();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+
+
+struct VertexOutput {
+  vec4 pos;
+  f16vec2 prevent_dce;
+};
+
+layout(location = 0) flat out f16vec2 vertex_main_loc0_Output;
+f16vec2 bitcast_1df11f() {
+  f16vec2 arg_0 = f16vec2(1.0hf);
+  f16vec2 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), f16vec2(0.0hf));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_1df11f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.glsl
index 5cf8186..301d2cd 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec2 tint_symbol;
+} v;
+vec2 bitcast_2421c8() {
+  uvec2 arg_0 = uvec2(1u);
+  vec2 res = uintBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_2421c8();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec2 tint_symbol;
+} v;
+vec2 bitcast_2421c8() {
+  uvec2 arg_0 = uvec2(1u);
+  vec2 res = uintBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_2421c8();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec2 prevent_dce;
+};
+
+layout(location = 0) flat out vec2 vertex_main_loc0_Output;
+vec2 bitcast_2421c8() {
+  uvec2 arg_0 = uvec2(1u);
+  vec2 res = uintBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec2(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_2421c8();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.glsl
index 5cf8186..0a778e6 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+uvec3 bitcast_287bdf() {
+  ivec3 arg_0 = ivec3(1);
+  uvec3 res = uvec3(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_287bdf();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+uvec3 bitcast_287bdf() {
+  ivec3 arg_0 = ivec3(1);
+  uvec3 res = uvec3(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_287bdf();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 bitcast_287bdf() {
+  ivec3 arg_0 = ivec3(1);
+  uvec3 res = uvec3(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_287bdf();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.glsl
index 5cf8186..876f35f 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec3 tint_symbol;
+} v;
+vec3 bitcast_2b05b3() {
+  vec3 arg_0 = vec3(1.0f);
+  vec3 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_2b05b3();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec3 tint_symbol;
+} v;
+vec3 bitcast_2b05b3() {
+  vec3 arg_0 = vec3(1.0f);
+  vec3 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_2b05b3();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec3 prevent_dce;
+};
+
+layout(location = 0) flat out vec3 vertex_main_loc0_Output;
+vec3 bitcast_2b05b3() {
+  vec3 arg_0 = vec3(1.0f);
+  vec3 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec3(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_2b05b3();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.glsl
index 5cf8186..f7a6f22 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uint bitcast_31c080() {
+  uint arg_0 = 1u;
+  uint res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_31c080();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uint bitcast_31c080() {
+  uint arg_0 = 1u;
+  uint res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_31c080();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint bitcast_31c080() {
+  uint arg_0 = 1u;
+  uint res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_31c080();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.glsl
index 5cf8186..78428a2 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec3 tint_symbol;
+} v;
+vec3 bitcast_332f78() {
+  ivec3 arg_0 = ivec3(1);
+  vec3 res = intBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_332f78();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec3 tint_symbol;
+} v;
+vec3 bitcast_332f78() {
+  ivec3 arg_0 = ivec3(1);
+  vec3 res = intBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_332f78();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec3 prevent_dce;
+};
+
+layout(location = 0) flat out vec3 vertex_main_loc0_Output;
+vec3 bitcast_332f78() {
+  ivec3 arg_0 = ivec3(1);
+  vec3 res = intBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec3(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_332f78();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.glsl
index 5cf8186..d6376c7 100644
--- a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  f16vec4 tint_symbol;
+} v;
+f16vec4 bitcast_3e7b47() {
+  f16vec4 arg_0 = f16vec4(1.0hf);
+  f16vec4 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_3e7b47();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  f16vec4 tint_symbol;
+} v;
+f16vec4 bitcast_3e7b47() {
+  f16vec4 arg_0 = f16vec4(1.0hf);
+  f16vec4 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_3e7b47();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+
+
+struct VertexOutput {
+  vec4 pos;
+  f16vec4 prevent_dce;
+};
+
+layout(location = 0) flat out f16vec4 vertex_main_loc0_Output;
+f16vec4 bitcast_3e7b47() {
+  f16vec4 arg_0 = f16vec4(1.0hf);
+  f16vec4 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), f16vec4(0.0hf));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_3e7b47();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.glsl
index 5cf8186..d631ae0 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 bitcast_3f7437() {
+  ivec4 arg_0 = ivec4(1);
+  ivec4 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_3f7437();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 bitcast_3f7437() {
+  ivec4 arg_0 = ivec4(1);
+  ivec4 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_3f7437();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+layout(location = 0) flat out ivec4 vertex_main_loc0_Output;
+ivec4 bitcast_3f7437() {
+  ivec4 arg_0 = ivec4(1);
+  ivec4 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec4(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_3f7437();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.glsl
index 5cf8186..5472efa 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec4 tint_symbol;
+} v;
+vec4 bitcast_3fdacd() {
+  ivec4 arg_0 = ivec4(1);
+  vec4 res = intBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_3fdacd();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec4 tint_symbol;
+} v;
+vec4 bitcast_3fdacd() {
+  ivec4 arg_0 = ivec4(1);
+  vec4 res = intBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_3fdacd();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+layout(location = 0) flat out vec4 vertex_main_loc0_Output;
+vec4 bitcast_3fdacd() {
+  ivec4 arg_0 = ivec4(1);
+  vec4 res = intBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec4(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_3fdacd();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.glsl
index 5cf8186..b82e8ca 100644
--- a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float16_t tint_symbol;
+} v;
+float16_t bitcast_436211() {
+  float16_t arg_0 = 1.0hf;
+  float16_t res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_436211();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float16_t tint_symbol;
+} v;
+float16_t bitcast_436211() {
+  float16_t arg_0 = 1.0hf;
+  float16_t res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_436211();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+
+
+struct VertexOutput {
+  vec4 pos;
+  float16_t prevent_dce;
+};
+
+layout(location = 0) flat out float16_t vertex_main_loc0_Output;
+float16_t bitcast_436211() {
+  float16_t arg_0 = 1.0hf;
+  float16_t res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0.0hf);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_436211();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.glsl
index 5cf8186..7e90a90 100644
--- a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.glsl
@@ -1,11 +1,62 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  f16vec3 tint_symbol;
+} v;
+f16vec3 bitcast_5081ed() {
+  f16vec3 arg_0 = f16vec3(1.0hf);
+  f16vec3 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_5081ed();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  f16vec3 tint_symbol;
+} v;
+f16vec3 bitcast_5081ed() {
+  f16vec3 arg_0 = f16vec3(1.0hf);
+  f16vec3 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_5081ed();
+}
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
+
+
+struct VertexOutput {
+  vec4 pos;
+  f16vec3 prevent_dce;
+};
+
+layout(location = 0) flat out f16vec3 vertex_main_loc0_Output;
+f16vec3 bitcast_5081ed() {
+  f16vec3 arg_0 = f16vec3(1.0hf);
+  f16vec3 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), f16vec3(0.0hf));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_5081ed();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.glsl
index 5cf8186..c12c963 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 bitcast_6de2bd() {
+  vec4 arg_0 = vec4(1.0f);
+  ivec4 res = floatBitsToInt(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_6de2bd();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 bitcast_6de2bd() {
+  vec4 arg_0 = vec4(1.0f);
+  ivec4 res = floatBitsToInt(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_6de2bd();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+layout(location = 0) flat out ivec4 vertex_main_loc0_Output;
+ivec4 bitcast_6de2bd() {
+  vec4 arg_0 = vec4(1.0f);
+  ivec4 res = floatBitsToInt(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec4(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_6de2bd();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.glsl
index 5cf8186..7d5055c 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec4 tint_symbol;
+} v;
+vec4 bitcast_745b27() {
+  vec4 arg_0 = vec4(1.0f);
+  vec4 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_745b27();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec4 tint_symbol;
+} v;
+vec4 bitcast_745b27() {
+  vec4 arg_0 = vec4(1.0f);
+  vec4 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_745b27();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+layout(location = 0) flat out vec4 vertex_main_loc0_Output;
+vec4 bitcast_745b27() {
+  vec4 arg_0 = vec4(1.0f);
+  vec4 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec4(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_745b27();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.glsl
index 5cf8186..2c3017e 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int bitcast_7e67cc() {
+  int arg_0 = 1;
+  int res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_7e67cc();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int bitcast_7e67cc() {
+  int arg_0 = 1;
+  int res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_7e67cc();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  int prevent_dce;
+};
+
+layout(location = 0) flat out int vertex_main_loc0_Output;
+int bitcast_7e67cc() {
+  int arg_0 = 1;
+  int res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_7e67cc();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.glsl
index 5cf8186..8a571e2 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec4 tint_symbol;
+} v;
+uvec4 bitcast_7ffa9c() {
+  uvec4 arg_0 = uvec4(1u);
+  uvec4 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_7ffa9c();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec4 tint_symbol;
+} v;
+uvec4 bitcast_7ffa9c() {
+  uvec4 arg_0 = uvec4(1u);
+  uvec4 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_7ffa9c();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+layout(location = 0) flat out uvec4 vertex_main_loc0_Output;
+uvec4 bitcast_7ffa9c() {
+  uvec4 arg_0 = uvec4(1u);
+  uvec4 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec4(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_7ffa9c();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.glsl
index 5cf8186..5002dcc 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+uvec3 bitcast_8318a8() {
+  uvec3 arg_0 = uvec3(1u);
+  uvec3 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_8318a8();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec3 tint_symbol;
+} v;
+uvec3 bitcast_8318a8() {
+  uvec3 arg_0 = uvec3(1u);
+  uvec3 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_8318a8();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec3 prevent_dce;
+};
+
+layout(location = 0) flat out uvec3 vertex_main_loc0_Output;
+uvec3 bitcast_8318a8() {
+  uvec3 arg_0 = uvec3(1u);
+  uvec3 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec3(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_8318a8();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.glsl
index 5cf8186..823515e 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec2 tint_symbol;
+} v;
+ivec2 bitcast_899e50() {
+  vec2 arg_0 = vec2(1.0f);
+  ivec2 res = floatBitsToInt(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_899e50();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec2 tint_symbol;
+} v;
+ivec2 bitcast_899e50() {
+  vec2 arg_0 = vec2(1.0f);
+  ivec2 res = floatBitsToInt(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_899e50();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec2 prevent_dce;
+};
+
+layout(location = 0) flat out ivec2 vertex_main_loc0_Output;
+ivec2 bitcast_899e50() {
+  vec2 arg_0 = vec2(1.0f);
+  ivec2 res = floatBitsToInt(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec2(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_899e50();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.glsl
index 5cf8186..82739b1 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec2 tint_symbol;
+} v;
+vec2 bitcast_9bcf71() {
+  vec2 arg_0 = vec2(1.0f);
+  vec2 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_9bcf71();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec2 tint_symbol;
+} v;
+vec2 bitcast_9bcf71() {
+  vec2 arg_0 = vec2(1.0f);
+  vec2 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_9bcf71();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec2 prevent_dce;
+};
+
+layout(location = 0) flat out vec2 vertex_main_loc0_Output;
+vec2 bitcast_9bcf71() {
+  vec2 arg_0 = vec2(1.0f);
+  vec2 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec2(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_9bcf71();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.glsl
index 5cf8186..6d6745b 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec3 tint_symbol;
+} v;
+ivec3 bitcast_9eee21() {
+  ivec3 arg_0 = ivec3(1);
+  ivec3 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_9eee21();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec3 tint_symbol;
+} v;
+ivec3 bitcast_9eee21() {
+  ivec3 arg_0 = ivec3(1);
+  ivec3 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_9eee21();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec3 prevent_dce;
+};
+
+layout(location = 0) flat out ivec3 vertex_main_loc0_Output;
+ivec3 bitcast_9eee21() {
+  ivec3 arg_0 = ivec3(1);
+  ivec3 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec3(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_9eee21();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.glsl
index 5cf8186..59d11aa 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec4 tint_symbol;
+} v;
+vec4 bitcast_a4b290() {
+  uvec4 arg_0 = uvec4(1u);
+  vec4 res = uintBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_a4b290();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec4 tint_symbol;
+} v;
+vec4 bitcast_a4b290() {
+  uvec4 arg_0 = uvec4(1u);
+  vec4 res = uintBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_a4b290();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec4 prevent_dce;
+};
+
+layout(location = 0) flat out vec4 vertex_main_loc0_Output;
+vec4 bitcast_a4b290() {
+  uvec4 arg_0 = uvec4(1u);
+  vec4 res = uintBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec4(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_a4b290();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.glsl
index 5cf8186..76e3775 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 bitcast_a5c539() {
+  uvec4 arg_0 = uvec4(1u);
+  ivec4 res = ivec4(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_a5c539();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 bitcast_a5c539() {
+  uvec4 arg_0 = uvec4(1u);
+  ivec4 res = ivec4(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_a5c539();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+layout(location = 0) flat out ivec4 vertex_main_loc0_Output;
+ivec4 bitcast_a5c539() {
+  uvec4 arg_0 = uvec4(1u);
+  ivec4 res = ivec4(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec4(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_a5c539();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.glsl
index 5cf8186..4c5d8b9 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec4 tint_symbol;
+} v;
+uvec4 bitcast_a8c93f() {
+  ivec4 arg_0 = ivec4(1);
+  uvec4 res = uvec4(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_a8c93f();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec4 tint_symbol;
+} v;
+uvec4 bitcast_a8c93f() {
+  ivec4 arg_0 = ivec4(1);
+  uvec4 res = uvec4(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_a8c93f();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec4 prevent_dce;
+};
+
+layout(location = 0) flat out uvec4 vertex_main_loc0_Output;
+uvec4 bitcast_a8c93f() {
+  ivec4 arg_0 = ivec4(1);
+  uvec4 res = uvec4(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec4(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_a8c93f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.glsl
index 5cf8186..79fdfe6 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec3 tint_symbol;
+} v;
+ivec3 bitcast_a8ea1b() {
+  uvec3 arg_0 = uvec3(1u);
+  ivec3 res = ivec3(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_a8ea1b();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec3 tint_symbol;
+} v;
+ivec3 bitcast_a8ea1b() {
+  uvec3 arg_0 = uvec3(1u);
+  ivec3 res = ivec3(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_a8ea1b();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec3 prevent_dce;
+};
+
+layout(location = 0) flat out ivec3 vertex_main_loc0_Output;
+ivec3 bitcast_a8ea1b() {
+  uvec3 arg_0 = uvec3(1u);
+  ivec3 res = ivec3(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec3(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_a8ea1b();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.glsl
index 5cf8186..64a472d 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float tint_symbol;
+} v;
+float bitcast_ac09d0() {
+  float arg_0 = 1.0f;
+  float res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_ac09d0();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float tint_symbol;
+} v;
+float bitcast_ac09d0() {
+  float arg_0 = 1.0f;
+  float res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_ac09d0();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
+layout(location = 0) flat out float vertex_main_loc0_Output;
+float bitcast_ac09d0() {
+  float arg_0 = 1.0f;
+  float res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0.0f);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_ac09d0();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.glsl
index 5cf8186..dfb152b 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float tint_symbol;
+} v;
+float bitcast_ad4b05() {
+  uint arg_0 = 1u;
+  float res = uintBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_ad4b05();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float tint_symbol;
+} v;
+float bitcast_ad4b05() {
+  uint arg_0 = 1u;
+  float res = uintBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_ad4b05();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
+layout(location = 0) flat out float vertex_main_loc0_Output;
+float bitcast_ad4b05() {
+  uint arg_0 = 1u;
+  float res = uintBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0.0f);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_ad4b05();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.glsl
index 5cf8186..c764a75 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec3 tint_symbol;
+} v;
+ivec3 bitcast_b28cbd() {
+  vec3 arg_0 = vec3(1.0f);
+  ivec3 res = floatBitsToInt(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_b28cbd();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec3 tint_symbol;
+} v;
+ivec3 bitcast_b28cbd() {
+  vec3 arg_0 = vec3(1.0f);
+  ivec3 res = floatBitsToInt(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_b28cbd();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec3 prevent_dce;
+};
+
+layout(location = 0) flat out ivec3 vertex_main_loc0_Output;
+ivec3 bitcast_b28cbd() {
+  vec3 arg_0 = vec3(1.0f);
+  ivec3 res = floatBitsToInt(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec3(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_b28cbd();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.glsl
index 5cf8186..300860f 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec2 tint_symbol;
+} v;
+vec2 bitcast_b77573() {
+  ivec2 arg_0 = ivec2(1);
+  vec2 res = intBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_b77573();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  vec2 tint_symbol;
+} v;
+vec2 bitcast_b77573() {
+  ivec2 arg_0 = ivec2(1);
+  vec2 res = intBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_b77573();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  vec2 prevent_dce;
+};
+
+layout(location = 0) flat out vec2 vertex_main_loc0_Output;
+vec2 bitcast_b77573() {
+  ivec2 arg_0 = ivec2(1);
+  vec2 res = intBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), vec2(0.0f));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_b77573();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.glsl
index 5cf8186..7331424 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec2 tint_symbol;
+} v;
+ivec2 bitcast_c69aaf() {
+  uvec2 arg_0 = uvec2(1u);
+  ivec2 res = ivec2(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_c69aaf();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec2 tint_symbol;
+} v;
+ivec2 bitcast_c69aaf() {
+  uvec2 arg_0 = uvec2(1u);
+  ivec2 res = ivec2(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_c69aaf();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec2 prevent_dce;
+};
+
+layout(location = 0) flat out ivec2 vertex_main_loc0_Output;
+ivec2 bitcast_c69aaf() {
+  uvec2 arg_0 = uvec2(1u);
+  ivec2 res = ivec2(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec2(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_c69aaf();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.glsl
index 5cf8186..b87f54a 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float tint_symbol;
+} v;
+float bitcast_ca5c3f() {
+  int arg_0 = 1;
+  float res = intBitsToFloat(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_ca5c3f();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  float tint_symbol;
+} v;
+float bitcast_ca5c3f() {
+  int arg_0 = 1;
+  float res = intBitsToFloat(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_ca5c3f();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  float prevent_dce;
+};
+
+layout(location = 0) flat out float vertex_main_loc0_Output;
+float bitcast_ca5c3f() {
+  int arg_0 = 1;
+  float res = intBitsToFloat(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0.0f);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_ca5c3f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.glsl
index 5cf8186..a1f3464 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec2 tint_symbol;
+} v;
+ivec2 bitcast_cc7aa7() {
+  ivec2 arg_0 = ivec2(1);
+  ivec2 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_cc7aa7();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec2 tint_symbol;
+} v;
+ivec2 bitcast_cc7aa7() {
+  ivec2 arg_0 = ivec2(1);
+  ivec2 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_cc7aa7();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec2 prevent_dce;
+};
+
+layout(location = 0) flat out ivec2 vertex_main_loc0_Output;
+ivec2 bitcast_cc7aa7() {
+  ivec2 arg_0 = ivec2(1);
+  ivec2 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec2(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_cc7aa7();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.glsl
index 5cf8186..9ee16aa 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uvec2 bitcast_d29765() {
+  uvec2 arg_0 = uvec2(1u);
+  uvec2 res = arg_0;
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_d29765();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uvec2 tint_symbol;
+} v;
+uvec2 bitcast_d29765() {
+  uvec2 arg_0 = uvec2(1u);
+  uvec2 res = arg_0;
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_d29765();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uvec2 prevent_dce;
+};
+
+layout(location = 0) flat out uvec2 vertex_main_loc0_Output;
+uvec2 bitcast_d29765() {
+  uvec2 arg_0 = uvec2(1u);
+  uvec2 res = arg_0;
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), uvec2(0u));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_d29765();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.glsl
index 5cf8186..e56e4c2 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uint bitcast_dce842() {
+  int arg_0 = 1;
+  uint res = uint(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_dce842();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uint bitcast_dce842() {
+  int arg_0 = 1;
+  uint res = uint(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_dce842();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint bitcast_dce842() {
+  int arg_0 = 1;
+  uint res = uint(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_dce842();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.glsl
index 5cf8186..ecf99bd 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int bitcast_e61c57() {
+  uint arg_0 = 1u;
+  int res = int(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_e61c57();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int bitcast_e61c57() {
+  uint arg_0 = 1u;
+  int res = int(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_e61c57();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  int prevent_dce;
+};
+
+layout(location = 0) flat out int vertex_main_loc0_Output;
+int bitcast_e61c57() {
+  uint arg_0 = 1u;
+  int res = int(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_e61c57();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.glsl
index 5cf8186..4a6ae9d 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.glsl
@@ -1,11 +1,59 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uint bitcast_e6c18f() {
+  float arg_0 = 1.0f;
+  uint res = floatBitsToUint(arg_0);
+  return res;
+}
+void main() {
+  v.tint_symbol = bitcast_e6c18f();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  uint tint_symbol;
+} v;
+uint bitcast_e6c18f() {
+  float arg_0 = 1.0f;
+  uint res = floatBitsToUint(arg_0);
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = bitcast_e6c18f();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  uint prevent_dce;
+};
+
+layout(location = 0) flat out uint vertex_main_loc0_Output;
+uint bitcast_e6c18f() {
+  float arg_0 = 1.0f;
+  uint res = floatBitsToUint(arg_0);
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0u);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = bitcast_e6c18f();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v = vertex_main_inner();
+  gl_Position = v.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.glsl
index 5cf8186..475e9ea 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.glsl
@@ -1,11 +1,80 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int countLeadingZeros_6d4656() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = (((v_1 <= 65535u)) ? (16u) : (0u));
+  uint v_3 = ((((v_1 << v_2) <= 16777215u)) ? (8u) : (0u));
+  uint v_4 = (((((v_1 << v_2) << v_3) <= 268435455u)) ? (4u) : (0u));
+  uint v_5 = ((((((v_1 << v_2) << v_3) << v_4) <= 1073741823u)) ? (2u) : (0u));
+  uint v_6 = (((((((v_1 << v_2) << v_3) << v_4) << v_5) <= 2147483647u)) ? (1u) : (0u));
+  uint v_7 = (((((((v_1 << v_2) << v_3) << v_4) << v_5) == 0u)) ? (1u) : (0u));
+  int res = int(((v_2 | (v_3 | (v_4 | (v_5 | (v_6 | v_7))))) + v_7));
+  return res;
+}
+void main() {
+  v.tint_symbol = countLeadingZeros_6d4656();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int countLeadingZeros_6d4656() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = (((v_1 <= 65535u)) ? (16u) : (0u));
+  uint v_3 = ((((v_1 << v_2) <= 16777215u)) ? (8u) : (0u));
+  uint v_4 = (((((v_1 << v_2) << v_3) <= 268435455u)) ? (4u) : (0u));
+  uint v_5 = ((((((v_1 << v_2) << v_3) << v_4) <= 1073741823u)) ? (2u) : (0u));
+  uint v_6 = (((((((v_1 << v_2) << v_3) << v_4) << v_5) <= 2147483647u)) ? (1u) : (0u));
+  uint v_7 = (((((((v_1 << v_2) << v_3) << v_4) << v_5) == 0u)) ? (1u) : (0u));
+  int res = int(((v_2 | (v_3 | (v_4 | (v_5 | (v_6 | v_7))))) + v_7));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = countLeadingZeros_6d4656();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  int prevent_dce;
+};
+
+layout(location = 0) flat out int vertex_main_loc0_Output;
+int countLeadingZeros_6d4656() {
+  int arg_0 = 1;
+  uint v = uint(arg_0);
+  uint v_1 = (((v <= 65535u)) ? (16u) : (0u));
+  uint v_2 = ((((v << v_1) <= 16777215u)) ? (8u) : (0u));
+  uint v_3 = (((((v << v_1) << v_2) <= 268435455u)) ? (4u) : (0u));
+  uint v_4 = ((((((v << v_1) << v_2) << v_3) <= 1073741823u)) ? (2u) : (0u));
+  uint v_5 = (((((((v << v_1) << v_2) << v_3) << v_4) <= 2147483647u)) ? (1u) : (0u));
+  uint v_6 = (((((((v << v_1) << v_2) << v_3) << v_4) == 0u)) ? (1u) : (0u));
+  int res = int(((v_1 | (v_2 | (v_3 | (v_4 | (v_5 | v_6))))) + v_6));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = countLeadingZeros_6d4656();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v_7 = vertex_main_inner();
+  gl_Position = v_7.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v_7.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.glsl
index 5cf8186..e228f3a 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.glsl
@@ -1,11 +1,77 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int countTrailingZeros_42fed6() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = ((((v_1 & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_3 = (((((v_1 >> v_2) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_4 = ((((((v_1 >> v_2) >> v_3) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & 3u) == 0u)) ? (2u) : (0u));
+  uint v_6 = ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & 1u) == 0u)) ? (1u) : (0u));
+  int res = int(((v_2 | (v_3 | (v_4 | (v_5 | v_6)))) + (((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == 0u)) ? (1u) : (0u))));
+  return res;
+}
+void main() {
+  v.tint_symbol = countTrailingZeros_42fed6();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int countTrailingZeros_42fed6() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = ((((v_1 & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_3 = (((((v_1 >> v_2) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_4 = ((((((v_1 >> v_2) >> v_3) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & 3u) == 0u)) ? (2u) : (0u));
+  uint v_6 = ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & 1u) == 0u)) ? (1u) : (0u));
+  int res = int(((v_2 | (v_3 | (v_4 | (v_5 | v_6)))) + (((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == 0u)) ? (1u) : (0u))));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = countTrailingZeros_42fed6();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  int prevent_dce;
+};
+
+layout(location = 0) flat out int vertex_main_loc0_Output;
+int countTrailingZeros_42fed6() {
+  int arg_0 = 1;
+  uint v = uint(arg_0);
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  uint v_5 = ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u));
+  int res = int(((v_1 | (v_2 | (v_3 | (v_4 | v_5)))) + (((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (1u) : (0u))));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = countTrailingZeros_42fed6();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v_6 = vertex_main_inner();
+  gl_Position = v_6.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v_6.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.glsl
index 5cf8186..2a5a733 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.glsl
@@ -1,11 +1,77 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int firstLeadingBit_57a1a3() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = (((v_1 < 2147483648u)) ? (v_1) : (~(v_1)));
+  uint v_3 = ((((v_2 & 4294901760u) == 0u)) ? (0u) : (16u));
+  uint v_4 = (((((v_2 >> v_3) & 65280u) == 0u)) ? (0u) : (8u));
+  uint v_5 = ((((((v_2 >> v_3) >> v_4) & 240u) == 0u)) ? (0u) : (4u));
+  uint v_6 = (((((((v_2 >> v_3) >> v_4) >> v_5) & 12u) == 0u)) ? (0u) : (2u));
+  int res = int((((((((v_2 >> v_3) >> v_4) >> v_5) >> v_6) == 0u)) ? (4294967295u) : ((v_3 | (v_4 | (v_5 | (v_6 | ((((((((v_2 >> v_3) >> v_4) >> v_5) >> v_6) & 2u) == 0u)) ? (0u) : (1u)))))))));
+  return res;
+}
+void main() {
+  v.tint_symbol = firstLeadingBit_57a1a3();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int firstLeadingBit_57a1a3() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = (((v_1 < 2147483648u)) ? (v_1) : (~(v_1)));
+  uint v_3 = ((((v_2 & 4294901760u) == 0u)) ? (0u) : (16u));
+  uint v_4 = (((((v_2 >> v_3) & 65280u) == 0u)) ? (0u) : (8u));
+  uint v_5 = ((((((v_2 >> v_3) >> v_4) & 240u) == 0u)) ? (0u) : (4u));
+  uint v_6 = (((((((v_2 >> v_3) >> v_4) >> v_5) & 12u) == 0u)) ? (0u) : (2u));
+  int res = int((((((((v_2 >> v_3) >> v_4) >> v_5) >> v_6) == 0u)) ? (4294967295u) : ((v_3 | (v_4 | (v_5 | (v_6 | ((((((((v_2 >> v_3) >> v_4) >> v_5) >> v_6) & 2u) == 0u)) ? (0u) : (1u)))))))));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = firstLeadingBit_57a1a3();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  int prevent_dce;
+};
+
+layout(location = 0) flat out int vertex_main_loc0_Output;
+int firstLeadingBit_57a1a3() {
+  int arg_0 = 1;
+  uint v = uint(arg_0);
+  uint v_1 = (((v < 2147483648u)) ? (v) : (~(v)));
+  uint v_2 = ((((v_1 & 4294901760u) == 0u)) ? (0u) : (16u));
+  uint v_3 = (((((v_1 >> v_2) & 65280u) == 0u)) ? (0u) : (8u));
+  uint v_4 = ((((((v_1 >> v_2) >> v_3) & 240u) == 0u)) ? (0u) : (4u));
+  uint v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & 12u) == 0u)) ? (0u) : (2u));
+  int res = int((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == 0u)) ? (4294967295u) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & 2u) == 0u)) ? (0u) : (1u)))))))));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = firstLeadingBit_57a1a3();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v_6 = vertex_main_inner();
+  gl_Position = v_6.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v_6.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.glsl
index 5cf8186..231d07f 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.glsl
@@ -1,11 +1,74 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int firstTrailingBit_3a2acc() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = ((((v_1 & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_3 = (((((v_1 >> v_2) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_4 = ((((((v_1 >> v_2) >> v_3) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & 3u) == 0u)) ? (2u) : (0u));
+  int res = int((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == 0u)) ? (4294967295u) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & 1u) == 0u)) ? (1u) : (0u)))))))));
+  return res;
+}
+void main() {
+  v.tint_symbol = firstTrailingBit_3a2acc();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  int tint_symbol;
+} v;
+int firstTrailingBit_3a2acc() {
+  int arg_0 = 1;
+  uint v_1 = uint(arg_0);
+  uint v_2 = ((((v_1 & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_3 = (((((v_1 >> v_2) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_4 = ((((((v_1 >> v_2) >> v_3) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_5 = (((((((v_1 >> v_2) >> v_3) >> v_4) & 3u) == 0u)) ? (2u) : (0u));
+  int res = int((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) == 0u)) ? (4294967295u) : ((v_2 | (v_3 | (v_4 | (v_5 | ((((((((v_1 >> v_2) >> v_3) >> v_4) >> v_5) & 1u) == 0u)) ? (1u) : (0u)))))))));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = firstTrailingBit_3a2acc();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  int prevent_dce;
+};
+
+layout(location = 0) flat out int vertex_main_loc0_Output;
+int firstTrailingBit_3a2acc() {
+  int arg_0 = 1;
+  uint v = uint(arg_0);
+  uint v_1 = ((((v & 65535u) == 0u)) ? (16u) : (0u));
+  uint v_2 = (((((v >> v_1) & 255u) == 0u)) ? (8u) : (0u));
+  uint v_3 = ((((((v >> v_1) >> v_2) & 15u) == 0u)) ? (4u) : (0u));
+  uint v_4 = (((((((v >> v_1) >> v_2) >> v_3) & 3u) == 0u)) ? (2u) : (0u));
+  int res = int((((((((v >> v_1) >> v_2) >> v_3) >> v_4) == 0u)) ? (4294967295u) : ((v_1 | (v_2 | (v_3 | (v_4 | ((((((((v >> v_1) >> v_2) >> v_3) >> v_4) & 1u) == 0u)) ? (1u) : (0u)))))))));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), 0);
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = firstTrailingBit_3a2acc();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v_5 = vertex_main_inner();
+  gl_Position = v_5.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v_5.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.glsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.glsl
index 5cf8186..3898bef 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.glsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.glsl
@@ -1,11 +1,68 @@
-SKIP: FAILED
+#version 310 es
+precision highp float;
+precision highp int;
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 unpack4xI8_830900() {
+  uint arg_0 = 1u;
+  uint v_1 = arg_0;
+  uvec4 v_2 = uvec4(24u, 16u, 8u, 0u);
+  ivec4 v_3 = ivec4((uvec4(v_1) << v_2));
+  ivec4 res = (v_3 >> uvec4(24u));
+  return res;
+}
+void main() {
+  v.tint_symbol = unpack4xI8_830900();
+}
+#version 310 es
 
-tint executable returned error: signal: trace/BPT trap
+layout(binding = 0, std430)
+buffer tint_symbol_1_1_ssbo {
+  ivec4 tint_symbol;
+} v;
+ivec4 unpack4xI8_830900() {
+  uint arg_0 = 1u;
+  uint v_1 = arg_0;
+  uvec4 v_2 = uvec4(24u, 16u, 8u, 0u);
+  ivec4 v_3 = ivec4((uvec4(v_1) << v_2));
+  ivec4 res = (v_3 >> uvec4(24u));
+  return res;
+}
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  v.tint_symbol = unpack4xI8_830900();
+}
+#version 310 es
+
+
+struct VertexOutput {
+  vec4 pos;
+  ivec4 prevent_dce;
+};
+
+layout(location = 0) flat out ivec4 vertex_main_loc0_Output;
+ivec4 unpack4xI8_830900() {
+  uint arg_0 = 1u;
+  uint v = arg_0;
+  uvec4 v_1 = uvec4(24u, 16u, 8u, 0u);
+  ivec4 v_2 = ivec4((uvec4(v) << v_1));
+  ivec4 res = (v_2 >> uvec4(24u));
+  return res;
+}
+VertexOutput vertex_main_inner() {
+  VertexOutput tint_symbol = VertexOutput(vec4(0.0f), ivec4(0));
+  tint_symbol.pos = vec4(0.0f);
+  tint_symbol.prevent_dce = unpack4xI8_830900();
+  return tint_symbol;
+}
+void main() {
+  VertexOutput v_3 = vertex_main_inner();
+  gl_Position = v_3.pos;
+  gl_Position[1u] = -(gl_Position.y);
+  gl_Position[2u] = ((2.0f * gl_Position.z) - gl_Position.w);
+  vertex_main_loc0_Output = v_3.prevent_dce;
+  gl_PointSize = 1.0f;
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.glsl
index 5cf8186..8ae20e9 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  vec4 a = vec4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  vec4 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.glsl
index 5cf8186..45e8cdc 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  vec4 a = vec4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+  ivec4 b = floatBitsToInt(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.glsl
index 5cf8186..ec34d2b 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec4 a = ivec4(1073757184, -1006616064, -998242304, 987654321);
+  vec4 b = intBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.glsl
index 5cf8186..e95f665 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec4 a = ivec4(1073757184, -1006616064, -998242304, 987654321);
+  ivec4 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.glsl
index 5cf8186..163c75e 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec4 a = ivec4(1073757184, -1006616064, -998242304, 987654321);
+  uvec4 b = uvec4(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.glsl
index 5cf8186..6020e76 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec4 a = uvec4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  vec4 b = uintBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.glsl
index 5cf8186..38d0a6e 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec4 a = uvec4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  ivec4 b = ivec4(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.glsl
index 5cf8186..a2aaf55 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec4 a = uvec4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+  uvec4 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.glsl
index 5cf8186..150880e 100644
--- a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  float16_t a = 1.0hf;
+  float16_t b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.glsl
index 5cf8186..e16bb3f 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  float a = 2.003662109375f;
+  float b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.glsl
index 5cf8186..54d45f4 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  float a = 2.003662109375f;
+  int b = floatBitsToInt(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.glsl
index 5cf8186..8c29486 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  float a = 2.003662109375f;
+  uint b = floatBitsToUint(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.glsl
index 5cf8186..6857024 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  int a = 1073757184;
+  float b = intBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.glsl
index 5cf8186..c7e4391 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  int a = 1073757184;
+  int b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.glsl
index 5cf8186..33776d7 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  int a = 1073757184;
+  uint b = uint(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.glsl
index 5cf8186..76b73b5 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uint a = 1073757184u;
+  float b = uintBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.glsl
index 5cf8186..601fab0 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uint a = 1073757184u;
+  int b = int(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.glsl
index 5cf8186..b25dbe9 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uint a = 1073757184u;
+  uint b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.glsl
index 5cf8186..f1b808a 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  f16vec2 a = f16vec2(1.0hf, 2.0hf);
+  f16vec2 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.glsl
index 5cf8186..7b6b9eb 100644
--- a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  f16vec3 a = f16vec3(1.0hf, 2.0hf, 3.0hf);
+  f16vec3 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.glsl
index 5cf8186..f548dc9 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  vec2 a = vec2(2.003662109375f, -513.03125f);
+  vec2 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.glsl
index 5cf8186..b551b6c 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  vec2 a = vec2(2.003662109375f, -513.03125f);
+  ivec2 b = floatBitsToInt(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.glsl
index 5cf8186..dedd70f 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec2 a = ivec2(1073757184, -1006616064);
+  vec2 b = intBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.glsl
index 5cf8186..3535e25 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec2 a = ivec2(1073757184, -1006616064);
+  ivec2 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.glsl
index 5cf8186..5fa72b5 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec2 a = ivec2(1073757184, -1006616064);
+  uvec2 b = uvec2(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.glsl
index 5cf8186..53ba8a3 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec2 a = uvec2(1073757184u, 3288351232u);
+  vec2 b = uintBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.glsl
index 5cf8186..a90a806 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec2 a = uvec2(1073757184u, 3288351232u);
+  ivec2 b = ivec2(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.glsl
index 5cf8186..3a29d40 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec2 a = uvec2(1073757184u, 3288351232u);
+  uvec2 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.glsl
index 5cf8186..bc5ee90 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.glsl
@@ -1,11 +1,8 @@
-SKIP: FAILED
+#version 310 es
+#extension GL_AMD_gpu_shader_half_float: require
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  f16vec4 a = f16vec4(1.0hf, 2.0hf, 3.0hf, -4.0hf);
+  f16vec4 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.glsl
index 5cf8186..a6c0e0e 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  vec3 a = vec3(2.003662109375f, -513.03125f, -1024.25f);
+  vec3 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.glsl
index 5cf8186..ac44e14 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  vec3 a = vec3(2.003662109375f, -513.03125f, -1024.25f);
+  ivec3 b = floatBitsToInt(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.glsl
index 5cf8186..70e4ff9 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec3 a = ivec3(1073757184, -1006616064, -998242304);
+  vec3 b = intBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.glsl
index 5cf8186..ef9ecb77 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec3 a = ivec3(1073757184, -1006616064, -998242304);
+  ivec3 b = a;
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.glsl
index 5cf8186..906a023 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  ivec3 a = ivec3(1073757184, -1006616064, -998242304);
+  uvec3 b = uvec3(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.glsl
index 5cf8186..f27c8f4 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec3 a = uvec3(1073757184u, 3288351232u, 3296724992u);
+  vec3 b = uintBitsToFloat(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.glsl
index 5cf8186..418fcf0 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec3 a = uvec3(1073757184u, 3288351232u, 3296724992u);
+  ivec3 b = ivec3(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.glsl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.glsl
index 5cf8186..52f79b1 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.glsl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.glsl
@@ -1,11 +1,7 @@
-SKIP: FAILED
+#version 310 es
 
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  uvec3 a = uvec3(1073757184u, 3288351232u, 3296724992u);
+  uvec3 b = a;
+}
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.glsl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.glsl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.glsl
deleted file mode 100644
index 5cf8186..0000000
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/glsl/writer/printer/printer.cc:1106 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap