[ir][msl] Emit bitcast
Add support for the `bitcast` instruction into the MSL printer.
Bug: tint:1967
Change-Id: Ifec5364d045547dbd4295c751767a985e00d8184
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/162221
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/lang/msl/writer/printer/printer.cc b/src/tint/lang/msl/writer/printer/printer.cc
index 105f090..ea4669c 100644
--- a/src/tint/lang/msl/writer/printer/printer.cc
+++ b/src/tint/lang/msl/writer/printer/printer.cc
@@ -35,6 +35,7 @@
#include "src/tint/lang/core/constant/splat.h"
#include "src/tint/lang/core/fluent_types.h"
#include "src/tint/lang/core/ir/binary.h"
+#include "src/tint/lang/core/ir/bitcast.h"
#include "src/tint/lang/core/ir/constant.h"
#include "src/tint/lang/core/ir/construct.h"
#include "src/tint/lang/core/ir/discard.h"
@@ -253,6 +254,7 @@
[&](core::ir::Var* v) { EmitVar(v); }, //
[&](core::ir::Discard*) { EmitDiscard(); }, //
+ [&](core::ir::Bitcast*) { MaybeEmitInstruction(inst); }, //
[&](core::ir::Binary*) { MaybeEmitInstruction(inst); }, //
[&](core::ir::Let* l) { EmitLet(l); }, //
[&](core::ir::Load*) { MaybeEmitInstruction(inst); }, //
@@ -293,6 +295,7 @@
[&](const core::ir::Load* l) { EmitValue(out, l->From()); }, //
[&](const core::ir::Construct* c) { EmitConstruct(out, c); }, //
[&](const core::ir::Var* var) { EmitVarName(out, var); }, //
+ [&](const core::ir::Bitcast* b) { EmitBitcast(out, b); }, //
TINT_ICE_ON_NO_MATCH);
}, //
TINT_ICE_ON_NO_MATCH);
@@ -479,6 +482,15 @@
/// Emit a discard instruction
void EmitDiscard() { Line() << "discard_fragment();"; }
+ /// Emit a bitcast instruction
+ void EmitBitcast(StringStream& out, const core::ir::Bitcast* b) {
+ out << "as_type<";
+ EmitType(out, b->Result()->Type());
+ out << ">(";
+ EmitValue(out, b->Val());
+ out << ")";
+ }
+
/// Emit a constructor
void EmitConstruct(StringStream& out, const core::ir::Construct* c) {
Switch(
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl
index 9065780..320f7c6 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float4 const b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl
index dac3cc1..890b578 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int4 const b = int4(1073757184, -1006616064, -998242304, 987654321);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl
index 8ec8122..6737cdc 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint4 const b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl
index 9065780..320f7c6 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float4 const b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl
index dac3cc1..890b578 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int4 const b = int4(1073757184, -1006616064, -998242304, 987654321);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl
index 8ec8122..6737cdc 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint4 const b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl
index 9065780..320f7c6 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float4 const b = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl
index dac3cc1..890b578 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int4 const b = int4(1073757184, -1006616064, -998242304, 987654321);
}
diff --git a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl
index 8ec8122..6737cdc 100644
--- a/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint4 const b = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
}
diff --git a/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.msl
index 243c681..ebf33b1 100644
--- a/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/16bit/f16-f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half const b = 1.0h;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.msl
index 6c651f7..d761e2f 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float const b = 2.003662109375f;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.msl
index 39045e6..4a51e61 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int const b = 1073757184;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.msl
index b76edda..5c36117 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint const b = 1073757184u;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.msl
index f061333..5fac461 100644
--- a/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/f32-vec2f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half2 const b = half2(1.0h, 2.0h);
}
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.msl
index 6c651f7..d761e2f 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float const b = 2.003662109375f;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.msl
index 39045e6..4a51e61 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int const b = 1073757184;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.msl
index b76edda..5c36117 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint const b = 1073757184u;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.msl
index f061333..5fac461 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/i32-vec2f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half2 const b = half2(1.0h, 2.0h);
}
diff --git a/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.msl
index 33316aa..8ed8c0e 100644
--- a/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/i32min-u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint const b = 2147483648u;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.msl
index 6c651f7..d761e2f 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float const b = 2.003662109375f;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.msl
index 39045e6..4a51e61 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int const b = 1073757184;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.msl
index b76edda..5c36117 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint const b = 1073757184u;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.msl
index f061333..5fac461 100644
--- a/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/u32-vec2f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half2 const b = half2(1.0h, 2.0h);
}
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.msl
index 6c651f7..d761e2f 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float const b = 2.003662109375f;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.msl
index 39045e6..4a51e61 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int const b = 1073757184;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.msl
index b76edda..5c36117 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint const b = 1073757184u;
}
diff --git a/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl
index f061333..5fac461 100644
--- a/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half2 const b = half2(1.0h, 2.0h);
}
diff --git a/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl
index 438f49c..5743e64 100644
--- a/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half3 const b = half3(1.0h, 2.0h, 3.0h);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl
index 1c1d109..41cbbe7 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float2 const b = float2(2.003662109375f, -513.03125f);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl
index 6b8e61b..4e3e945 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int2 const b = int2(1073757184, -1006616064);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl
index 8b43e6e..0da5b2b 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint2 const b = uint2(1073757184u, 3288351232u);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl
index 86b7889..6b186ff 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half4 const b = half4(1.0h, 2.0h, 3.0h, -4.0h);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl
index 1c1d109..41cbbe7 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float2 const b = float2(2.003662109375f, -513.03125f);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl
index 6b8e61b..4e3e945 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int2 const b = int2(1073757184, -1006616064);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl
index 8b43e6e..0da5b2b 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint2 const b = uint2(1073757184u, 3288351232u);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl
index 86b7889..6b186ff 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half4 const b = half4(1.0h, 2.0h, 3.0h, -4.0h);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl
index 1c1d109..41cbbe7 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float2 const b = float2(2.003662109375f, -513.03125f);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl
index 6b8e61b..4e3e945 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int2 const b = int2(1073757184, -1006616064);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl
index 8b43e6e..0da5b2b 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint2 const b = uint2(1073757184u, 3288351232u);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl
index 86b7889..6b186ff 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half4 const b = half4(1.0h, 2.0h, 3.0h, -4.0h);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl
index 1c1d109..41cbbe7 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float2 const b = float2(2.003662109375f, -513.03125f);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl
index 6b8e61b..4e3e945 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int2 const b = int2(1073757184, -1006616064);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl
index 8b43e6e..0da5b2b 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint2 const b = uint2(1073757184u, 3288351232u);
}
diff --git a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl
index 86b7889..6b186ff 100644
--- a/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
half4 const b = half4(1.0h, 2.0h, 3.0h, -4.0h);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl
index e508f2f..db8fc1c 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float3 const b = float3(2.003662109375f, -513.03125f, -1024.25f);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl
index 4d37f26..bb43fa1 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int3 const b = int3(1073757184, -1006616064, -998242304);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl
index 9d17503..e4d3e04 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint3 const b = uint3(1073757184u, 3288351232u, 3296724992u);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl
index e508f2f..db8fc1c 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float3 const b = float3(2.003662109375f, -513.03125f, -1024.25f);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl
index 4d37f26..bb43fa1 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int3 const b = int3(1073757184, -1006616064, -998242304);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl
index 9d17503..e4d3e04 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint3 const b = uint3(1073757184u, 3288351232u, 3296724992u);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl
index e508f2f..db8fc1c 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
float3 const b = float3(2.003662109375f, -513.03125f, -1024.25f);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl
index 4d37f26..bb43fa1 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
int3 const b = int3(1073757184, -1006616064, -998242304);
}
diff --git a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl
index 9d17503..e4d3e04 100644
--- a/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/const/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl
@@ -1,8 +1,6 @@
-SKIP: FAILED
-
#include <metal_stdlib>
using namespace metal;
-void f() {
+kernel void f() {
uint3 const b = uint3(1073757184u, 3288351232u, 3296724992u);
}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl
index 7e344ef..e797a34 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float4 const a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+ float4 const b = as_type<float4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl
index 7e344ef..0a3157c 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float4 const a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+ int4 const b = as_type<int4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl
index 7e344ef..187de3e 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4f32-vec4u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float4 const a = float4(2.003662109375f, -513.03125f, -1024.25f, 0.00169684563297778368f);
+ uint4 const b = as_type<uint4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl
index 7e344ef..b8c1b43 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int4 const a = int4(1073757184, -1006616064, -998242304, 987654321);
+ float4 const b = as_type<float4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl
index 7e344ef..6a590ce 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int4 const a = int4(1073757184, -1006616064, -998242304, 987654321);
+ int4 const b = as_type<int4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl
index 7e344ef..30bc91c 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4i32-vec4u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int4 const a = int4(1073757184, -1006616064, -998242304, 987654321);
+ uint4 const b = as_type<uint4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl
index 7e344ef..7ebeb84 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint4 const a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+ float4 const b = as_type<float4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl
index 7e344ef..1d1de93 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint4 const a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+ int4 const b = as_type<int4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl
index 7e344ef..333b9a3 100644
--- a/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/128bit/vec4u32-vec4u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint4 const a = uint4(1073757184u, 3288351232u, 3296724992u, 987654321u);
+ uint4 const b = as_type<uint4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.msl
index 7e344ef..66fd8e6 100644
--- a/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/16bit/f16-f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half const a = 1.0h;
+ half const b = as_type<half>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.msl
index 7e344ef..78ebcda 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float const a = 2.003662109375f;
+ float const b = as_type<float>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.msl
index 7e344ef..d926348 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float const a = 2.003662109375f;
+ int const b = as_type<int>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.msl
index 7e344ef..e9a6f9a 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float const a = 2.003662109375f;
+ uint const b = as_type<uint>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.msl
index 7e344ef..26e248f 100644
--- a/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/f32-vec2f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float const a = 2.003662109375f;
+ half2 const b = as_type<half2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.msl
index 7e344ef..f4d62d9 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int const a = 1073757184;
+ float const b = as_type<float>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.msl
index 7e344ef..7e0a9e7 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int const a = 1073757184;
+ int const b = as_type<int>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.msl
index 7e344ef..70de6c7 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int const a = 1073757184;
+ uint const b = as_type<uint>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.msl
index 7e344ef..85159a1 100644
--- a/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/i32-vec2f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int const a = 1073757184;
+ half2 const b = as_type<half2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.msl
index 7e344ef..c61a03f 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint const a = 1073757184u;
+ float const b = as_type<float>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.msl
index 7e344ef..12791d9 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint const a = 1073757184u;
+ int const b = as_type<int>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.msl
index 7e344ef..97bde6d 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint const a = 1073757184u;
+ uint const b = as_type<uint>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.msl
index 7e344ef..79405e2 100644
--- a/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/u32-vec2f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint const a = 1073757184u;
+ half2 const b = as_type<half2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.msl
index 7e344ef..44ba38b 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half2 const a = half2(1.0h, 2.0h);
+ float const b = as_type<float>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.msl
index 7e344ef..59afed3 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half2 const a = half2(1.0h, 2.0h);
+ int const b = as_type<int>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.msl
index 7e344ef..6591584 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half2 const a = half2(1.0h, 2.0h);
+ uint const b = as_type<uint>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl
index 7e344ef..aeeea39 100644
--- a/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/32bit/vec2f16-vec2f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half2 const a = half2(1.0h, 2.0h);
+ half2 const b = as_type<half2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl
index 7e344ef..329a879 100644
--- a/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/48bit/vec3f16-vec3f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half3 const a = half3(1.0h, 2.0h, 3.0h);
+ half3 const b = as_type<half3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl
index 7e344ef..00aec8a 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float2 const a = float2(2.003662109375f, -513.03125f);
+ float2 const b = as_type<float2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl
index 7e344ef..835c4e6 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float2 const a = float2(2.003662109375f, -513.03125f);
+ int2 const b = as_type<int2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl
index 7e344ef..dbd92f8 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec2u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float2 const a = float2(2.003662109375f, -513.03125f);
+ uint2 const b = as_type<uint2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl
index 7e344ef..60d01f7 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2f32-vec4f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float2 const a = float2(2.003662109375f, -513.03125f);
+ half4 const b = as_type<half4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl
index 7e344ef..6cc01e1 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int2 const a = int2(1073757184, -1006616064);
+ float2 const b = as_type<float2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl
index 7e344ef..4a07557 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int2 const a = int2(1073757184, -1006616064);
+ int2 const b = as_type<int2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl
index 7e344ef..01aa32c 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec2u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int2 const a = int2(1073757184, -1006616064);
+ uint2 const b = as_type<uint2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl
index 7e344ef..64e3c24 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2i32-vec4f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int2 const a = int2(1073757184, -1006616064);
+ half4 const b = as_type<half4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl
index 7e344ef..87a30ef 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint2 const a = uint2(1073757184u, 3288351232u);
+ float2 const b = as_type<float2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl
index 7e344ef..03e8c47 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint2 const a = uint2(1073757184u, 3288351232u);
+ int2 const b = as_type<int2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl
index 7e344ef..e449bc0 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec2u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint2 const a = uint2(1073757184u, 3288351232u);
+ uint2 const b = as_type<uint2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl
index 7e344ef..a43a082 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec2u32-vec4f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint2 const a = uint2(1073757184u, 3288351232u);
+ half4 const b = as_type<half4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl
index 7e344ef..7ec346c 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half4 const a = half4(1.0h, 2.0h, 3.0h, -4.0h);
+ float2 const b = as_type<float2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl
index 7e344ef..7d52cb3 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half4 const a = half4(1.0h, 2.0h, 3.0h, -4.0h);
+ int2 const b = as_type<int2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl
index 7e344ef..4156cde 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec2u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half4 const a = half4(1.0h, 2.0h, 3.0h, -4.0h);
+ uint2 const b = as_type<uint2>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl
index 7e344ef..c644ff0 100644
--- a/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/64bit/vec4f16-vec4f16.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ half4 const a = half4(1.0h, 2.0h, 3.0h, -4.0h);
+ half4 const b = as_type<half4>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl
index 7e344ef..3d9f5cf 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float3 const a = float3(2.003662109375f, -513.03125f, -1024.25f);
+ float3 const b = as_type<float3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl
index 7e344ef..75c2535 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float3 const a = float3(2.003662109375f, -513.03125f, -1024.25f);
+ int3 const b = as_type<int3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl
index 7e344ef..ec52948 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3f32-vec3u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ float3 const a = float3(2.003662109375f, -513.03125f, -1024.25f);
+ uint3 const b = as_type<uint3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl
index 7e344ef..964d87c 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int3 const a = int3(1073757184, -1006616064, -998242304);
+ float3 const b = as_type<float3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl
index 7e344ef..f280a85 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int3 const a = int3(1073757184, -1006616064, -998242304);
+ int3 const b = as_type<int3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl
index 7e344ef..a78b128 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3i32-vec3u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ int3 const a = int3(1073757184, -1006616064, -998242304);
+ uint3 const b = as_type<uint3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl
index 7e344ef..668f617 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3f32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint3 const a = uint3(1073757184u, 3288351232u, 3296724992u);
+ float3 const b = as_type<float3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl
index 7e344ef..a5b49f3 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3i32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint3 const a = uint3(1073757184u, 3288351232u, 3296724992u);
+ int3 const b = as_type<int3>(a);
+}
diff --git a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl
index 7e344ef..81f1721 100644
--- a/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/bitcast/let/96bit/vec3u32-vec3u32.wgsl.expected.ir.msl
@@ -1,9 +1,7 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 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. *
-********************************************************************
+kernel void f() {
+ uint3 const a = uint3(1073757184u, 3288351232u, 3296724992u);
+ uint3 const b = as_type<uint3>(a);
+}