Rename 'intrinsic' to 'builtin'

This matches the term used in the WGSL spec.

Change-Id: I4603332b828450c126ef806f1064ed54f372013f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/78787
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 75fa189..538c4a9 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -153,6 +153,8 @@
     "../src/ast/bool_test.cc",
     "../src/ast/break_statement_test.cc",
     "../src/ast/builtin_attribute_test.cc",
+    "../src/ast/builtin_texture_helper_test.cc",
+    "../src/ast/builtin_texture_helper_test.h",
     "../src/ast/call_expression_test.cc",
     "../src/ast/call_statement_test.cc",
     "../src/ast/case_statement_test.cc",
@@ -174,8 +176,6 @@
     "../src/ast/index_accessor_expression_test.cc",
     "../src/ast/int_literal_expression_test.cc",
     "../src/ast/interpolate_attribute_test.cc",
-    "../src/ast/intrinsic_texture_helper_test.cc",
-    "../src/ast/intrinsic_texture_helper_test.h",
     "../src/ast/invariant_attribute_test.cc",
     "../src/ast/location_attribute_test.cc",
     "../src/ast/loop_statement_test.cc",
@@ -239,6 +239,8 @@
     "../src/resolver/atomics_validation_test.cc",
     "../src/resolver/bitcast_validation_test.cc",
     "../src/resolver/builtins_validation_test.cc",
+    "../src/resolver/builtin_test.cc",
+    "../src/resolver/builtin_validation_test.cc",
     "../src/resolver/call_test.cc",
     "../src/resolver/call_validation_test.cc",
     "../src/resolver/compound_statement_test.cc",
@@ -248,8 +250,6 @@
     "../src/resolver/entry_point_validation_test.cc",
     "../src/resolver/function_validation_test.cc",
     "../src/resolver/host_shareable_validation_test.cc",
-    "../src/resolver/intrinsic_test.cc",
-    "../src/resolver/intrinsic_validation_test.cc",
     "../src/resolver/is_host_shareable_test.cc",
     "../src/resolver/is_storeable_test.cc",
     "../src/resolver/pipeline_overridable_constant_test.cc",
@@ -278,12 +278,12 @@
   sources = [
     "../src/sem/atomic_type_test.cc",
     "../src/sem/bool_type_test.cc",
+    "../src/sem/builtin_test.cc",
     "../src/sem/depth_multisampled_texture_type_test.cc",
     "../src/sem/depth_texture_type_test.cc",
     "../src/sem/external_texture_type_test.cc",
     "../src/sem/f32_type_test.cc",
     "../src/sem/i32_type_test.cc",
-    "../src/sem/intrinsic_test.cc",
     "../src/sem/matrix_type_test.cc",
     "../src/sem/multisampled_texture_type_test.cc",
     "../src/sem/pointer_type_test.cc",
@@ -413,6 +413,8 @@
     "../src/writer/spirv/builder_binary_expression_test.cc",
     "../src/writer/spirv/builder_bitcast_expression_test.cc",
     "../src/writer/spirv/builder_block_test.cc",
+    "../src/writer/spirv/builder_builtin_test.cc",
+    "../src/writer/spirv/builder_builtin_texture_test.cc",
     "../src/writer/spirv/builder_call_test.cc",
     "../src/writer/spirv/builder_constructor_expression_test.cc",
     "../src/writer/spirv/builder_discard_test.cc",
@@ -424,8 +426,6 @@
     "../src/writer/spirv/builder_global_variable_test.cc",
     "../src/writer/spirv/builder_ident_expression_test.cc",
     "../src/writer/spirv/builder_if_test.cc",
-    "../src/writer/spirv/builder_intrinsic_test.cc",
-    "../src/writer/spirv/builder_intrinsic_texture_test.cc",
     "../src/writer/spirv/builder_literal_test.cc",
     "../src/writer/spirv/builder_loop_test.cc",
     "../src/writer/spirv/builder_return_test.cc",
@@ -576,6 +576,8 @@
     "../src/writer/msl/generator_impl_bitcast_test.cc",
     "../src/writer/msl/generator_impl_block_test.cc",
     "../src/writer/msl/generator_impl_break_test.cc",
+    "../src/writer/msl/generator_impl_builtin_test.cc",
+    "../src/writer/msl/generator_impl_builtin_texture_test.cc",
     "../src/writer/msl/generator_impl_call_test.cc",
     "../src/writer/msl/generator_impl_case_test.cc",
     "../src/writer/msl/generator_impl_cast_test.cc",
@@ -586,8 +588,6 @@
     "../src/writer/msl/generator_impl_identifier_test.cc",
     "../src/writer/msl/generator_impl_if_test.cc",
     "../src/writer/msl/generator_impl_import_test.cc",
-    "../src/writer/msl/generator_impl_intrinsic_test.cc",
-    "../src/writer/msl/generator_impl_intrinsic_texture_test.cc",
     "../src/writer/msl/generator_impl_loop_test.cc",
     "../src/writer/msl/generator_impl_member_accessor_test.cc",
     "../src/writer/msl/generator_impl_module_constant_test.cc",
@@ -615,6 +615,8 @@
     "../src/writer/hlsl/generator_impl_bitcast_test.cc",
     "../src/writer/hlsl/generator_impl_block_test.cc",
     "../src/writer/hlsl/generator_impl_break_test.cc",
+    "../src/writer/hlsl/generator_impl_builtin_test.cc",
+    "../src/writer/hlsl/generator_impl_builtin_texture_test.cc",
     "../src/writer/hlsl/generator_impl_call_test.cc",
     "../src/writer/hlsl/generator_impl_case_test.cc",
     "../src/writer/hlsl/generator_impl_cast_test.cc",
@@ -625,8 +627,6 @@
     "../src/writer/hlsl/generator_impl_identifier_test.cc",
     "../src/writer/hlsl/generator_impl_if_test.cc",
     "../src/writer/hlsl/generator_impl_import_test.cc",
-    "../src/writer/hlsl/generator_impl_intrinsic_test.cc",
-    "../src/writer/hlsl/generator_impl_intrinsic_texture_test.cc",
     "../src/writer/hlsl/generator_impl_loop_test.cc",
     "../src/writer/hlsl/generator_impl_member_accessor_test.cc",
     "../src/writer/hlsl/generator_impl_module_constant_test.cc",
@@ -656,6 +656,8 @@
     "../src/writer/glsl/generator_impl_bitcast_test.cc",
     "../src/writer/glsl/generator_impl_block_test.cc",
     "../src/writer/glsl/generator_impl_break_test.cc",
+    "../src/writer/glsl/generator_impl_builtin_test.cc",
+    "../src/writer/glsl/generator_impl_builtin_texture_test.cc",
     "../src/writer/glsl/generator_impl_call_test.cc",
     "../src/writer/glsl/generator_impl_case_test.cc",
     "../src/writer/glsl/generator_impl_cast_test.cc",
@@ -666,8 +668,6 @@
     "../src/writer/glsl/generator_impl_identifier_test.cc",
     "../src/writer/glsl/generator_impl_if_test.cc",
     "../src/writer/glsl/generator_impl_import_test.cc",
-    "../src/writer/glsl/generator_impl_intrinsic_test.cc",
-    "../src/writer/glsl/generator_impl_intrinsic_texture_test.cc",
     "../src/writer/glsl/generator_impl_loop_test.cc",
     "../src/writer/glsl/generator_impl_member_accessor_test.cc",
     "../src/writer/glsl/generator_impl_module_constant_test.cc",
@@ -692,11 +692,11 @@
 tint_unittests_source_set("tint_unittests_core_src") {
   sources = [
     "../src/block_allocator_test.cc",
+    "../src/builtin_table_test.cc",
     "../src/castable_test.cc",
     "../src/clone_context_test.cc",
     "../src/debug_test.cc",
     "../src/demangler_test.cc",
-    "../src/intrinsic_table_test.cc",
     "../src/program_builder_test.cc",
     "../src/program_test.cc",
     "../src/scope_stack_test.cc",
diff --git a/test/bug/chromium/1273230.wgsl.expected.glsl b/test/bug/chromium/1273230.wgsl.expected.glsl
index b3db713..bfc20ad 100644
--- a/test/bug/chromium/1273230.wgsl.expected.glsl
+++ b/test/bug/chromium/1273230.wgsl.expected.glsl
@@ -1,20 +1,20 @@
-bug/chromium/1273230.wgsl:4:7 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:4:7 warning: use of deprecated builtin
   _ = isNormal(4.);
       ^^^^^^^^
 
-bug/chromium/1273230.wgsl:7:3 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:7:3 warning: use of deprecated builtin
   isNormal(vec4<f32>());
   ^^^^^^^^
 
-bug/chromium/1273230.wgsl:10:6 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:10:6 warning: use of deprecated builtin
      isNormal(0.);
      ^^^^^^^^
 
-bug/chromium/1273230.wgsl:11:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:11:9 warning: use of deprecated builtin
     _ = isNormal(4.);
         ^^^^^^^^
 
-bug/chromium/1273230.wgsl:12:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:12:9 warning: use of deprecated builtin
     _ = isNormal(2.);
         ^^^^^^^^
 
diff --git a/test/bug/chromium/1273230.wgsl.expected.hlsl b/test/bug/chromium/1273230.wgsl.expected.hlsl
index eb84f1a..b1b9cf0 100644
--- a/test/bug/chromium/1273230.wgsl.expected.hlsl
+++ b/test/bug/chromium/1273230.wgsl.expected.hlsl
@@ -1,20 +1,20 @@
-bug/chromium/1273230.wgsl:4:7 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:4:7 warning: use of deprecated builtin
   _ = isNormal(4.);
       ^^^^^^^^
 
-bug/chromium/1273230.wgsl:7:3 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:7:3 warning: use of deprecated builtin
   isNormal(vec4<f32>());
   ^^^^^^^^
 
-bug/chromium/1273230.wgsl:10:6 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:10:6 warning: use of deprecated builtin
      isNormal(0.);
      ^^^^^^^^
 
-bug/chromium/1273230.wgsl:11:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:11:9 warning: use of deprecated builtin
     _ = isNormal(4.);
         ^^^^^^^^
 
-bug/chromium/1273230.wgsl:12:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:12:9 warning: use of deprecated builtin
     _ = isNormal(2.);
         ^^^^^^^^
 
diff --git a/test/bug/chromium/1273230.wgsl.expected.msl b/test/bug/chromium/1273230.wgsl.expected.msl
index c8e38ab..a6f5aab 100644
--- a/test/bug/chromium/1273230.wgsl.expected.msl
+++ b/test/bug/chromium/1273230.wgsl.expected.msl
@@ -1,20 +1,20 @@
-bug/chromium/1273230.wgsl:4:7 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:4:7 warning: use of deprecated builtin
   _ = isNormal(4.);
       ^^^^^^^^
 
-bug/chromium/1273230.wgsl:7:3 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:7:3 warning: use of deprecated builtin
   isNormal(vec4<f32>());
   ^^^^^^^^
 
-bug/chromium/1273230.wgsl:10:6 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:10:6 warning: use of deprecated builtin
      isNormal(0.);
      ^^^^^^^^
 
-bug/chromium/1273230.wgsl:11:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:11:9 warning: use of deprecated builtin
     _ = isNormal(4.);
         ^^^^^^^^
 
-bug/chromium/1273230.wgsl:12:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:12:9 warning: use of deprecated builtin
     _ = isNormal(2.);
         ^^^^^^^^
 
diff --git a/test/bug/chromium/1273230.wgsl.expected.spvasm b/test/bug/chromium/1273230.wgsl.expected.spvasm
index 6719df2..a2c9d8c 100644
--- a/test/bug/chromium/1273230.wgsl.expected.spvasm
+++ b/test/bug/chromium/1273230.wgsl.expected.spvasm
@@ -1,20 +1,20 @@
-bug/chromium/1273230.wgsl:4:7 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:4:7 warning: use of deprecated builtin
   _ = isNormal(4.);
       ^^^^^^^^
 
-bug/chromium/1273230.wgsl:7:3 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:7:3 warning: use of deprecated builtin
   isNormal(vec4<f32>());
   ^^^^^^^^
 
-bug/chromium/1273230.wgsl:10:6 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:10:6 warning: use of deprecated builtin
      isNormal(0.);
      ^^^^^^^^
 
-bug/chromium/1273230.wgsl:11:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:11:9 warning: use of deprecated builtin
     _ = isNormal(4.);
         ^^^^^^^^
 
-bug/chromium/1273230.wgsl:12:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:12:9 warning: use of deprecated builtin
     _ = isNormal(2.);
         ^^^^^^^^
 
diff --git a/test/bug/chromium/1273230.wgsl.expected.wgsl b/test/bug/chromium/1273230.wgsl.expected.wgsl
index 2d9a271..3e387da 100644
--- a/test/bug/chromium/1273230.wgsl.expected.wgsl
+++ b/test/bug/chromium/1273230.wgsl.expected.wgsl
@@ -1,20 +1,20 @@
-bug/chromium/1273230.wgsl:4:7 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:4:7 warning: use of deprecated builtin
   _ = isNormal(4.);
       ^^^^^^^^
 
-bug/chromium/1273230.wgsl:7:3 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:7:3 warning: use of deprecated builtin
   isNormal(vec4<f32>());
   ^^^^^^^^
 
-bug/chromium/1273230.wgsl:10:6 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:10:6 warning: use of deprecated builtin
      isNormal(0.);
      ^^^^^^^^
 
-bug/chromium/1273230.wgsl:11:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:11:9 warning: use of deprecated builtin
     _ = isNormal(4.);
         ^^^^^^^^
 
-bug/chromium/1273230.wgsl:12:9 warning: use of deprecated intrinsic
+bug/chromium/1273230.wgsl:12:9 warning: use of deprecated builtin
     _ = isNormal(2.);
         ^^^^^^^^
 
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl b/test/builtins/arrayLength/complex_via_let.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let.wgsl
rename to test/builtins/arrayLength/complex_via_let.wgsl
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl b/test/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let.wgsl.expected.glsl
rename to test/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.hlsl b/test/builtins/arrayLength/complex_via_let.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let.wgsl.expected.hlsl
rename to test/builtins/arrayLength/complex_via_let.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.msl b/test/builtins/arrayLength/complex_via_let.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let.wgsl.expected.msl
rename to test/builtins/arrayLength/complex_via_let.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.spvasm b/test/builtins/arrayLength/complex_via_let.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let.wgsl.expected.spvasm
rename to test/builtins/arrayLength/complex_via_let.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/complex_via_let.wgsl.expected.wgsl b/test/builtins/arrayLength/complex_via_let.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let.wgsl.expected.wgsl
rename to test/builtins/arrayLength/complex_via_let.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl
rename to test/builtins/arrayLength/complex_via_let_no_struct.wgsl
diff --git a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
rename to test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.hlsl b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.hlsl
rename to test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.msl b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.msl
rename to test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.spvasm b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.spvasm
rename to test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.wgsl b/test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/complex_via_let_no_struct.wgsl.expected.wgsl
rename to test/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl b/test/builtins/arrayLength/deprecated.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/deprecated.wgsl
rename to test/builtins/arrayLength/deprecated.wgsl
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl b/test/builtins/arrayLength/deprecated.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/deprecated.wgsl.expected.glsl
rename to test/builtins/arrayLength/deprecated.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl.expected.hlsl b/test/builtins/arrayLength/deprecated.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/deprecated.wgsl.expected.hlsl
rename to test/builtins/arrayLength/deprecated.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl.expected.msl b/test/builtins/arrayLength/deprecated.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/deprecated.wgsl.expected.msl
rename to test/builtins/arrayLength/deprecated.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl.expected.spvasm b/test/builtins/arrayLength/deprecated.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/deprecated.wgsl.expected.spvasm
rename to test/builtins/arrayLength/deprecated.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/deprecated.wgsl.expected.wgsl b/test/builtins/arrayLength/deprecated.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/deprecated.wgsl.expected.wgsl
rename to test/builtins/arrayLength/deprecated.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/simple.wgsl b/test/builtins/arrayLength/simple.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple.wgsl
rename to test/builtins/arrayLength/simple.wgsl
diff --git a/test/intrinsics/arrayLength/simple.wgsl.expected.glsl b/test/builtins/arrayLength/simple.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple.wgsl.expected.glsl
rename to test/builtins/arrayLength/simple.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/simple.wgsl.expected.hlsl b/test/builtins/arrayLength/simple.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple.wgsl.expected.hlsl
rename to test/builtins/arrayLength/simple.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/simple.wgsl.expected.msl b/test/builtins/arrayLength/simple.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/simple.wgsl.expected.msl
rename to test/builtins/arrayLength/simple.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/simple.wgsl.expected.spvasm b/test/builtins/arrayLength/simple.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/simple.wgsl.expected.spvasm
rename to test/builtins/arrayLength/simple.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/simple.wgsl.expected.wgsl b/test/builtins/arrayLength/simple.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple.wgsl.expected.wgsl
rename to test/builtins/arrayLength/simple.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/simple_no_struct.wgsl b/test/builtins/arrayLength/simple_no_struct.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple_no_struct.wgsl
rename to test/builtins/arrayLength/simple_no_struct.wgsl
diff --git a/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.glsl
rename to test/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.hlsl b/test/builtins/arrayLength/simple_no_struct.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.hlsl
rename to test/builtins/arrayLength/simple_no_struct.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.msl b/test/builtins/arrayLength/simple_no_struct.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.msl
rename to test/builtins/arrayLength/simple_no_struct.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.spvasm b/test/builtins/arrayLength/simple_no_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.spvasm
rename to test/builtins/arrayLength/simple_no_struct.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.wgsl b/test/builtins/arrayLength/simple_no_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/simple_no_struct.wgsl.expected.wgsl
rename to test/builtins/arrayLength/simple_no_struct.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/via_let.wgsl b/test/builtins/arrayLength/via_let.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let.wgsl
rename to test/builtins/arrayLength/via_let.wgsl
diff --git a/test/intrinsics/arrayLength/via_let.wgsl.expected.glsl b/test/builtins/arrayLength/via_let.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let.wgsl.expected.glsl
rename to test/builtins/arrayLength/via_let.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/via_let.wgsl.expected.hlsl b/test/builtins/arrayLength/via_let.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let.wgsl.expected.hlsl
rename to test/builtins/arrayLength/via_let.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/via_let.wgsl.expected.msl b/test/builtins/arrayLength/via_let.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let.wgsl.expected.msl
rename to test/builtins/arrayLength/via_let.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/via_let.wgsl.expected.spvasm b/test/builtins/arrayLength/via_let.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/via_let.wgsl.expected.spvasm
rename to test/builtins/arrayLength/via_let.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/via_let.wgsl.expected.wgsl b/test/builtins/arrayLength/via_let.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let.wgsl.expected.wgsl
rename to test/builtins/arrayLength/via_let.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl b/test/builtins/arrayLength/via_let_complex.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex.wgsl
rename to test/builtins/arrayLength/via_let_complex.wgsl
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl b/test/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex.wgsl.expected.glsl
rename to test/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.hlsl b/test/builtins/arrayLength/via_let_complex.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex.wgsl.expected.hlsl
rename to test/builtins/arrayLength/via_let_complex.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.msl b/test/builtins/arrayLength/via_let_complex.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex.wgsl.expected.msl
rename to test/builtins/arrayLength/via_let_complex.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.spvasm b/test/builtins/arrayLength/via_let_complex.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex.wgsl.expected.spvasm
rename to test/builtins/arrayLength/via_let_complex.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/via_let_complex.wgsl.expected.wgsl b/test/builtins/arrayLength/via_let_complex.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex.wgsl.expected.wgsl
rename to test/builtins/arrayLength/via_let_complex.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl
rename to test/builtins/arrayLength/via_let_complex_no_struct.wgsl
diff --git a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
rename to test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.hlsl b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.hlsl
rename to test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.msl b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.msl
rename to test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.spvasm b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.spvasm
rename to test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.wgsl b/test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_complex_no_struct.wgsl.expected.wgsl
rename to test/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.wgsl
diff --git a/test/intrinsics/arrayLength/via_let_no_struct.wgsl b/test/builtins/arrayLength/via_let_no_struct.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_no_struct.wgsl
rename to test/builtins/arrayLength/via_let_no_struct.wgsl
diff --git a/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.glsl b/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.glsl
rename to test/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
diff --git a/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.hlsl b/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.hlsl
rename to test/builtins/arrayLength/via_let_no_struct.wgsl.expected.hlsl
diff --git a/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.msl b/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.msl
rename to test/builtins/arrayLength/via_let_no_struct.wgsl.expected.msl
diff --git a/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.spvasm b/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.spvasm
rename to test/builtins/arrayLength/via_let_no_struct.wgsl.expected.spvasm
diff --git a/test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.wgsl b/test/builtins/arrayLength/via_let_no_struct.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/arrayLength/via_let_no_struct.wgsl.expected.wgsl
rename to test/builtins/arrayLength/via_let_no_struct.wgsl.expected.wgsl
diff --git a/test/builtins/builtins.wgsl.tmpl b/test/builtins/builtins.wgsl.tmpl
new file mode 100644
index 0000000..c7e2265
--- /dev/null
+++ b/test/builtins/builtins.wgsl.tmpl
@@ -0,0 +1,273 @@
+{{- /*
+--------------------------------------------------------------------------------
+Template file for use with tools/builtin-gen to generate the wgsl files in the
+./gen/... subdirectories
+
+See:
+* tools/cmd/builtin-gen/gen for structures used by this template
+* https://golang.org/pkg/text/template/ for documentation on the template syntax
+--------------------------------------------------------------------------------
+*/ -}}
+
+{{- /* For each permutation of each overload of each function... */ -}}
+{{- range .Sem.Functions -}}
+{{-   range .Overloads  -}}
+{{-     range Permute . -}}
+{{- /*    Generate a ./gen/<function>/<permuataion-hash>.wgsl file using
+          the Permutation macro defined below                             */ -}}
+{{-       $file := printf "./gen/%v/%v.wgsl" .Function.Name .Hash -}}
+{{-       $content := Eval "Permutation" . -}}
+{{-       WriteFile $file $content -}}
+{{-     end  }}
+{{-   end  }}
+{{- end  }}
+
+
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-                          define "Permutation"                            -}}
+{{- /* Emits the body of the intrinsic permuation .wgsl file              */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-   $function    := .Function.Name -}}
+{{-   $permutation := printf "%v_%v" $function .Hash -}}
+{{-   $args        := Map -}}
+
+{{- /* Generate RW storage buffer parameters */ -}}
+{{-   $sb_rw_fields := Eval "EmitBufferFields" "overload"    .
+                                               "var_name"    "sb_rw"
+                                               "storage"     "storage"
+                                               "access"      "read_write"
+                                               "args"        $args -}}
+{{-   if $sb_rw_fields -}}
+struct SB_RW {
+{{- $sb_rw_fields -}}
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+{{    end -}}
+
+{{- /* Generate RO storage buffer parameters */ -}}
+{{-   $sb_ro_fields := Eval "EmitBufferFields" "overload"    .
+                                               "var_name"    "sb_ro"
+                                               "storage"     "storage"
+                                               "access"      "read"
+                                               "args"        $args -}}
+{{-   if $sb_ro_fields -}}
+struct SB_RO {
+{{- $sb_ro_fields -}}
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+{{    end -}}
+
+{{- /* Generate uniform buffer parameters */ -}}
+{{-   $ub_fields := Eval "EmitBufferFields" "overload"    .
+                                            "var_name"    "ub"
+                                            "storage"     "uniform"
+                                            "access"      "read"
+                                            "args"        $args -}}
+{{-   if $ub_fields -}}
+struct UB {
+{{- $ub_fields -}}
+};
+@group(0) @binding(1) var<uniform> ub : UB;
+{{    end -}}
+
+{{- /* Generate module-scoped handle variables */ -}}
+{{-   range $i, $p := .Parameters  }}
+{{-     $class := Eval "StorageClass" $p.Type -}}
+{{-     if eq "ptr" $p.Type.Target.Name -}}
+{{-       $el_type := Eval "Type" (index $p.Type.TemplateArguments 1)}}
+{{-       if eq "handle" $class -}}
+            @group(1) @binding({{$i}}) var arg_{{$i}}: {{$el_type}};
+{{          $args.Put $i (printf "&arg_%v" $i) -}}
+{{-       else if eq "workgroup" $class -}}
+            var<workgroup> arg_{{$i}}: {{$el_type}};
+{{          $args.Put $i (printf "&arg_%v" $i) -}}
+{{-       else if eq "private" $class -}}
+            var<private> arg_{{$i}}: {{$el_type}};
+{{          $args.Put $i (printf "&arg_%v" $i) -}}
+{{-       end -}}
+{{-     else -}}
+{{-       $type := Eval "Type" $p.Type}}
+{{-       if eq "handle" $class -}}
+            @group(1) @binding({{$i}}) var arg_{{$i}}: {{$type}};
+{{          $args.Put $i (printf "arg_%v" $i) -}}
+{{-       else if eq "workgroup" $class -}}
+            var<workgroup> arg_{{$i}}: {{$type}};
+{{          $args.Put $i (printf "arg_%v" $i) -}}
+{{-       else if eq "private" $class -}}
+            var<private> arg_{{$i}}: {{$type}};
+{{          $args.Put $i (printf "arg_%v" $i) -}}
+{{-       end -}}
+{{-     end -}}
+{{-   end -}}
+
+{{- /* Generate the function that calls the intrinsic */ -}}
+{{- /*newline*/}}
+// {{$.Overload}}
+fn {{$permutation}}() {
+{{/* Build the parameters either as 'var' or inline values */ -}}
+{{-   range $i, $p := .Parameters -}}
+{{-     $class := Eval "StorageClass" $p.Type -}}
+{{-     if eq "function" $class -}}
+{{-       if eq "ptr" $p.Type.Target.Name -}}
+{{- /*indent*/}}  var arg_{{$i}}: {{template "Type" index $p.Type.TemplateArguments 1}};
+{{          $args.Put $i (printf "&arg_%v" $i) -}}
+{{-       else -}}
+{{-         $args.Put $i (Eval "ArgumentValue" $p) -}}
+{{-       end -}}
+{{-     end -}}
+{{-   end -}}
+
+{{- /* Make the call to the intrinsic */ -}}
+{{- /*indent*/}}  {{/*indent*/ -}}
+{{-   if .ReturnType -}}
+  var res{{if IsDeclarable .ReturnType}}: {{template "Type" .ReturnType}}{{end}} = {{/* preserve space after = */ -}}
+{{-   end -}}
+  {{$function}}(
+{{-   range $i, $p := .Parameters -}}
+{{-     if $i -}}, {{end}}{{$args.Get $i -}}
+{{-   end -}}
+  );
+}
+{{/*new line*/ -}}
+
+{{- if .CanBeUsedInStage.Vertex }}
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  {{$permutation}}();
+  return vec4<f32>();
+}
+{{ end -}}
+
+{{- if .CanBeUsedInStage.Fragment }}
+@stage(fragment)
+fn fragment_main() {
+  {{$permutation}}();
+}
+{{ end -}}
+
+{{- if .CanBeUsedInStage.Compute }}
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  {{$permutation}}();
+}
+{{ end -}}
+
+{{- end -}}
+
+
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-                       define "EmitBufferFields"                          -}}
+{{- /* Emits a struct with the fields that match the given storage class  */ -}}
+{{- /* and access.                                                        */ -}}
+{{- /* Argument is a map with the following expected keys:                */ -}}
+{{- /*  'overload' - the current overload                                 */ -}}
+{{- /*  'var_name' - name of the variable of the structure type           */ -}}
+{{- /*  'storage'  - filtered storage class                               */ -}}
+{{- /*  'access'   - filtered access                                      */ -}}
+{{- /*  'args'     - argument map that's populated with the fields        */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{- $overload       := .Get "overload" -}}
+{{- $var_name       := .Get "var_name" -}}
+{{- $filter_storage := .Get "storage"  -}}
+{{- $filter_access  := .Get "access"   -}}
+{{- $args           := .Get "args"     -}}
+{{-   range $i, $p := $overload.Parameters  }}
+{{-     $storage := Eval "StorageClass" $p.Type -}}
+{{-     $access  := Eval "Access"       $p.Type -}}
+{{-     if and (eq $filter_storage $storage) (eq $filter_access $access) }}
+{{-       if eq "ptr" $p.Type.Target.Name  }}
+  arg_{{$i}}: {{template "Type" (index $p.Type.TemplateArguments 1)}};
+{{          $args.Put $i (printf "&%v.arg_%v" $var_name $i) -}}
+{{-       else  }}
+  arg_{{$i}}: {{template "Type" $p.Type}};
+{{          $args.Put $i (printf "%v.arg_%v" $var_name $i) -}}
+{{-       end -}}
+{{-     end -}}
+{{-   end -}}
+{{ end -}}
+
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-                           define "StorageClass"                          -}}
+{{- /* Returns the storage class for the given Fully Qualified Name       */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-   $name := .Target.Name -}}
+{{-   if             eq $name "array"   -}}storage
+{{-   else if HasPrefix $name "texture" -}}handle
+{{-   else if HasPrefix $name "sampler" -}}handle
+{{-   else if        eq $name "ptr"     -}}{{(index .TemplateArguments 0).Target.Name}}
+{{-   else                              -}}function
+{{-   end -}}
+{{- end -}}
+
+
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-                           define "Access"                                -}}
+{{- /* Returns the access for the given Fully Qualified Name              */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-   $name := .Target.Name -}}
+{{-   if eq $name "ptr"     -}}{{(index .TemplateArguments 2).Target.Name}}
+{{-   else -}}
+{{- /*  Emit the default for the storage class */ -}}
+{{- /*  https://gpuweb.github.io/gpuweb/wgsl/#storage-class */ -}}
+{{-     $storage := Eval "StorageClass" . -}}
+{{-          if eq $storage "function" -}}read_write
+{{-     else if eq $storage "private" -}}read_write
+{{-     else if eq $storage "workgroup" -}}read_write
+{{-     else if eq $storage "uniform" -}}read
+{{-     else if eq $storage "storage" -}}read
+{{-     else if eq $storage "handle" -}}read
+{{-     end -}}
+{{-   end -}}
+{{- end -}}
+
+
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-                          define "ArgumentValue"                          -}}
+{{- /* Returns a value that can be used for the parameter argument        */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-   $ty := .Type -}}
+{{-   if      eq $ty.Target.Name "i32" -}}
+{{- /* If the parameter has the name 'level', then use '0' as the value.  */ -}}
+{{- /* Some texture arguments require the level parameter to be 0, and    */ -}}
+{{- /* constraint is not described in the definition file.                */ -}}
+{{-     if   eq .Name "level"            -}}0
+{{-     else                             -}}1
+{{-     end                              -}}
+{{-   else if eq $ty.Target.Name "u32" -}}1u
+{{-   else if eq $ty.Target.Name "f32" -}}1.0
+{{-   else                             -}}{{template "Type" $ty}}()
+{{-   end                              -}}
+{{- end -}}
+
+
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-                                define "Type"                             -}}
+{{- /* Emits the WGSL for the Fully Qualified Name argument               */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-   if IsType .Target -}}
+{{-     if      eq .Target.Name "vec" -}}vec{{index .TemplateArguments 0}}<{{template "Type" index .TemplateArguments 1}}>
+{{-     else if eq .Target.Name "mat" -}}mat{{index .TemplateArguments 0}}x{{index .TemplateArguments 1}}<{{template "Type" index .TemplateArguments 2}}>
+{{-     else                          -}}{{.Target.Name}}{{template "TemplateArguments" .TemplateArguments}}
+{{-     end                           -}}
+{{-   else if IsEnumEntry   .Target   -}}{{.Target.Name}}
+{{-   else if IsEnumMatcher .Target   -}}{{(index .Target.Options 0).Name}}
+{{-   else                            -}}<unhandled-fully-qualified-name-target={{- printf "%T" .Target -}}>
+{{-   end                             -}}
+{{- end -}}
+
+
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-                          define "TemplateArguments"                      -}}
+{{- /* Emits the WGSL for the template argument list                      */ -}}
+{{- /* ------------------------------------------------------------------ */ -}}
+{{-   if . -}}
+<
+{{-    range $i, $a := . -}}
+{{-      if $i -}}, {{  end -}}
+{{-      if IsInt $a -}}{{- . -}}
+{{-      else        -}}{{- template "Type" $a -}}
+{{-      end -}}
+{{-    end -}}
+>
+{{-   end -}}
+{{- end -}}
diff --git a/test/intrinsics/degrees.spvasm b/test/builtins/degrees.spvasm
similarity index 100%
rename from test/intrinsics/degrees.spvasm
rename to test/builtins/degrees.spvasm
diff --git a/test/intrinsics/degrees.spvasm.expected.glsl b/test/builtins/degrees.spvasm.expected.glsl
similarity index 100%
rename from test/intrinsics/degrees.spvasm.expected.glsl
rename to test/builtins/degrees.spvasm.expected.glsl
diff --git a/test/intrinsics/degrees.spvasm.expected.hlsl b/test/builtins/degrees.spvasm.expected.hlsl
similarity index 100%
rename from test/intrinsics/degrees.spvasm.expected.hlsl
rename to test/builtins/degrees.spvasm.expected.hlsl
diff --git a/test/intrinsics/degrees.spvasm.expected.msl b/test/builtins/degrees.spvasm.expected.msl
similarity index 100%
rename from test/intrinsics/degrees.spvasm.expected.msl
rename to test/builtins/degrees.spvasm.expected.msl
diff --git a/test/intrinsics/degrees.spvasm.expected.spvasm b/test/builtins/degrees.spvasm.expected.spvasm
similarity index 100%
rename from test/intrinsics/degrees.spvasm.expected.spvasm
rename to test/builtins/degrees.spvasm.expected.spvasm
diff --git a/test/intrinsics/degrees.spvasm.expected.wgsl b/test/builtins/degrees.spvasm.expected.wgsl
similarity index 100%
rename from test/intrinsics/degrees.spvasm.expected.wgsl
rename to test/builtins/degrees.spvasm.expected.wgsl
diff --git a/test/intrinsics/frexp.wgsl b/test/builtins/frexp.wgsl
similarity index 100%
rename from test/intrinsics/frexp.wgsl
rename to test/builtins/frexp.wgsl
diff --git a/test/intrinsics/frexp.wgsl.expected.glsl b/test/builtins/frexp.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/frexp.wgsl.expected.glsl
rename to test/builtins/frexp.wgsl.expected.glsl
diff --git a/test/intrinsics/frexp.wgsl.expected.hlsl b/test/builtins/frexp.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/frexp.wgsl.expected.hlsl
rename to test/builtins/frexp.wgsl.expected.hlsl
diff --git a/test/intrinsics/frexp.wgsl.expected.msl b/test/builtins/frexp.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/frexp.wgsl.expected.msl
rename to test/builtins/frexp.wgsl.expected.msl
diff --git a/test/intrinsics/frexp.wgsl.expected.spvasm b/test/builtins/frexp.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/frexp.wgsl.expected.spvasm
rename to test/builtins/frexp.wgsl.expected.spvasm
diff --git a/test/intrinsics/frexp.wgsl.expected.wgsl b/test/builtins/frexp.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/frexp.wgsl.expected.wgsl
rename to test/builtins/frexp.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/002533.wgsl b/test/builtins/gen/abs/002533.wgsl
new file mode 100644
index 0000000..0a476d3
--- /dev/null
+++ b/test/builtins/gen/abs/002533.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<4, f32>) -> vec<4, f32>
+fn abs_002533() {
+  var res: vec4<f32> = abs(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_002533();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_002533();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_002533();
+}
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.glsl b/test/builtins/gen/abs/002533.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/002533.wgsl.expected.glsl
rename to test/builtins/gen/abs/002533.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.hlsl b/test/builtins/gen/abs/002533.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/002533.wgsl.expected.hlsl
rename to test/builtins/gen/abs/002533.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.msl b/test/builtins/gen/abs/002533.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/002533.wgsl.expected.msl
rename to test/builtins/gen/abs/002533.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.spvasm b/test/builtins/gen/abs/002533.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/002533.wgsl.expected.spvasm
rename to test/builtins/gen/abs/002533.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/002533.wgsl.expected.wgsl b/test/builtins/gen/abs/002533.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/002533.wgsl.expected.wgsl
rename to test/builtins/gen/abs/002533.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/005174.wgsl b/test/builtins/gen/abs/005174.wgsl
new file mode 100644
index 0000000..25a250a
--- /dev/null
+++ b/test/builtins/gen/abs/005174.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<3, f32>) -> vec<3, f32>
+fn abs_005174() {
+  var res: vec3<f32> = abs(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_005174();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_005174();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_005174();
+}
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.glsl b/test/builtins/gen/abs/005174.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/005174.wgsl.expected.glsl
rename to test/builtins/gen/abs/005174.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.hlsl b/test/builtins/gen/abs/005174.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/005174.wgsl.expected.hlsl
rename to test/builtins/gen/abs/005174.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.msl b/test/builtins/gen/abs/005174.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/005174.wgsl.expected.msl
rename to test/builtins/gen/abs/005174.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.spvasm b/test/builtins/gen/abs/005174.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/005174.wgsl.expected.spvasm
rename to test/builtins/gen/abs/005174.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/005174.wgsl.expected.wgsl b/test/builtins/gen/abs/005174.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/005174.wgsl.expected.wgsl
rename to test/builtins/gen/abs/005174.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/1ce782.wgsl b/test/builtins/gen/abs/1ce782.wgsl
new file mode 100644
index 0000000..a9903ca
--- /dev/null
+++ b/test/builtins/gen/abs/1ce782.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<4, u32>) -> vec<4, u32>
+fn abs_1ce782() {
+  var res: vec4<u32> = abs(vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_1ce782();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_1ce782();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_1ce782();
+}
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl b/test/builtins/gen/abs/1ce782.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/1ce782.wgsl.expected.glsl
rename to test/builtins/gen/abs/1ce782.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.hlsl b/test/builtins/gen/abs/1ce782.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/1ce782.wgsl.expected.hlsl
rename to test/builtins/gen/abs/1ce782.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.msl b/test/builtins/gen/abs/1ce782.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/1ce782.wgsl.expected.msl
rename to test/builtins/gen/abs/1ce782.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.spvasm b/test/builtins/gen/abs/1ce782.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/1ce782.wgsl.expected.spvasm
rename to test/builtins/gen/abs/1ce782.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl.expected.wgsl b/test/builtins/gen/abs/1ce782.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/1ce782.wgsl.expected.wgsl
rename to test/builtins/gen/abs/1ce782.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/1e9d53.wgsl b/test/builtins/gen/abs/1e9d53.wgsl
new file mode 100644
index 0000000..ea898e9
--- /dev/null
+++ b/test/builtins/gen/abs/1e9d53.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<2, f32>) -> vec<2, f32>
+fn abs_1e9d53() {
+  var res: vec2<f32> = abs(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_1e9d53();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_1e9d53();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_1e9d53();
+}
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl b/test/builtins/gen/abs/1e9d53.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/1e9d53.wgsl.expected.glsl
rename to test/builtins/gen/abs/1e9d53.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.hlsl b/test/builtins/gen/abs/1e9d53.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/1e9d53.wgsl.expected.hlsl
rename to test/builtins/gen/abs/1e9d53.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.msl b/test/builtins/gen/abs/1e9d53.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/1e9d53.wgsl.expected.msl
rename to test/builtins/gen/abs/1e9d53.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.spvasm b/test/builtins/gen/abs/1e9d53.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/1e9d53.wgsl.expected.spvasm
rename to test/builtins/gen/abs/1e9d53.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl.expected.wgsl b/test/builtins/gen/abs/1e9d53.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/1e9d53.wgsl.expected.wgsl
rename to test/builtins/gen/abs/1e9d53.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/467cd1.wgsl b/test/builtins/gen/abs/467cd1.wgsl
new file mode 100644
index 0000000..e136df2
--- /dev/null
+++ b/test/builtins/gen/abs/467cd1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(u32) -> u32
+fn abs_467cd1() {
+  var res: u32 = abs(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_467cd1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_467cd1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_467cd1();
+}
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl b/test/builtins/gen/abs/467cd1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/467cd1.wgsl.expected.glsl
rename to test/builtins/gen/abs/467cd1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.hlsl b/test/builtins/gen/abs/467cd1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/467cd1.wgsl.expected.hlsl
rename to test/builtins/gen/abs/467cd1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.msl b/test/builtins/gen/abs/467cd1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/467cd1.wgsl.expected.msl
rename to test/builtins/gen/abs/467cd1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.spvasm b/test/builtins/gen/abs/467cd1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/467cd1.wgsl.expected.spvasm
rename to test/builtins/gen/abs/467cd1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl.expected.wgsl b/test/builtins/gen/abs/467cd1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/467cd1.wgsl.expected.wgsl
rename to test/builtins/gen/abs/467cd1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/4ad288.wgsl b/test/builtins/gen/abs/4ad288.wgsl
new file mode 100644
index 0000000..b33ffaa
--- /dev/null
+++ b/test/builtins/gen/abs/4ad288.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(i32) -> i32
+fn abs_4ad288() {
+  var res: i32 = abs(1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_4ad288();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_4ad288();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_4ad288();
+}
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl b/test/builtins/gen/abs/4ad288.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/4ad288.wgsl.expected.glsl
rename to test/builtins/gen/abs/4ad288.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.hlsl b/test/builtins/gen/abs/4ad288.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/4ad288.wgsl.expected.hlsl
rename to test/builtins/gen/abs/4ad288.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.msl b/test/builtins/gen/abs/4ad288.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/4ad288.wgsl.expected.msl
rename to test/builtins/gen/abs/4ad288.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.spvasm b/test/builtins/gen/abs/4ad288.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/4ad288.wgsl.expected.spvasm
rename to test/builtins/gen/abs/4ad288.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl.expected.wgsl b/test/builtins/gen/abs/4ad288.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/4ad288.wgsl.expected.wgsl
rename to test/builtins/gen/abs/4ad288.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/5ad50a.wgsl b/test/builtins/gen/abs/5ad50a.wgsl
new file mode 100644
index 0000000..6f40a4b
--- /dev/null
+++ b/test/builtins/gen/abs/5ad50a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<3, i32>) -> vec<3, i32>
+fn abs_5ad50a() {
+  var res: vec3<i32> = abs(vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_5ad50a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_5ad50a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_5ad50a();
+}
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl b/test/builtins/gen/abs/5ad50a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/5ad50a.wgsl.expected.glsl
rename to test/builtins/gen/abs/5ad50a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.hlsl b/test/builtins/gen/abs/5ad50a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/5ad50a.wgsl.expected.hlsl
rename to test/builtins/gen/abs/5ad50a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.msl b/test/builtins/gen/abs/5ad50a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/5ad50a.wgsl.expected.msl
rename to test/builtins/gen/abs/5ad50a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.spvasm b/test/builtins/gen/abs/5ad50a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/5ad50a.wgsl.expected.spvasm
rename to test/builtins/gen/abs/5ad50a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl.expected.wgsl b/test/builtins/gen/abs/5ad50a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/5ad50a.wgsl.expected.wgsl
rename to test/builtins/gen/abs/5ad50a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/7326de.wgsl b/test/builtins/gen/abs/7326de.wgsl
new file mode 100644
index 0000000..b06e0c3
--- /dev/null
+++ b/test/builtins/gen/abs/7326de.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<3, u32>) -> vec<3, u32>
+fn abs_7326de() {
+  var res: vec3<u32> = abs(vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_7326de();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_7326de();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_7326de();
+}
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.glsl b/test/builtins/gen/abs/7326de.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/7326de.wgsl.expected.glsl
rename to test/builtins/gen/abs/7326de.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.hlsl b/test/builtins/gen/abs/7326de.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/7326de.wgsl.expected.hlsl
rename to test/builtins/gen/abs/7326de.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.msl b/test/builtins/gen/abs/7326de.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/7326de.wgsl.expected.msl
rename to test/builtins/gen/abs/7326de.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.spvasm b/test/builtins/gen/abs/7326de.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/7326de.wgsl.expected.spvasm
rename to test/builtins/gen/abs/7326de.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/7326de.wgsl.expected.wgsl b/test/builtins/gen/abs/7326de.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/7326de.wgsl.expected.wgsl
rename to test/builtins/gen/abs/7326de.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/7f28e6.wgsl b/test/builtins/gen/abs/7f28e6.wgsl
new file mode 100644
index 0000000..51d137c
--- /dev/null
+++ b/test/builtins/gen/abs/7f28e6.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<2, u32>) -> vec<2, u32>
+fn abs_7f28e6() {
+  var res: vec2<u32> = abs(vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_7f28e6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_7f28e6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_7f28e6();
+}
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl b/test/builtins/gen/abs/7f28e6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/7f28e6.wgsl.expected.glsl
rename to test/builtins/gen/abs/7f28e6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.hlsl b/test/builtins/gen/abs/7f28e6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/7f28e6.wgsl.expected.hlsl
rename to test/builtins/gen/abs/7f28e6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.msl b/test/builtins/gen/abs/7f28e6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/7f28e6.wgsl.expected.msl
rename to test/builtins/gen/abs/7f28e6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.spvasm b/test/builtins/gen/abs/7f28e6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/7f28e6.wgsl.expected.spvasm
rename to test/builtins/gen/abs/7f28e6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl.expected.wgsl b/test/builtins/gen/abs/7f28e6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/7f28e6.wgsl.expected.wgsl
rename to test/builtins/gen/abs/7f28e6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/7faa9e.wgsl b/test/builtins/gen/abs/7faa9e.wgsl
new file mode 100644
index 0000000..5136e6f
--- /dev/null
+++ b/test/builtins/gen/abs/7faa9e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<2, i32>) -> vec<2, i32>
+fn abs_7faa9e() {
+  var res: vec2<i32> = abs(vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_7faa9e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_7faa9e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_7faa9e();
+}
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl b/test/builtins/gen/abs/7faa9e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/7faa9e.wgsl.expected.glsl
rename to test/builtins/gen/abs/7faa9e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.hlsl b/test/builtins/gen/abs/7faa9e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/7faa9e.wgsl.expected.hlsl
rename to test/builtins/gen/abs/7faa9e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.msl b/test/builtins/gen/abs/7faa9e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/7faa9e.wgsl.expected.msl
rename to test/builtins/gen/abs/7faa9e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.spvasm b/test/builtins/gen/abs/7faa9e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/7faa9e.wgsl.expected.spvasm
rename to test/builtins/gen/abs/7faa9e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl.expected.wgsl b/test/builtins/gen/abs/7faa9e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/7faa9e.wgsl.expected.wgsl
rename to test/builtins/gen/abs/7faa9e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/9c80a6.wgsl b/test/builtins/gen/abs/9c80a6.wgsl
new file mode 100644
index 0000000..7df8995
--- /dev/null
+++ b/test/builtins/gen/abs/9c80a6.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(vec<4, i32>) -> vec<4, i32>
+fn abs_9c80a6() {
+  var res: vec4<i32> = abs(vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_9c80a6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_9c80a6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_9c80a6();
+}
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl b/test/builtins/gen/abs/9c80a6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/9c80a6.wgsl.expected.glsl
rename to test/builtins/gen/abs/9c80a6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.hlsl b/test/builtins/gen/abs/9c80a6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/9c80a6.wgsl.expected.hlsl
rename to test/builtins/gen/abs/9c80a6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.msl b/test/builtins/gen/abs/9c80a6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/9c80a6.wgsl.expected.msl
rename to test/builtins/gen/abs/9c80a6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.spvasm b/test/builtins/gen/abs/9c80a6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/9c80a6.wgsl.expected.spvasm
rename to test/builtins/gen/abs/9c80a6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl.expected.wgsl b/test/builtins/gen/abs/9c80a6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/9c80a6.wgsl.expected.wgsl
rename to test/builtins/gen/abs/9c80a6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/abs/b96037.wgsl b/test/builtins/gen/abs/b96037.wgsl
new file mode 100644
index 0000000..f3a6385
--- /dev/null
+++ b/test/builtins/gen/abs/b96037.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn abs(f32) -> f32
+fn abs_b96037() {
+  var res: f32 = abs(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  abs_b96037();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  abs_b96037();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  abs_b96037();
+}
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.glsl b/test/builtins/gen/abs/b96037.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/abs/b96037.wgsl.expected.glsl
rename to test/builtins/gen/abs/b96037.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.hlsl b/test/builtins/gen/abs/b96037.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/abs/b96037.wgsl.expected.hlsl
rename to test/builtins/gen/abs/b96037.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.msl b/test/builtins/gen/abs/b96037.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/abs/b96037.wgsl.expected.msl
rename to test/builtins/gen/abs/b96037.wgsl.expected.msl
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.spvasm b/test/builtins/gen/abs/b96037.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/abs/b96037.wgsl.expected.spvasm
rename to test/builtins/gen/abs/b96037.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/abs/b96037.wgsl.expected.wgsl b/test/builtins/gen/abs/b96037.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/abs/b96037.wgsl.expected.wgsl
rename to test/builtins/gen/abs/b96037.wgsl.expected.wgsl
diff --git a/test/builtins/gen/acos/489247.wgsl b/test/builtins/gen/acos/489247.wgsl
new file mode 100644
index 0000000..5f6b124
--- /dev/null
+++ b/test/builtins/gen/acos/489247.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn acos(f32) -> f32
+fn acos_489247() {
+  var res: f32 = acos(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  acos_489247();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  acos_489247();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  acos_489247();
+}
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.glsl b/test/builtins/gen/acos/489247.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/acos/489247.wgsl.expected.glsl
rename to test/builtins/gen/acos/489247.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.hlsl b/test/builtins/gen/acos/489247.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/acos/489247.wgsl.expected.hlsl
rename to test/builtins/gen/acos/489247.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.msl b/test/builtins/gen/acos/489247.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/acos/489247.wgsl.expected.msl
rename to test/builtins/gen/acos/489247.wgsl.expected.msl
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.spvasm b/test/builtins/gen/acos/489247.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/acos/489247.wgsl.expected.spvasm
rename to test/builtins/gen/acos/489247.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/acos/489247.wgsl.expected.wgsl b/test/builtins/gen/acos/489247.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/acos/489247.wgsl.expected.wgsl
rename to test/builtins/gen/acos/489247.wgsl.expected.wgsl
diff --git a/test/builtins/gen/acos/8e2acf.wgsl b/test/builtins/gen/acos/8e2acf.wgsl
new file mode 100644
index 0000000..5e18348
--- /dev/null
+++ b/test/builtins/gen/acos/8e2acf.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn acos(vec<4, f32>) -> vec<4, f32>
+fn acos_8e2acf() {
+  var res: vec4<f32> = acos(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  acos_8e2acf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  acos_8e2acf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  acos_8e2acf();
+}
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl b/test/builtins/gen/acos/8e2acf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/acos/8e2acf.wgsl.expected.glsl
rename to test/builtins/gen/acos/8e2acf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.hlsl b/test/builtins/gen/acos/8e2acf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/acos/8e2acf.wgsl.expected.hlsl
rename to test/builtins/gen/acos/8e2acf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.msl b/test/builtins/gen/acos/8e2acf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/acos/8e2acf.wgsl.expected.msl
rename to test/builtins/gen/acos/8e2acf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.spvasm b/test/builtins/gen/acos/8e2acf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/acos/8e2acf.wgsl.expected.spvasm
rename to test/builtins/gen/acos/8e2acf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl.expected.wgsl b/test/builtins/gen/acos/8e2acf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/acos/8e2acf.wgsl.expected.wgsl
rename to test/builtins/gen/acos/8e2acf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/acos/a610c4.wgsl b/test/builtins/gen/acos/a610c4.wgsl
new file mode 100644
index 0000000..88d8cc2
--- /dev/null
+++ b/test/builtins/gen/acos/a610c4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn acos(vec<3, f32>) -> vec<3, f32>
+fn acos_a610c4() {
+  var res: vec3<f32> = acos(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  acos_a610c4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  acos_a610c4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  acos_a610c4();
+}
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl b/test/builtins/gen/acos/a610c4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/acos/a610c4.wgsl.expected.glsl
rename to test/builtins/gen/acos/a610c4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.hlsl b/test/builtins/gen/acos/a610c4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/acos/a610c4.wgsl.expected.hlsl
rename to test/builtins/gen/acos/a610c4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.msl b/test/builtins/gen/acos/a610c4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/acos/a610c4.wgsl.expected.msl
rename to test/builtins/gen/acos/a610c4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.spvasm b/test/builtins/gen/acos/a610c4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/acos/a610c4.wgsl.expected.spvasm
rename to test/builtins/gen/acos/a610c4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl.expected.wgsl b/test/builtins/gen/acos/a610c4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/acos/a610c4.wgsl.expected.wgsl
rename to test/builtins/gen/acos/a610c4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/acos/dfc915.wgsl b/test/builtins/gen/acos/dfc915.wgsl
new file mode 100644
index 0000000..aa36605
--- /dev/null
+++ b/test/builtins/gen/acos/dfc915.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn acos(vec<2, f32>) -> vec<2, f32>
+fn acos_dfc915() {
+  var res: vec2<f32> = acos(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  acos_dfc915();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  acos_dfc915();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  acos_dfc915();
+}
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl b/test/builtins/gen/acos/dfc915.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/acos/dfc915.wgsl.expected.glsl
rename to test/builtins/gen/acos/dfc915.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.hlsl b/test/builtins/gen/acos/dfc915.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/acos/dfc915.wgsl.expected.hlsl
rename to test/builtins/gen/acos/dfc915.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.msl b/test/builtins/gen/acos/dfc915.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/acos/dfc915.wgsl.expected.msl
rename to test/builtins/gen/acos/dfc915.wgsl.expected.msl
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.spvasm b/test/builtins/gen/acos/dfc915.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/acos/dfc915.wgsl.expected.spvasm
rename to test/builtins/gen/acos/dfc915.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl.expected.wgsl b/test/builtins/gen/acos/dfc915.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/acos/dfc915.wgsl.expected.wgsl
rename to test/builtins/gen/acos/dfc915.wgsl.expected.wgsl
diff --git a/test/builtins/gen/all/353d6a.wgsl b/test/builtins/gen/all/353d6a.wgsl
new file mode 100644
index 0000000..985d068
--- /dev/null
+++ b/test/builtins/gen/all/353d6a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn all(bool) -> bool
+fn all_353d6a() {
+  var res: bool = all(bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  all_353d6a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  all_353d6a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  all_353d6a();
+}
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.glsl b/test/builtins/gen/all/353d6a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/all/353d6a.wgsl.expected.glsl
rename to test/builtins/gen/all/353d6a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.hlsl b/test/builtins/gen/all/353d6a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/all/353d6a.wgsl.expected.hlsl
rename to test/builtins/gen/all/353d6a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.msl b/test/builtins/gen/all/353d6a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/all/353d6a.wgsl.expected.msl
rename to test/builtins/gen/all/353d6a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.spvasm b/test/builtins/gen/all/353d6a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/all/353d6a.wgsl.expected.spvasm
rename to test/builtins/gen/all/353d6a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/all/353d6a.wgsl.expected.wgsl b/test/builtins/gen/all/353d6a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/all/353d6a.wgsl.expected.wgsl
rename to test/builtins/gen/all/353d6a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/all/986c7b.wgsl b/test/builtins/gen/all/986c7b.wgsl
new file mode 100644
index 0000000..7f58c25
--- /dev/null
+++ b/test/builtins/gen/all/986c7b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn all(vec<4, bool>) -> bool
+fn all_986c7b() {
+  var res: bool = all(vec4<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  all_986c7b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  all_986c7b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  all_986c7b();
+}
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.glsl b/test/builtins/gen/all/986c7b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/all/986c7b.wgsl.expected.glsl
rename to test/builtins/gen/all/986c7b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.hlsl b/test/builtins/gen/all/986c7b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/all/986c7b.wgsl.expected.hlsl
rename to test/builtins/gen/all/986c7b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.msl b/test/builtins/gen/all/986c7b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/all/986c7b.wgsl.expected.msl
rename to test/builtins/gen/all/986c7b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.spvasm b/test/builtins/gen/all/986c7b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/all/986c7b.wgsl.expected.spvasm
rename to test/builtins/gen/all/986c7b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/all/986c7b.wgsl.expected.wgsl b/test/builtins/gen/all/986c7b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/all/986c7b.wgsl.expected.wgsl
rename to test/builtins/gen/all/986c7b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/all/bd2dba.wgsl b/test/builtins/gen/all/bd2dba.wgsl
new file mode 100644
index 0000000..f36e3f7
--- /dev/null
+++ b/test/builtins/gen/all/bd2dba.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn all(vec<3, bool>) -> bool
+fn all_bd2dba() {
+  var res: bool = all(vec3<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  all_bd2dba();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  all_bd2dba();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  all_bd2dba();
+}
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl b/test/builtins/gen/all/bd2dba.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/all/bd2dba.wgsl.expected.glsl
rename to test/builtins/gen/all/bd2dba.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.hlsl b/test/builtins/gen/all/bd2dba.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/all/bd2dba.wgsl.expected.hlsl
rename to test/builtins/gen/all/bd2dba.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.msl b/test/builtins/gen/all/bd2dba.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/all/bd2dba.wgsl.expected.msl
rename to test/builtins/gen/all/bd2dba.wgsl.expected.msl
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.spvasm b/test/builtins/gen/all/bd2dba.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/all/bd2dba.wgsl.expected.spvasm
rename to test/builtins/gen/all/bd2dba.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl.expected.wgsl b/test/builtins/gen/all/bd2dba.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/all/bd2dba.wgsl.expected.wgsl
rename to test/builtins/gen/all/bd2dba.wgsl.expected.wgsl
diff --git a/test/builtins/gen/all/f46790.wgsl b/test/builtins/gen/all/f46790.wgsl
new file mode 100644
index 0000000..e3e3f72
--- /dev/null
+++ b/test/builtins/gen/all/f46790.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn all(vec<2, bool>) -> bool
+fn all_f46790() {
+  var res: bool = all(vec2<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  all_f46790();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  all_f46790();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  all_f46790();
+}
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.glsl b/test/builtins/gen/all/f46790.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/all/f46790.wgsl.expected.glsl
rename to test/builtins/gen/all/f46790.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.hlsl b/test/builtins/gen/all/f46790.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/all/f46790.wgsl.expected.hlsl
rename to test/builtins/gen/all/f46790.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.msl b/test/builtins/gen/all/f46790.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/all/f46790.wgsl.expected.msl
rename to test/builtins/gen/all/f46790.wgsl.expected.msl
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.spvasm b/test/builtins/gen/all/f46790.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/all/f46790.wgsl.expected.spvasm
rename to test/builtins/gen/all/f46790.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/all/f46790.wgsl.expected.wgsl b/test/builtins/gen/all/f46790.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/all/f46790.wgsl.expected.wgsl
rename to test/builtins/gen/all/f46790.wgsl.expected.wgsl
diff --git a/test/builtins/gen/any/083428.wgsl b/test/builtins/gen/any/083428.wgsl
new file mode 100644
index 0000000..542fbcd
--- /dev/null
+++ b/test/builtins/gen/any/083428.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn any(vec<4, bool>) -> bool
+fn any_083428() {
+  var res: bool = any(vec4<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  any_083428();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  any_083428();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  any_083428();
+}
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.glsl b/test/builtins/gen/any/083428.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/any/083428.wgsl.expected.glsl
rename to test/builtins/gen/any/083428.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.hlsl b/test/builtins/gen/any/083428.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/any/083428.wgsl.expected.hlsl
rename to test/builtins/gen/any/083428.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.msl b/test/builtins/gen/any/083428.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/any/083428.wgsl.expected.msl
rename to test/builtins/gen/any/083428.wgsl.expected.msl
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.spvasm b/test/builtins/gen/any/083428.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/any/083428.wgsl.expected.spvasm
rename to test/builtins/gen/any/083428.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/any/083428.wgsl.expected.wgsl b/test/builtins/gen/any/083428.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/any/083428.wgsl.expected.wgsl
rename to test/builtins/gen/any/083428.wgsl.expected.wgsl
diff --git a/test/builtins/gen/any/0e3e58.wgsl b/test/builtins/gen/any/0e3e58.wgsl
new file mode 100644
index 0000000..506de4c
--- /dev/null
+++ b/test/builtins/gen/any/0e3e58.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn any(vec<2, bool>) -> bool
+fn any_0e3e58() {
+  var res: bool = any(vec2<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  any_0e3e58();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  any_0e3e58();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  any_0e3e58();
+}
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl b/test/builtins/gen/any/0e3e58.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/any/0e3e58.wgsl.expected.glsl
rename to test/builtins/gen/any/0e3e58.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.hlsl b/test/builtins/gen/any/0e3e58.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/any/0e3e58.wgsl.expected.hlsl
rename to test/builtins/gen/any/0e3e58.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.msl b/test/builtins/gen/any/0e3e58.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/any/0e3e58.wgsl.expected.msl
rename to test/builtins/gen/any/0e3e58.wgsl.expected.msl
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.spvasm b/test/builtins/gen/any/0e3e58.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/any/0e3e58.wgsl.expected.spvasm
rename to test/builtins/gen/any/0e3e58.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl.expected.wgsl b/test/builtins/gen/any/0e3e58.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/any/0e3e58.wgsl.expected.wgsl
rename to test/builtins/gen/any/0e3e58.wgsl.expected.wgsl
diff --git a/test/builtins/gen/any/2ab91a.wgsl b/test/builtins/gen/any/2ab91a.wgsl
new file mode 100644
index 0000000..7e32b80
--- /dev/null
+++ b/test/builtins/gen/any/2ab91a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn any(bool) -> bool
+fn any_2ab91a() {
+  var res: bool = any(bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  any_2ab91a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  any_2ab91a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  any_2ab91a();
+}
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl b/test/builtins/gen/any/2ab91a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/any/2ab91a.wgsl.expected.glsl
rename to test/builtins/gen/any/2ab91a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.hlsl b/test/builtins/gen/any/2ab91a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/any/2ab91a.wgsl.expected.hlsl
rename to test/builtins/gen/any/2ab91a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.msl b/test/builtins/gen/any/2ab91a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/any/2ab91a.wgsl.expected.msl
rename to test/builtins/gen/any/2ab91a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.spvasm b/test/builtins/gen/any/2ab91a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/any/2ab91a.wgsl.expected.spvasm
rename to test/builtins/gen/any/2ab91a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl.expected.wgsl b/test/builtins/gen/any/2ab91a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/any/2ab91a.wgsl.expected.wgsl
rename to test/builtins/gen/any/2ab91a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/any/e755c1.wgsl b/test/builtins/gen/any/e755c1.wgsl
new file mode 100644
index 0000000..6362a68
--- /dev/null
+++ b/test/builtins/gen/any/e755c1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn any(vec<3, bool>) -> bool
+fn any_e755c1() {
+  var res: bool = any(vec3<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  any_e755c1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  any_e755c1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  any_e755c1();
+}
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.glsl b/test/builtins/gen/any/e755c1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/any/e755c1.wgsl.expected.glsl
rename to test/builtins/gen/any/e755c1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.hlsl b/test/builtins/gen/any/e755c1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/any/e755c1.wgsl.expected.hlsl
rename to test/builtins/gen/any/e755c1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.msl b/test/builtins/gen/any/e755c1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/any/e755c1.wgsl.expected.msl
rename to test/builtins/gen/any/e755c1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.spvasm b/test/builtins/gen/any/e755c1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/any/e755c1.wgsl.expected.spvasm
rename to test/builtins/gen/any/e755c1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/any/e755c1.wgsl.expected.wgsl b/test/builtins/gen/any/e755c1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/any/e755c1.wgsl.expected.wgsl
rename to test/builtins/gen/any/e755c1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/arrayLength/1588cd.wgsl b/test/builtins/gen/arrayLength/1588cd.wgsl
new file mode 100644
index 0000000..25f05b2
--- /dev/null
+++ b/test/builtins/gen/arrayLength/1588cd.wgsl
@@ -0,0 +1,49 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RO {
+  arg_0: array<i32>;
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn arrayLength(ptr<storage, array<i32>, read>) -> u32
+fn arrayLength_1588cd() {
+  var res: u32 = arrayLength(&sb_ro.arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  arrayLength_1588cd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  arrayLength_1588cd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  arrayLength_1588cd();
+}
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.glsl
rename to test/builtins/gen/arrayLength/1588cd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.hlsl b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.hlsl
rename to test/builtins/gen/arrayLength/1588cd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.msl b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.msl
rename to test/builtins/gen/arrayLength/1588cd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.spvasm b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.spvasm
rename to test/builtins/gen/arrayLength/1588cd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.wgsl b/test/builtins/gen/arrayLength/1588cd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.wgsl
rename to test/builtins/gen/arrayLength/1588cd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/arrayLength/61b1c7.wgsl b/test/builtins/gen/arrayLength/61b1c7.wgsl
new file mode 100644
index 0000000..1bac505
--- /dev/null
+++ b/test/builtins/gen/arrayLength/61b1c7.wgsl
@@ -0,0 +1,49 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: array<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn arrayLength(ptr<storage, array<i32>, read_write>) -> u32
+fn arrayLength_61b1c7() {
+  var res: u32 = arrayLength(&sb_rw.arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  arrayLength_61b1c7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  arrayLength_61b1c7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  arrayLength_61b1c7();
+}
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.glsl
rename to test/builtins/gen/arrayLength/61b1c7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.hlsl b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.hlsl
rename to test/builtins/gen/arrayLength/61b1c7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.msl b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.msl
rename to test/builtins/gen/arrayLength/61b1c7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.spvasm b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.spvasm
rename to test/builtins/gen/arrayLength/61b1c7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.wgsl b/test/builtins/gen/arrayLength/61b1c7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.wgsl
rename to test/builtins/gen/arrayLength/61b1c7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/arrayLength/a0f5ca.wgsl b/test/builtins/gen/arrayLength/a0f5ca.wgsl
new file mode 100644
index 0000000..b313858
--- /dev/null
+++ b/test/builtins/gen/arrayLength/a0f5ca.wgsl
@@ -0,0 +1,49 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RO {
+  arg_0: array<f32>;
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn arrayLength(ptr<storage, array<f32>, read>) -> u32
+fn arrayLength_a0f5ca() {
+  var res: u32 = arrayLength(&sb_ro.arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  arrayLength_a0f5ca();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  arrayLength_a0f5ca();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  arrayLength_a0f5ca();
+}
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.glsl
rename to test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.hlsl b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.hlsl
rename to test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.msl b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.msl
rename to test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.msl
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.spvasm b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.spvasm
rename to test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.wgsl b/test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.wgsl
rename to test/builtins/gen/arrayLength/a0f5ca.wgsl.expected.wgsl
diff --git a/test/builtins/gen/arrayLength/cdd123.wgsl b/test/builtins/gen/arrayLength/cdd123.wgsl
new file mode 100644
index 0000000..0589da2
--- /dev/null
+++ b/test/builtins/gen/arrayLength/cdd123.wgsl
@@ -0,0 +1,49 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: array<f32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn arrayLength(ptr<storage, array<f32>, read_write>) -> u32
+fn arrayLength_cdd123() {
+  var res: u32 = arrayLength(&sb_rw.arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  arrayLength_cdd123();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  arrayLength_cdd123();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  arrayLength_cdd123();
+}
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.glsl
rename to test/builtins/gen/arrayLength/cdd123.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.hlsl b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.hlsl
rename to test/builtins/gen/arrayLength/cdd123.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.msl b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.msl
rename to test/builtins/gen/arrayLength/cdd123.wgsl.expected.msl
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.spvasm b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.spvasm
rename to test/builtins/gen/arrayLength/cdd123.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.wgsl b/test/builtins/gen/arrayLength/cdd123.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.wgsl
rename to test/builtins/gen/arrayLength/cdd123.wgsl.expected.wgsl
diff --git a/test/builtins/gen/arrayLength/cfca0a.wgsl b/test/builtins/gen/arrayLength/cfca0a.wgsl
new file mode 100644
index 0000000..51f628b
--- /dev/null
+++ b/test/builtins/gen/arrayLength/cfca0a.wgsl
@@ -0,0 +1,49 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RO {
+  arg_0: array<u32>;
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn arrayLength(ptr<storage, array<u32>, read>) -> u32
+fn arrayLength_cfca0a() {
+  var res: u32 = arrayLength(&sb_ro.arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  arrayLength_cfca0a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  arrayLength_cfca0a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  arrayLength_cfca0a();
+}
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.glsl
rename to test/builtins/gen/arrayLength/cfca0a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.hlsl b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.hlsl
rename to test/builtins/gen/arrayLength/cfca0a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.msl b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.msl
rename to test/builtins/gen/arrayLength/cfca0a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.spvasm b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.spvasm
rename to test/builtins/gen/arrayLength/cfca0a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.wgsl b/test/builtins/gen/arrayLength/cfca0a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.wgsl
rename to test/builtins/gen/arrayLength/cfca0a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/arrayLength/eb510f.wgsl b/test/builtins/gen/arrayLength/eb510f.wgsl
new file mode 100644
index 0000000..44ade8b
--- /dev/null
+++ b/test/builtins/gen/arrayLength/eb510f.wgsl
@@ -0,0 +1,49 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: array<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn arrayLength(ptr<storage, array<u32>, read_write>) -> u32
+fn arrayLength_eb510f() {
+  var res: u32 = arrayLength(&sb_rw.arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  arrayLength_eb510f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  arrayLength_eb510f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  arrayLength_eb510f();
+}
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.glsl
rename to test/builtins/gen/arrayLength/eb510f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.hlsl b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.hlsl
rename to test/builtins/gen/arrayLength/eb510f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.msl b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.msl
rename to test/builtins/gen/arrayLength/eb510f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.spvasm b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.spvasm
rename to test/builtins/gen/arrayLength/eb510f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.wgsl b/test/builtins/gen/arrayLength/eb510f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.wgsl
rename to test/builtins/gen/arrayLength/eb510f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/asin/064953.wgsl b/test/builtins/gen/asin/064953.wgsl
new file mode 100644
index 0000000..5a08a25
--- /dev/null
+++ b/test/builtins/gen/asin/064953.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn asin(vec<4, f32>) -> vec<4, f32>
+fn asin_064953() {
+  var res: vec4<f32> = asin(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  asin_064953();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  asin_064953();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  asin_064953();
+}
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.glsl b/test/builtins/gen/asin/064953.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/asin/064953.wgsl.expected.glsl
rename to test/builtins/gen/asin/064953.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.hlsl b/test/builtins/gen/asin/064953.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/asin/064953.wgsl.expected.hlsl
rename to test/builtins/gen/asin/064953.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.msl b/test/builtins/gen/asin/064953.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/asin/064953.wgsl.expected.msl
rename to test/builtins/gen/asin/064953.wgsl.expected.msl
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.spvasm b/test/builtins/gen/asin/064953.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/asin/064953.wgsl.expected.spvasm
rename to test/builtins/gen/asin/064953.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/asin/064953.wgsl.expected.wgsl b/test/builtins/gen/asin/064953.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/asin/064953.wgsl.expected.wgsl
rename to test/builtins/gen/asin/064953.wgsl.expected.wgsl
diff --git a/test/builtins/gen/asin/7b6a44.wgsl b/test/builtins/gen/asin/7b6a44.wgsl
new file mode 100644
index 0000000..22ddf8b
--- /dev/null
+++ b/test/builtins/gen/asin/7b6a44.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn asin(vec<2, f32>) -> vec<2, f32>
+fn asin_7b6a44() {
+  var res: vec2<f32> = asin(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  asin_7b6a44();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  asin_7b6a44();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  asin_7b6a44();
+}
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl b/test/builtins/gen/asin/7b6a44.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/asin/7b6a44.wgsl.expected.glsl
rename to test/builtins/gen/asin/7b6a44.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.hlsl b/test/builtins/gen/asin/7b6a44.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/asin/7b6a44.wgsl.expected.hlsl
rename to test/builtins/gen/asin/7b6a44.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.msl b/test/builtins/gen/asin/7b6a44.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/asin/7b6a44.wgsl.expected.msl
rename to test/builtins/gen/asin/7b6a44.wgsl.expected.msl
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.spvasm b/test/builtins/gen/asin/7b6a44.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/asin/7b6a44.wgsl.expected.spvasm
rename to test/builtins/gen/asin/7b6a44.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl.expected.wgsl b/test/builtins/gen/asin/7b6a44.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/asin/7b6a44.wgsl.expected.wgsl
rename to test/builtins/gen/asin/7b6a44.wgsl.expected.wgsl
diff --git a/test/builtins/gen/asin/8cd9c9.wgsl b/test/builtins/gen/asin/8cd9c9.wgsl
new file mode 100644
index 0000000..f5a9266
--- /dev/null
+++ b/test/builtins/gen/asin/8cd9c9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn asin(vec<3, f32>) -> vec<3, f32>
+fn asin_8cd9c9() {
+  var res: vec3<f32> = asin(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  asin_8cd9c9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  asin_8cd9c9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  asin_8cd9c9();
+}
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl b/test/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/asin/8cd9c9.wgsl.expected.glsl
rename to test/builtins/gen/asin/8cd9c9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.hlsl b/test/builtins/gen/asin/8cd9c9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/asin/8cd9c9.wgsl.expected.hlsl
rename to test/builtins/gen/asin/8cd9c9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.msl b/test/builtins/gen/asin/8cd9c9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/asin/8cd9c9.wgsl.expected.msl
rename to test/builtins/gen/asin/8cd9c9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.spvasm b/test/builtins/gen/asin/8cd9c9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/asin/8cd9c9.wgsl.expected.spvasm
rename to test/builtins/gen/asin/8cd9c9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl.expected.wgsl b/test/builtins/gen/asin/8cd9c9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/asin/8cd9c9.wgsl.expected.wgsl
rename to test/builtins/gen/asin/8cd9c9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/asin/c0c272.wgsl b/test/builtins/gen/asin/c0c272.wgsl
new file mode 100644
index 0000000..133657e
--- /dev/null
+++ b/test/builtins/gen/asin/c0c272.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn asin(f32) -> f32
+fn asin_c0c272() {
+  var res: f32 = asin(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  asin_c0c272();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  asin_c0c272();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  asin_c0c272();
+}
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl b/test/builtins/gen/asin/c0c272.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/asin/c0c272.wgsl.expected.glsl
rename to test/builtins/gen/asin/c0c272.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.hlsl b/test/builtins/gen/asin/c0c272.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/asin/c0c272.wgsl.expected.hlsl
rename to test/builtins/gen/asin/c0c272.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.msl b/test/builtins/gen/asin/c0c272.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/asin/c0c272.wgsl.expected.msl
rename to test/builtins/gen/asin/c0c272.wgsl.expected.msl
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.spvasm b/test/builtins/gen/asin/c0c272.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/asin/c0c272.wgsl.expected.spvasm
rename to test/builtins/gen/asin/c0c272.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl.expected.wgsl b/test/builtins/gen/asin/c0c272.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/asin/c0c272.wgsl.expected.wgsl
rename to test/builtins/gen/asin/c0c272.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan/02979a.wgsl b/test/builtins/gen/atan/02979a.wgsl
new file mode 100644
index 0000000..4624dbc
--- /dev/null
+++ b/test/builtins/gen/atan/02979a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan(f32) -> f32
+fn atan_02979a() {
+  var res: f32 = atan(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan_02979a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan_02979a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan_02979a();
+}
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.glsl b/test/builtins/gen/atan/02979a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan/02979a.wgsl.expected.glsl
rename to test/builtins/gen/atan/02979a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.hlsl b/test/builtins/gen/atan/02979a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan/02979a.wgsl.expected.hlsl
rename to test/builtins/gen/atan/02979a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.msl b/test/builtins/gen/atan/02979a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan/02979a.wgsl.expected.msl
rename to test/builtins/gen/atan/02979a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.spvasm b/test/builtins/gen/atan/02979a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan/02979a.wgsl.expected.spvasm
rename to test/builtins/gen/atan/02979a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan/02979a.wgsl.expected.wgsl b/test/builtins/gen/atan/02979a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan/02979a.wgsl.expected.wgsl
rename to test/builtins/gen/atan/02979a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan/331e6d.wgsl b/test/builtins/gen/atan/331e6d.wgsl
new file mode 100644
index 0000000..43d3be6
--- /dev/null
+++ b/test/builtins/gen/atan/331e6d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan(vec<3, f32>) -> vec<3, f32>
+fn atan_331e6d() {
+  var res: vec3<f32> = atan(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan_331e6d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan_331e6d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan_331e6d();
+}
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl b/test/builtins/gen/atan/331e6d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan/331e6d.wgsl.expected.glsl
rename to test/builtins/gen/atan/331e6d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.hlsl b/test/builtins/gen/atan/331e6d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan/331e6d.wgsl.expected.hlsl
rename to test/builtins/gen/atan/331e6d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.msl b/test/builtins/gen/atan/331e6d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan/331e6d.wgsl.expected.msl
rename to test/builtins/gen/atan/331e6d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.spvasm b/test/builtins/gen/atan/331e6d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan/331e6d.wgsl.expected.spvasm
rename to test/builtins/gen/atan/331e6d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl.expected.wgsl b/test/builtins/gen/atan/331e6d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan/331e6d.wgsl.expected.wgsl
rename to test/builtins/gen/atan/331e6d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan/a8b696.wgsl b/test/builtins/gen/atan/a8b696.wgsl
new file mode 100644
index 0000000..4d946e6
--- /dev/null
+++ b/test/builtins/gen/atan/a8b696.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan(vec<4, f32>) -> vec<4, f32>
+fn atan_a8b696() {
+  var res: vec4<f32> = atan(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan_a8b696();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan_a8b696();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan_a8b696();
+}
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl b/test/builtins/gen/atan/a8b696.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan/a8b696.wgsl.expected.glsl
rename to test/builtins/gen/atan/a8b696.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.hlsl b/test/builtins/gen/atan/a8b696.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan/a8b696.wgsl.expected.hlsl
rename to test/builtins/gen/atan/a8b696.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.msl b/test/builtins/gen/atan/a8b696.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan/a8b696.wgsl.expected.msl
rename to test/builtins/gen/atan/a8b696.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.spvasm b/test/builtins/gen/atan/a8b696.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan/a8b696.wgsl.expected.spvasm
rename to test/builtins/gen/atan/a8b696.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl.expected.wgsl b/test/builtins/gen/atan/a8b696.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan/a8b696.wgsl.expected.wgsl
rename to test/builtins/gen/atan/a8b696.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan/ad96e4.wgsl b/test/builtins/gen/atan/ad96e4.wgsl
new file mode 100644
index 0000000..f0d71ed
--- /dev/null
+++ b/test/builtins/gen/atan/ad96e4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan(vec<2, f32>) -> vec<2, f32>
+fn atan_ad96e4() {
+  var res: vec2<f32> = atan(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan_ad96e4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan_ad96e4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan_ad96e4();
+}
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl b/test/builtins/gen/atan/ad96e4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan/ad96e4.wgsl.expected.glsl
rename to test/builtins/gen/atan/ad96e4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.hlsl b/test/builtins/gen/atan/ad96e4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan/ad96e4.wgsl.expected.hlsl
rename to test/builtins/gen/atan/ad96e4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.msl b/test/builtins/gen/atan/ad96e4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan/ad96e4.wgsl.expected.msl
rename to test/builtins/gen/atan/ad96e4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.spvasm b/test/builtins/gen/atan/ad96e4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan/ad96e4.wgsl.expected.spvasm
rename to test/builtins/gen/atan/ad96e4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl.expected.wgsl b/test/builtins/gen/atan/ad96e4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan/ad96e4.wgsl.expected.wgsl
rename to test/builtins/gen/atan/ad96e4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan2/57fb13.wgsl b/test/builtins/gen/atan2/57fb13.wgsl
new file mode 100644
index 0000000..0362c9d
--- /dev/null
+++ b/test/builtins/gen/atan2/57fb13.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan2(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn atan2_57fb13() {
+  var res: vec2<f32> = atan2(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan2_57fb13();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan2_57fb13();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan2_57fb13();
+}
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl b/test/builtins/gen/atan2/57fb13.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan2/57fb13.wgsl.expected.glsl
rename to test/builtins/gen/atan2/57fb13.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.hlsl b/test/builtins/gen/atan2/57fb13.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan2/57fb13.wgsl.expected.hlsl
rename to test/builtins/gen/atan2/57fb13.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.msl b/test/builtins/gen/atan2/57fb13.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan2/57fb13.wgsl.expected.msl
rename to test/builtins/gen/atan2/57fb13.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.spvasm b/test/builtins/gen/atan2/57fb13.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan2/57fb13.wgsl.expected.spvasm
rename to test/builtins/gen/atan2/57fb13.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl.expected.wgsl b/test/builtins/gen/atan2/57fb13.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan2/57fb13.wgsl.expected.wgsl
rename to test/builtins/gen/atan2/57fb13.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan2/96057c.wgsl b/test/builtins/gen/atan2/96057c.wgsl
new file mode 100644
index 0000000..a3bad62
--- /dev/null
+++ b/test/builtins/gen/atan2/96057c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan2(f32, f32) -> f32
+fn atan2_96057c() {
+  var res: f32 = atan2(1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan2_96057c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan2_96057c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan2_96057c();
+}
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl b/test/builtins/gen/atan2/96057c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan2/96057c.wgsl.expected.glsl
rename to test/builtins/gen/atan2/96057c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.hlsl b/test/builtins/gen/atan2/96057c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan2/96057c.wgsl.expected.hlsl
rename to test/builtins/gen/atan2/96057c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.msl b/test/builtins/gen/atan2/96057c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan2/96057c.wgsl.expected.msl
rename to test/builtins/gen/atan2/96057c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.spvasm b/test/builtins/gen/atan2/96057c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan2/96057c.wgsl.expected.spvasm
rename to test/builtins/gen/atan2/96057c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl.expected.wgsl b/test/builtins/gen/atan2/96057c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan2/96057c.wgsl.expected.wgsl
rename to test/builtins/gen/atan2/96057c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan2/a70d0d.wgsl b/test/builtins/gen/atan2/a70d0d.wgsl
new file mode 100644
index 0000000..fe3ec65
--- /dev/null
+++ b/test/builtins/gen/atan2/a70d0d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan2(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn atan2_a70d0d() {
+  var res: vec3<f32> = atan2(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan2_a70d0d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan2_a70d0d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan2_a70d0d();
+}
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl b/test/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan2/a70d0d.wgsl.expected.glsl
rename to test/builtins/gen/atan2/a70d0d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.hlsl b/test/builtins/gen/atan2/a70d0d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan2/a70d0d.wgsl.expected.hlsl
rename to test/builtins/gen/atan2/a70d0d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.msl b/test/builtins/gen/atan2/a70d0d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan2/a70d0d.wgsl.expected.msl
rename to test/builtins/gen/atan2/a70d0d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.spvasm b/test/builtins/gen/atan2/a70d0d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan2/a70d0d.wgsl.expected.spvasm
rename to test/builtins/gen/atan2/a70d0d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl.expected.wgsl b/test/builtins/gen/atan2/a70d0d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan2/a70d0d.wgsl.expected.wgsl
rename to test/builtins/gen/atan2/a70d0d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atan2/ae713e.wgsl b/test/builtins/gen/atan2/ae713e.wgsl
new file mode 100644
index 0000000..50b8b8f
--- /dev/null
+++ b/test/builtins/gen/atan2/ae713e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn atan2(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn atan2_ae713e() {
+  var res: vec4<f32> = atan2(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  atan2_ae713e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atan2_ae713e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atan2_ae713e();
+}
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl b/test/builtins/gen/atan2/ae713e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atan2/ae713e.wgsl.expected.glsl
rename to test/builtins/gen/atan2/ae713e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.hlsl b/test/builtins/gen/atan2/ae713e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atan2/ae713e.wgsl.expected.hlsl
rename to test/builtins/gen/atan2/ae713e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.msl b/test/builtins/gen/atan2/ae713e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atan2/ae713e.wgsl.expected.msl
rename to test/builtins/gen/atan2/ae713e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.spvasm b/test/builtins/gen/atan2/ae713e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atan2/ae713e.wgsl.expected.spvasm
rename to test/builtins/gen/atan2/ae713e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl.expected.wgsl b/test/builtins/gen/atan2/ae713e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atan2/ae713e.wgsl.expected.wgsl
rename to test/builtins/gen/atan2/ae713e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAdd/794055.wgsl b/test/builtins/gen/atomicAdd/794055.wgsl
new file mode 100644
index 0000000..97cf17c
--- /dev/null
+++ b/test/builtins/gen/atomicAdd/794055.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicAdd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicAdd_794055() {
+  var res: i32 = atomicAdd(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAdd_794055();
+}
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/794055.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/794055.wgsl.expected.glsl
rename to test/builtins/gen/atomicAdd/794055.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.hlsl b/test/builtins/gen/atomicAdd/794055.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/794055.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAdd/794055.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.msl b/test/builtins/gen/atomicAdd/794055.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/794055.wgsl.expected.msl
rename to test/builtins/gen/atomicAdd/794055.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.spvasm b/test/builtins/gen/atomicAdd/794055.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/794055.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAdd/794055.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl.expected.wgsl b/test/builtins/gen/atomicAdd/794055.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/794055.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAdd/794055.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAdd/8a199a.wgsl b/test/builtins/gen/atomicAdd/8a199a.wgsl
new file mode 100644
index 0000000..55ef7cf
--- /dev/null
+++ b/test/builtins/gen/atomicAdd/8a199a.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicAdd(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicAdd_8a199a() {
+  var res: u32 = atomicAdd(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicAdd_8a199a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAdd_8a199a();
+}
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
rename to test/builtins/gen/atomicAdd/8a199a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.hlsl b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAdd/8a199a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.msl b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.msl
rename to test/builtins/gen/atomicAdd/8a199a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.spvasm b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAdd/8a199a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.wgsl b/test/builtins/gen/atomicAdd/8a199a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAdd/8a199a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAdd/d32fe4.wgsl b/test/builtins/gen/atomicAdd/d32fe4.wgsl
new file mode 100644
index 0000000..167c225
--- /dev/null
+++ b/test/builtins/gen/atomicAdd/d32fe4.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicAdd(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicAdd_d32fe4() {
+  var res: i32 = atomicAdd(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicAdd_d32fe4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAdd_d32fe4();
+}
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
rename to test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.hlsl b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.msl b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.msl
rename to test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.spvasm b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.wgsl b/test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAdd/d32fe4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAdd/d5db1d.wgsl b/test/builtins/gen/atomicAdd/d5db1d.wgsl
new file mode 100644
index 0000000..aa00e56
--- /dev/null
+++ b/test/builtins/gen/atomicAdd/d5db1d.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicAdd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicAdd_d5db1d() {
+  var res: u32 = atomicAdd(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAdd_d5db1d();
+}
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl b/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.glsl
rename to test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.hlsl b/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.msl b/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.msl
rename to test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.spvasm b/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.wgsl b/test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAdd/d5db1d.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAdd/d5db1d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAnd/152966.wgsl b/test/builtins/gen/atomicAnd/152966.wgsl
new file mode 100644
index 0000000..5e9a323
--- /dev/null
+++ b/test/builtins/gen/atomicAnd/152966.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicAnd(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicAnd_152966() {
+  var res: i32 = atomicAnd(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicAnd_152966();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAnd_152966();
+}
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
rename to test/builtins/gen/atomicAnd/152966.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.hlsl b/test/builtins/gen/atomicAnd/152966.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/152966.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAnd/152966.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.msl b/test/builtins/gen/atomicAnd/152966.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/152966.wgsl.expected.msl
rename to test/builtins/gen/atomicAnd/152966.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.spvasm b/test/builtins/gen/atomicAnd/152966.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/152966.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAnd/152966.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.wgsl b/test/builtins/gen/atomicAnd/152966.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/152966.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAnd/152966.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAnd/34edd3.wgsl b/test/builtins/gen/atomicAnd/34edd3.wgsl
new file mode 100644
index 0000000..a77f6bf
--- /dev/null
+++ b/test/builtins/gen/atomicAnd/34edd3.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicAnd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicAnd_34edd3() {
+  var res: u32 = atomicAnd(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAnd_34edd3();
+}
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.glsl
rename to test/builtins/gen/atomicAnd/34edd3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.hlsl b/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAnd/34edd3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.msl b/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.msl
rename to test/builtins/gen/atomicAnd/34edd3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.spvasm b/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAnd/34edd3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.wgsl b/test/builtins/gen/atomicAnd/34edd3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/34edd3.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAnd/34edd3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAnd/45a819.wgsl b/test/builtins/gen/atomicAnd/45a819.wgsl
new file mode 100644
index 0000000..35979fe
--- /dev/null
+++ b/test/builtins/gen/atomicAnd/45a819.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicAnd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicAnd_45a819() {
+  var res: i32 = atomicAnd(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAnd_45a819();
+}
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/45a819.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.glsl
rename to test/builtins/gen/atomicAnd/45a819.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.hlsl b/test/builtins/gen/atomicAnd/45a819.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAnd/45a819.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.msl b/test/builtins/gen/atomicAnd/45a819.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.msl
rename to test/builtins/gen/atomicAnd/45a819.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.spvasm b/test/builtins/gen/atomicAnd/45a819.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAnd/45a819.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.wgsl b/test/builtins/gen/atomicAnd/45a819.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/45a819.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAnd/45a819.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicAnd/85a8d9.wgsl b/test/builtins/gen/atomicAnd/85a8d9.wgsl
new file mode 100644
index 0000000..bfdd088
--- /dev/null
+++ b/test/builtins/gen/atomicAnd/85a8d9.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicAnd(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicAnd_85a8d9() {
+  var res: u32 = atomicAnd(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicAnd_85a8d9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicAnd_85a8d9();
+}
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
rename to test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.hlsl b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.hlsl
rename to test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.msl b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.msl
rename to test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.spvasm b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.spvasm
rename to test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.wgsl b/test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.wgsl
rename to test/builtins/gen/atomicAnd/85a8d9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl
new file mode 100644
index 0000000..66ffc04
--- /dev/null
+++ b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicCompareExchangeWeak(ptr<storage, atomic<i32>, read_write>, i32, i32) -> vec2<i32>
+fn atomicCompareExchangeWeak_12871c() {
+  var res: vec2<i32> = atomicCompareExchangeWeak(&sb_rw.arg_0, 1, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicCompareExchangeWeak_12871c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicCompareExchangeWeak_12871c();
+}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
rename to test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.hlsl b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.hlsl
rename to test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.msl b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.msl
rename to test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.spvasm b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.spvasm
rename to test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.wgsl
rename to test/builtins/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl
new file mode 100644
index 0000000..f9f15bb
--- /dev/null
+++ b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicCompareExchangeWeak(ptr<storage, atomic<u32>, read_write>, u32, u32) -> vec2<u32>
+fn atomicCompareExchangeWeak_6673da() {
+  var res: vec2<u32> = atomicCompareExchangeWeak(&sb_rw.arg_0, 1u, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicCompareExchangeWeak_6673da();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicCompareExchangeWeak_6673da();
+}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
rename to test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.hlsl b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.hlsl
rename to test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.msl b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.msl
rename to test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.spvasm b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.spvasm
rename to test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.wgsl
rename to test/builtins/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl
new file mode 100644
index 0000000..2f2c251
--- /dev/null
+++ b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicCompareExchangeWeak(ptr<workgroup, atomic<i32>, read_write>, i32, i32) -> vec2<i32>
+fn atomicCompareExchangeWeak_89ea3b() {
+  var res: vec2<i32> = atomicCompareExchangeWeak(&arg_0, 1, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicCompareExchangeWeak_89ea3b();
+}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
rename to test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.hlsl b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.hlsl
rename to test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.msl b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.msl
rename to test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm
rename to test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.wgsl
rename to test/builtins/gen/atomicCompareExchangeWeak/89ea3b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl
new file mode 100644
index 0000000..0df6c0f
--- /dev/null
+++ b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicCompareExchangeWeak(ptr<workgroup, atomic<u32>, read_write>, u32, u32) -> vec2<u32>
+fn atomicCompareExchangeWeak_b2ab2c() {
+  var res: vec2<u32> = atomicCompareExchangeWeak(&arg_0, 1u, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicCompareExchangeWeak_b2ab2c();
+}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
rename to test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.hlsl b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.hlsl
rename to test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.msl b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.msl
rename to test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm
rename to test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.wgsl b/test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.wgsl
rename to test/builtins/gen/atomicCompareExchangeWeak/b2ab2c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicExchange/0a5dca.wgsl b/test/builtins/gen/atomicExchange/0a5dca.wgsl
new file mode 100644
index 0000000..5fb5b65
--- /dev/null
+++ b/test/builtins/gen/atomicExchange/0a5dca.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicExchange(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicExchange_0a5dca() {
+  var res: u32 = atomicExchange(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicExchange_0a5dca();
+}
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.glsl
rename to test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.hlsl b/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.hlsl
rename to test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.msl b/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.msl
rename to test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.spvasm b/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.spvasm
rename to test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.wgsl b/test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/0a5dca.wgsl.expected.wgsl
rename to test/builtins/gen/atomicExchange/0a5dca.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicExchange/d59712.wgsl b/test/builtins/gen/atomicExchange/d59712.wgsl
new file mode 100644
index 0000000..5109bb7
--- /dev/null
+++ b/test/builtins/gen/atomicExchange/d59712.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicExchange(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicExchange_d59712() {
+  var res: u32 = atomicExchange(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicExchange_d59712();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicExchange_d59712();
+}
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
rename to test/builtins/gen/atomicExchange/d59712.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.hlsl b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.hlsl
rename to test/builtins/gen/atomicExchange/d59712.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.msl b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.msl
rename to test/builtins/gen/atomicExchange/d59712.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.spvasm b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.spvasm
rename to test/builtins/gen/atomicExchange/d59712.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.wgsl b/test/builtins/gen/atomicExchange/d59712.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.wgsl
rename to test/builtins/gen/atomicExchange/d59712.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicExchange/e114ba.wgsl b/test/builtins/gen/atomicExchange/e114ba.wgsl
new file mode 100644
index 0000000..bb22f27
--- /dev/null
+++ b/test/builtins/gen/atomicExchange/e114ba.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicExchange(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicExchange_e114ba() {
+  var res: i32 = atomicExchange(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicExchange_e114ba();
+}
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.glsl
rename to test/builtins/gen/atomicExchange/e114ba.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.hlsl b/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.hlsl
rename to test/builtins/gen/atomicExchange/e114ba.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.msl b/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.msl
rename to test/builtins/gen/atomicExchange/e114ba.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.spvasm b/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.spvasm
rename to test/builtins/gen/atomicExchange/e114ba.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.wgsl b/test/builtins/gen/atomicExchange/e114ba.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/e114ba.wgsl.expected.wgsl
rename to test/builtins/gen/atomicExchange/e114ba.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicExchange/f2e22f.wgsl b/test/builtins/gen/atomicExchange/f2e22f.wgsl
new file mode 100644
index 0000000..f9af168
--- /dev/null
+++ b/test/builtins/gen/atomicExchange/f2e22f.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicExchange(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicExchange_f2e22f() {
+  var res: i32 = atomicExchange(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicExchange_f2e22f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicExchange_f2e22f();
+}
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
rename to test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.hlsl b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.hlsl
rename to test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.msl b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.msl
rename to test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.spvasm b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.spvasm
rename to test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.wgsl b/test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.wgsl
rename to test/builtins/gen/atomicExchange/f2e22f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicLoad/0806ad.wgsl b/test/builtins/gen/atomicLoad/0806ad.wgsl
new file mode 100644
index 0000000..61fd4ec
--- /dev/null
+++ b/test/builtins/gen/atomicLoad/0806ad.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicLoad(ptr<storage, atomic<i32>, read_write>) -> i32
+fn atomicLoad_0806ad() {
+  var res: i32 = atomicLoad(&sb_rw.arg_0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicLoad_0806ad();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicLoad_0806ad();
+}
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
rename to test/builtins/gen/atomicLoad/0806ad.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.hlsl b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.hlsl
rename to test/builtins/gen/atomicLoad/0806ad.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.msl b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.msl
rename to test/builtins/gen/atomicLoad/0806ad.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.spvasm b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.spvasm
rename to test/builtins/gen/atomicLoad/0806ad.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.wgsl b/test/builtins/gen/atomicLoad/0806ad.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.wgsl
rename to test/builtins/gen/atomicLoad/0806ad.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicLoad/361bf1.wgsl b/test/builtins/gen/atomicLoad/361bf1.wgsl
new file mode 100644
index 0000000..23841ab
--- /dev/null
+++ b/test/builtins/gen/atomicLoad/361bf1.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicLoad(ptr<workgroup, atomic<u32>, read_write>) -> u32
+fn atomicLoad_361bf1() {
+  var res: u32 = atomicLoad(&arg_0);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicLoad_361bf1();
+}
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.glsl
rename to test/builtins/gen/atomicLoad/361bf1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.hlsl b/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.hlsl
rename to test/builtins/gen/atomicLoad/361bf1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.msl b/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.msl
rename to test/builtins/gen/atomicLoad/361bf1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.spvasm b/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.spvasm
rename to test/builtins/gen/atomicLoad/361bf1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.wgsl b/test/builtins/gen/atomicLoad/361bf1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/361bf1.wgsl.expected.wgsl
rename to test/builtins/gen/atomicLoad/361bf1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicLoad/afcc03.wgsl b/test/builtins/gen/atomicLoad/afcc03.wgsl
new file mode 100644
index 0000000..2f29bbc
--- /dev/null
+++ b/test/builtins/gen/atomicLoad/afcc03.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicLoad(ptr<workgroup, atomic<i32>, read_write>) -> i32
+fn atomicLoad_afcc03() {
+  var res: i32 = atomicLoad(&arg_0);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicLoad_afcc03();
+}
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.glsl
rename to test/builtins/gen/atomicLoad/afcc03.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.hlsl b/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.hlsl
rename to test/builtins/gen/atomicLoad/afcc03.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.msl b/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.msl
rename to test/builtins/gen/atomicLoad/afcc03.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.spvasm b/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.spvasm
rename to test/builtins/gen/atomicLoad/afcc03.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.wgsl b/test/builtins/gen/atomicLoad/afcc03.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/afcc03.wgsl.expected.wgsl
rename to test/builtins/gen/atomicLoad/afcc03.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicLoad/fe6cc3.wgsl b/test/builtins/gen/atomicLoad/fe6cc3.wgsl
new file mode 100644
index 0000000..854e9fe
--- /dev/null
+++ b/test/builtins/gen/atomicLoad/fe6cc3.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicLoad(ptr<storage, atomic<u32>, read_write>) -> u32
+fn atomicLoad_fe6cc3() {
+  var res: u32 = atomicLoad(&sb_rw.arg_0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicLoad_fe6cc3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicLoad_fe6cc3();
+}
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
rename to test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.hlsl b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.hlsl
rename to test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.msl b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.msl
rename to test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.spvasm b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.spvasm
rename to test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.wgsl b/test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.wgsl
rename to test/builtins/gen/atomicLoad/fe6cc3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMax/51b9be.wgsl b/test/builtins/gen/atomicMax/51b9be.wgsl
new file mode 100644
index 0000000..6303854
--- /dev/null
+++ b/test/builtins/gen/atomicMax/51b9be.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicMax(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicMax_51b9be() {
+  var res: u32 = atomicMax(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicMax_51b9be();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMax_51b9be();
+}
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
rename to test/builtins/gen/atomicMax/51b9be.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.hlsl b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMax/51b9be.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.msl b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.msl
rename to test/builtins/gen/atomicMax/51b9be.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.spvasm b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMax/51b9be.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.wgsl b/test/builtins/gen/atomicMax/51b9be.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMax/51b9be.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMax/92aa72.wgsl b/test/builtins/gen/atomicMax/92aa72.wgsl
new file mode 100644
index 0000000..4924d84
--- /dev/null
+++ b/test/builtins/gen/atomicMax/92aa72.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicMax(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicMax_92aa72() {
+  var res: i32 = atomicMax(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicMax_92aa72();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMax_92aa72();
+}
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
rename to test/builtins/gen/atomicMax/92aa72.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.hlsl b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMax/92aa72.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.msl b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.msl
rename to test/builtins/gen/atomicMax/92aa72.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.spvasm b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMax/92aa72.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.wgsl b/test/builtins/gen/atomicMax/92aa72.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMax/92aa72.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMax/a89cc3.wgsl b/test/builtins/gen/atomicMax/a89cc3.wgsl
new file mode 100644
index 0000000..904cea8
--- /dev/null
+++ b/test/builtins/gen/atomicMax/a89cc3.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicMax(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicMax_a89cc3() {
+  var res: i32 = atomicMax(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMax_a89cc3();
+}
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl b/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.glsl
rename to test/builtins/gen/atomicMax/a89cc3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.hlsl b/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMax/a89cc3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.msl b/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.msl
rename to test/builtins/gen/atomicMax/a89cc3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.spvasm b/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMax/a89cc3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.wgsl b/test/builtins/gen/atomicMax/a89cc3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/a89cc3.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMax/a89cc3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMax/beccfc.wgsl b/test/builtins/gen/atomicMax/beccfc.wgsl
new file mode 100644
index 0000000..b26574d
--- /dev/null
+++ b/test/builtins/gen/atomicMax/beccfc.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicMax(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicMax_beccfc() {
+  var res: u32 = atomicMax(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMax_beccfc();
+}
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl b/test/builtins/gen/atomicMax/beccfc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.glsl
rename to test/builtins/gen/atomicMax/beccfc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.hlsl b/test/builtins/gen/atomicMax/beccfc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMax/beccfc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.msl b/test/builtins/gen/atomicMax/beccfc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.msl
rename to test/builtins/gen/atomicMax/beccfc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.spvasm b/test/builtins/gen/atomicMax/beccfc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMax/beccfc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.wgsl b/test/builtins/gen/atomicMax/beccfc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMax/beccfc.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMax/beccfc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMin/278235.wgsl b/test/builtins/gen/atomicMin/278235.wgsl
new file mode 100644
index 0000000..591d091
--- /dev/null
+++ b/test/builtins/gen/atomicMin/278235.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicMin(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicMin_278235() {
+  var res: i32 = atomicMin(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMin_278235();
+}
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl b/test/builtins/gen/atomicMin/278235.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/278235.wgsl.expected.glsl
rename to test/builtins/gen/atomicMin/278235.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.hlsl b/test/builtins/gen/atomicMin/278235.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/278235.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMin/278235.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.msl b/test/builtins/gen/atomicMin/278235.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/278235.wgsl.expected.msl
rename to test/builtins/gen/atomicMin/278235.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.spvasm b/test/builtins/gen/atomicMin/278235.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMin/278235.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMin/278235.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl.expected.wgsl b/test/builtins/gen/atomicMin/278235.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/278235.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMin/278235.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMin/69d383.wgsl b/test/builtins/gen/atomicMin/69d383.wgsl
new file mode 100644
index 0000000..9b435d4
--- /dev/null
+++ b/test/builtins/gen/atomicMin/69d383.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicMin(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicMin_69d383() {
+  var res: u32 = atomicMin(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMin_69d383();
+}
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl b/test/builtins/gen/atomicMin/69d383.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/69d383.wgsl.expected.glsl
rename to test/builtins/gen/atomicMin/69d383.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.hlsl b/test/builtins/gen/atomicMin/69d383.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/69d383.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMin/69d383.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.msl b/test/builtins/gen/atomicMin/69d383.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/69d383.wgsl.expected.msl
rename to test/builtins/gen/atomicMin/69d383.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.spvasm b/test/builtins/gen/atomicMin/69d383.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMin/69d383.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMin/69d383.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl.expected.wgsl b/test/builtins/gen/atomicMin/69d383.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/69d383.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMin/69d383.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMin/8e38dc.wgsl b/test/builtins/gen/atomicMin/8e38dc.wgsl
new file mode 100644
index 0000000..fdde4a5
--- /dev/null
+++ b/test/builtins/gen/atomicMin/8e38dc.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicMin(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicMin_8e38dc() {
+  var res: i32 = atomicMin(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicMin_8e38dc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMin_8e38dc();
+}
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
rename to test/builtins/gen/atomicMin/8e38dc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.hlsl b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMin/8e38dc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.msl b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.msl
rename to test/builtins/gen/atomicMin/8e38dc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.spvasm b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMin/8e38dc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.wgsl b/test/builtins/gen/atomicMin/8e38dc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMin/8e38dc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicMin/c67a74.wgsl b/test/builtins/gen/atomicMin/c67a74.wgsl
new file mode 100644
index 0000000..f55c394
--- /dev/null
+++ b/test/builtins/gen/atomicMin/c67a74.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicMin(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicMin_c67a74() {
+  var res: u32 = atomicMin(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicMin_c67a74();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicMin_c67a74();
+}
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
rename to test/builtins/gen/atomicMin/c67a74.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.hlsl b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.hlsl
rename to test/builtins/gen/atomicMin/c67a74.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.msl b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.msl
rename to test/builtins/gen/atomicMin/c67a74.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.spvasm b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.spvasm
rename to test/builtins/gen/atomicMin/c67a74.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.wgsl b/test/builtins/gen/atomicMin/c67a74.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.wgsl
rename to test/builtins/gen/atomicMin/c67a74.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicOr/5e3d61.wgsl b/test/builtins/gen/atomicOr/5e3d61.wgsl
new file mode 100644
index 0000000..d6a8468
--- /dev/null
+++ b/test/builtins/gen/atomicOr/5e3d61.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicOr(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicOr_5e3d61() {
+  var res: u32 = atomicOr(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicOr_5e3d61();
+}
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl b/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.glsl
rename to test/builtins/gen/atomicOr/5e3d61.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.hlsl b/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.hlsl
rename to test/builtins/gen/atomicOr/5e3d61.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.msl b/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.msl
rename to test/builtins/gen/atomicOr/5e3d61.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.spvasm b/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.spvasm
rename to test/builtins/gen/atomicOr/5e3d61.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.wgsl b/test/builtins/gen/atomicOr/5e3d61.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e3d61.wgsl.expected.wgsl
rename to test/builtins/gen/atomicOr/5e3d61.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicOr/5e95d4.wgsl b/test/builtins/gen/atomicOr/5e95d4.wgsl
new file mode 100644
index 0000000..b66fd0c
--- /dev/null
+++ b/test/builtins/gen/atomicOr/5e95d4.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicOr(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicOr_5e95d4() {
+  var res: u32 = atomicOr(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicOr_5e95d4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicOr_5e95d4();
+}
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
rename to test/builtins/gen/atomicOr/5e95d4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.hlsl b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.hlsl
rename to test/builtins/gen/atomicOr/5e95d4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.msl b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.msl
rename to test/builtins/gen/atomicOr/5e95d4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.spvasm b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.spvasm
rename to test/builtins/gen/atomicOr/5e95d4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.wgsl b/test/builtins/gen/atomicOr/5e95d4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.wgsl
rename to test/builtins/gen/atomicOr/5e95d4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicOr/8d96a0.wgsl b/test/builtins/gen/atomicOr/8d96a0.wgsl
new file mode 100644
index 0000000..2f95738
--- /dev/null
+++ b/test/builtins/gen/atomicOr/8d96a0.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicOr(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicOr_8d96a0() {
+  var res: i32 = atomicOr(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicOr_8d96a0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicOr_8d96a0();
+}
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
rename to test/builtins/gen/atomicOr/8d96a0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.hlsl b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.hlsl
rename to test/builtins/gen/atomicOr/8d96a0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.msl b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.msl
rename to test/builtins/gen/atomicOr/8d96a0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.spvasm b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.spvasm
rename to test/builtins/gen/atomicOr/8d96a0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.wgsl b/test/builtins/gen/atomicOr/8d96a0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.wgsl
rename to test/builtins/gen/atomicOr/8d96a0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicOr/d09248.wgsl b/test/builtins/gen/atomicOr/d09248.wgsl
new file mode 100644
index 0000000..7ffd645
--- /dev/null
+++ b/test/builtins/gen/atomicOr/d09248.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicOr(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicOr_d09248() {
+  var res: i32 = atomicOr(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicOr_d09248();
+}
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl b/test/builtins/gen/atomicOr/d09248.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/d09248.wgsl.expected.glsl
rename to test/builtins/gen/atomicOr/d09248.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.hlsl b/test/builtins/gen/atomicOr/d09248.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/d09248.wgsl.expected.hlsl
rename to test/builtins/gen/atomicOr/d09248.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.msl b/test/builtins/gen/atomicOr/d09248.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/d09248.wgsl.expected.msl
rename to test/builtins/gen/atomicOr/d09248.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.spvasm b/test/builtins/gen/atomicOr/d09248.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicOr/d09248.wgsl.expected.spvasm
rename to test/builtins/gen/atomicOr/d09248.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl.expected.wgsl b/test/builtins/gen/atomicOr/d09248.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicOr/d09248.wgsl.expected.wgsl
rename to test/builtins/gen/atomicOr/d09248.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicStore/726882.wgsl b/test/builtins/gen/atomicStore/726882.wgsl
new file mode 100644
index 0000000..3287e49
--- /dev/null
+++ b/test/builtins/gen/atomicStore/726882.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicStore(ptr<workgroup, atomic<u32>, read_write>, u32)
+fn atomicStore_726882() {
+  atomicStore(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicStore_726882();
+}
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl b/test/builtins/gen/atomicStore/726882.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/726882.wgsl.expected.glsl
rename to test/builtins/gen/atomicStore/726882.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.hlsl b/test/builtins/gen/atomicStore/726882.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/726882.wgsl.expected.hlsl
rename to test/builtins/gen/atomicStore/726882.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.msl b/test/builtins/gen/atomicStore/726882.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/726882.wgsl.expected.msl
rename to test/builtins/gen/atomicStore/726882.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.spvasm b/test/builtins/gen/atomicStore/726882.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicStore/726882.wgsl.expected.spvasm
rename to test/builtins/gen/atomicStore/726882.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl.expected.wgsl b/test/builtins/gen/atomicStore/726882.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/726882.wgsl.expected.wgsl
rename to test/builtins/gen/atomicStore/726882.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicStore/8bea94.wgsl b/test/builtins/gen/atomicStore/8bea94.wgsl
new file mode 100644
index 0000000..bf474e7
--- /dev/null
+++ b/test/builtins/gen/atomicStore/8bea94.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicStore(ptr<workgroup, atomic<i32>, read_write>, i32)
+fn atomicStore_8bea94() {
+  atomicStore(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicStore_8bea94();
+}
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl b/test/builtins/gen/atomicStore/8bea94.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.glsl
rename to test/builtins/gen/atomicStore/8bea94.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.hlsl b/test/builtins/gen/atomicStore/8bea94.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.hlsl
rename to test/builtins/gen/atomicStore/8bea94.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.msl b/test/builtins/gen/atomicStore/8bea94.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.msl
rename to test/builtins/gen/atomicStore/8bea94.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.spvasm b/test/builtins/gen/atomicStore/8bea94.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.spvasm
rename to test/builtins/gen/atomicStore/8bea94.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.wgsl b/test/builtins/gen/atomicStore/8bea94.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/8bea94.wgsl.expected.wgsl
rename to test/builtins/gen/atomicStore/8bea94.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicStore/cdc29e.wgsl b/test/builtins/gen/atomicStore/cdc29e.wgsl
new file mode 100644
index 0000000..362f702
--- /dev/null
+++ b/test/builtins/gen/atomicStore/cdc29e.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicStore(ptr<storage, atomic<u32>, read_write>, u32)
+fn atomicStore_cdc29e() {
+  atomicStore(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicStore_cdc29e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicStore_cdc29e();
+}
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
rename to test/builtins/gen/atomicStore/cdc29e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.hlsl b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.hlsl
rename to test/builtins/gen/atomicStore/cdc29e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.msl b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.msl
rename to test/builtins/gen/atomicStore/cdc29e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.spvasm b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.spvasm
rename to test/builtins/gen/atomicStore/cdc29e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.wgsl b/test/builtins/gen/atomicStore/cdc29e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.wgsl
rename to test/builtins/gen/atomicStore/cdc29e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicStore/d1e9a6.wgsl b/test/builtins/gen/atomicStore/d1e9a6.wgsl
new file mode 100644
index 0000000..0de53f5
--- /dev/null
+++ b/test/builtins/gen/atomicStore/d1e9a6.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicStore(ptr<storage, atomic<i32>, read_write>, i32)
+fn atomicStore_d1e9a6() {
+  atomicStore(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicStore_d1e9a6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicStore_d1e9a6();
+}
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
rename to test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.hlsl b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.hlsl
rename to test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.msl b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.msl
rename to test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.spvasm b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.spvasm
rename to test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.wgsl b/test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.wgsl
rename to test/builtins/gen/atomicStore/d1e9a6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicSub/051100.wgsl b/test/builtins/gen/atomicSub/051100.wgsl
new file mode 100644
index 0000000..818b85f
--- /dev/null
+++ b/test/builtins/gen/atomicSub/051100.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicSub(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicSub_051100() {
+  var res: i32 = atomicSub(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicSub_051100();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicSub_051100();
+}
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl b/test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
rename to test/builtins/gen/atomicSub/051100.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.hlsl b/test/builtins/gen/atomicSub/051100.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/051100.wgsl.expected.hlsl
rename to test/builtins/gen/atomicSub/051100.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.msl b/test/builtins/gen/atomicSub/051100.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/051100.wgsl.expected.msl
rename to test/builtins/gen/atomicSub/051100.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.spvasm b/test/builtins/gen/atomicSub/051100.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicSub/051100.wgsl.expected.spvasm
rename to test/builtins/gen/atomicSub/051100.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.wgsl b/test/builtins/gen/atomicSub/051100.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/051100.wgsl.expected.wgsl
rename to test/builtins/gen/atomicSub/051100.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicSub/0d26c2.wgsl b/test/builtins/gen/atomicSub/0d26c2.wgsl
new file mode 100644
index 0000000..43478d7
--- /dev/null
+++ b/test/builtins/gen/atomicSub/0d26c2.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicSub(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicSub_0d26c2() {
+  var res: u32 = atomicSub(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicSub_0d26c2();
+}
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl b/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.glsl
rename to test/builtins/gen/atomicSub/0d26c2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.hlsl b/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.hlsl
rename to test/builtins/gen/atomicSub/0d26c2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.msl b/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.msl
rename to test/builtins/gen/atomicSub/0d26c2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.spvasm b/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.spvasm
rename to test/builtins/gen/atomicSub/0d26c2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.wgsl b/test/builtins/gen/atomicSub/0d26c2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/0d26c2.wgsl.expected.wgsl
rename to test/builtins/gen/atomicSub/0d26c2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicSub/15bfc9.wgsl b/test/builtins/gen/atomicSub/15bfc9.wgsl
new file mode 100644
index 0000000..8609e9f
--- /dev/null
+++ b/test/builtins/gen/atomicSub/15bfc9.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicSub(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicSub_15bfc9() {
+  var res: u32 = atomicSub(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicSub_15bfc9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicSub_15bfc9();
+}
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
rename to test/builtins/gen/atomicSub/15bfc9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.hlsl b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.hlsl
rename to test/builtins/gen/atomicSub/15bfc9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.msl b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.msl
rename to test/builtins/gen/atomicSub/15bfc9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.spvasm b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.spvasm
rename to test/builtins/gen/atomicSub/15bfc9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.wgsl b/test/builtins/gen/atomicSub/15bfc9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.wgsl
rename to test/builtins/gen/atomicSub/15bfc9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicSub/77883a.wgsl b/test/builtins/gen/atomicSub/77883a.wgsl
new file mode 100644
index 0000000..3ab3abd
--- /dev/null
+++ b/test/builtins/gen/atomicSub/77883a.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicSub(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicSub_77883a() {
+  var res: i32 = atomicSub(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicSub_77883a();
+}
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl b/test/builtins/gen/atomicSub/77883a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/77883a.wgsl.expected.glsl
rename to test/builtins/gen/atomicSub/77883a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.hlsl b/test/builtins/gen/atomicSub/77883a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/77883a.wgsl.expected.hlsl
rename to test/builtins/gen/atomicSub/77883a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.msl b/test/builtins/gen/atomicSub/77883a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/77883a.wgsl.expected.msl
rename to test/builtins/gen/atomicSub/77883a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.spvasm b/test/builtins/gen/atomicSub/77883a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicSub/77883a.wgsl.expected.spvasm
rename to test/builtins/gen/atomicSub/77883a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl.expected.wgsl b/test/builtins/gen/atomicSub/77883a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicSub/77883a.wgsl.expected.wgsl
rename to test/builtins/gen/atomicSub/77883a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicXor/54510e.wgsl b/test/builtins/gen/atomicXor/54510e.wgsl
new file mode 100644
index 0000000..755c218
--- /dev/null
+++ b/test/builtins/gen/atomicXor/54510e.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<u32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicXor(ptr<storage, atomic<u32>, read_write>, u32) -> u32
+fn atomicXor_54510e() {
+  var res: u32 = atomicXor(&sb_rw.arg_0, 1u);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicXor_54510e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicXor_54510e();
+}
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl b/test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
rename to test/builtins/gen/atomicXor/54510e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.hlsl b/test/builtins/gen/atomicXor/54510e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/54510e.wgsl.expected.hlsl
rename to test/builtins/gen/atomicXor/54510e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.msl b/test/builtins/gen/atomicXor/54510e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/54510e.wgsl.expected.msl
rename to test/builtins/gen/atomicXor/54510e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.spvasm b/test/builtins/gen/atomicXor/54510e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicXor/54510e.wgsl.expected.spvasm
rename to test/builtins/gen/atomicXor/54510e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.wgsl b/test/builtins/gen/atomicXor/54510e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/54510e.wgsl.expected.wgsl
rename to test/builtins/gen/atomicXor/54510e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicXor/75dc95.wgsl b/test/builtins/gen/atomicXor/75dc95.wgsl
new file mode 100644
index 0000000..951d732
--- /dev/null
+++ b/test/builtins/gen/atomicXor/75dc95.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<i32>;
+
+// fn atomicXor(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
+fn atomicXor_75dc95() {
+  var res: i32 = atomicXor(&arg_0, 1);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicXor_75dc95();
+}
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl b/test/builtins/gen/atomicXor/75dc95.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.glsl
rename to test/builtins/gen/atomicXor/75dc95.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.hlsl b/test/builtins/gen/atomicXor/75dc95.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.hlsl
rename to test/builtins/gen/atomicXor/75dc95.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.msl b/test/builtins/gen/atomicXor/75dc95.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.msl
rename to test/builtins/gen/atomicXor/75dc95.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.spvasm b/test/builtins/gen/atomicXor/75dc95.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.spvasm
rename to test/builtins/gen/atomicXor/75dc95.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.wgsl b/test/builtins/gen/atomicXor/75dc95.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/75dc95.wgsl.expected.wgsl
rename to test/builtins/gen/atomicXor/75dc95.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicXor/c1b78c.wgsl b/test/builtins/gen/atomicXor/c1b78c.wgsl
new file mode 100644
index 0000000..54c82df
--- /dev/null
+++ b/test/builtins/gen/atomicXor/c1b78c.wgsl
@@ -0,0 +1,43 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+struct SB_RW {
+  arg_0: atomic<i32>;
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn atomicXor(ptr<storage, atomic<i32>, read_write>, i32) -> i32
+fn atomicXor_c1b78c() {
+  var res: i32 = atomicXor(&sb_rw.arg_0, 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  atomicXor_c1b78c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicXor_c1b78c();
+}
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
rename to test/builtins/gen/atomicXor/c1b78c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.hlsl b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.hlsl
rename to test/builtins/gen/atomicXor/c1b78c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.msl b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.msl
rename to test/builtins/gen/atomicXor/c1b78c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.spvasm b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.spvasm
rename to test/builtins/gen/atomicXor/c1b78c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.wgsl b/test/builtins/gen/atomicXor/c1b78c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.wgsl
rename to test/builtins/gen/atomicXor/c1b78c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/atomicXor/c8e6be.wgsl b/test/builtins/gen/atomicXor/c8e6be.wgsl
new file mode 100644
index 0000000..bfc379d
--- /dev/null
+++ b/test/builtins/gen/atomicXor/c8e6be.wgsl
@@ -0,0 +1,35 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+var<workgroup> arg_0: atomic<u32>;
+
+// fn atomicXor(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
+fn atomicXor_c8e6be() {
+  var res: u32 = atomicXor(&arg_0, 1u);
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  atomicXor_c8e6be();
+}
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl b/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.glsl
rename to test/builtins/gen/atomicXor/c8e6be.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.hlsl b/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.hlsl
rename to test/builtins/gen/atomicXor/c8e6be.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.msl b/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.msl
rename to test/builtins/gen/atomicXor/c8e6be.wgsl.expected.msl
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.spvasm b/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.spvasm
rename to test/builtins/gen/atomicXor/c8e6be.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.wgsl b/test/builtins/gen/atomicXor/c8e6be.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/atomicXor/c8e6be.wgsl.expected.wgsl
rename to test/builtins/gen/atomicXor/c8e6be.wgsl.expected.wgsl
diff --git a/test/builtins/gen/ceil/34064b.wgsl b/test/builtins/gen/ceil/34064b.wgsl
new file mode 100644
index 0000000..41f8602
--- /dev/null
+++ b/test/builtins/gen/ceil/34064b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ceil(vec<3, f32>) -> vec<3, f32>
+fn ceil_34064b() {
+  var res: vec3<f32> = ceil(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ceil_34064b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ceil_34064b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ceil_34064b();
+}
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl b/test/builtins/gen/ceil/34064b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ceil/34064b.wgsl.expected.glsl
rename to test/builtins/gen/ceil/34064b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.hlsl b/test/builtins/gen/ceil/34064b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ceil/34064b.wgsl.expected.hlsl
rename to test/builtins/gen/ceil/34064b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.msl b/test/builtins/gen/ceil/34064b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ceil/34064b.wgsl.expected.msl
rename to test/builtins/gen/ceil/34064b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.spvasm b/test/builtins/gen/ceil/34064b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ceil/34064b.wgsl.expected.spvasm
rename to test/builtins/gen/ceil/34064b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl.expected.wgsl b/test/builtins/gen/ceil/34064b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ceil/34064b.wgsl.expected.wgsl
rename to test/builtins/gen/ceil/34064b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/ceil/678655.wgsl b/test/builtins/gen/ceil/678655.wgsl
new file mode 100644
index 0000000..e9d4249
--- /dev/null
+++ b/test/builtins/gen/ceil/678655.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ceil(f32) -> f32
+fn ceil_678655() {
+  var res: f32 = ceil(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ceil_678655();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ceil_678655();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ceil_678655();
+}
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.glsl b/test/builtins/gen/ceil/678655.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ceil/678655.wgsl.expected.glsl
rename to test/builtins/gen/ceil/678655.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.hlsl b/test/builtins/gen/ceil/678655.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ceil/678655.wgsl.expected.hlsl
rename to test/builtins/gen/ceil/678655.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.msl b/test/builtins/gen/ceil/678655.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ceil/678655.wgsl.expected.msl
rename to test/builtins/gen/ceil/678655.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.spvasm b/test/builtins/gen/ceil/678655.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ceil/678655.wgsl.expected.spvasm
rename to test/builtins/gen/ceil/678655.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ceil/678655.wgsl.expected.wgsl b/test/builtins/gen/ceil/678655.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ceil/678655.wgsl.expected.wgsl
rename to test/builtins/gen/ceil/678655.wgsl.expected.wgsl
diff --git a/test/builtins/gen/ceil/96f597.wgsl b/test/builtins/gen/ceil/96f597.wgsl
new file mode 100644
index 0000000..4b21a85
--- /dev/null
+++ b/test/builtins/gen/ceil/96f597.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ceil(vec<2, f32>) -> vec<2, f32>
+fn ceil_96f597() {
+  var res: vec2<f32> = ceil(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ceil_96f597();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ceil_96f597();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ceil_96f597();
+}
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl b/test/builtins/gen/ceil/96f597.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ceil/96f597.wgsl.expected.glsl
rename to test/builtins/gen/ceil/96f597.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.hlsl b/test/builtins/gen/ceil/96f597.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ceil/96f597.wgsl.expected.hlsl
rename to test/builtins/gen/ceil/96f597.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.msl b/test/builtins/gen/ceil/96f597.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ceil/96f597.wgsl.expected.msl
rename to test/builtins/gen/ceil/96f597.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.spvasm b/test/builtins/gen/ceil/96f597.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ceil/96f597.wgsl.expected.spvasm
rename to test/builtins/gen/ceil/96f597.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl.expected.wgsl b/test/builtins/gen/ceil/96f597.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ceil/96f597.wgsl.expected.wgsl
rename to test/builtins/gen/ceil/96f597.wgsl.expected.wgsl
diff --git a/test/builtins/gen/ceil/b74c16.wgsl b/test/builtins/gen/ceil/b74c16.wgsl
new file mode 100644
index 0000000..f80ec4d
--- /dev/null
+++ b/test/builtins/gen/ceil/b74c16.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ceil(vec<4, f32>) -> vec<4, f32>
+fn ceil_b74c16() {
+  var res: vec4<f32> = ceil(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ceil_b74c16();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ceil_b74c16();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ceil_b74c16();
+}
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl b/test/builtins/gen/ceil/b74c16.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ceil/b74c16.wgsl.expected.glsl
rename to test/builtins/gen/ceil/b74c16.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.hlsl b/test/builtins/gen/ceil/b74c16.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ceil/b74c16.wgsl.expected.hlsl
rename to test/builtins/gen/ceil/b74c16.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.msl b/test/builtins/gen/ceil/b74c16.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ceil/b74c16.wgsl.expected.msl
rename to test/builtins/gen/ceil/b74c16.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.spvasm b/test/builtins/gen/ceil/b74c16.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ceil/b74c16.wgsl.expected.spvasm
rename to test/builtins/gen/ceil/b74c16.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl.expected.wgsl b/test/builtins/gen/ceil/b74c16.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ceil/b74c16.wgsl.expected.wgsl
rename to test/builtins/gen/ceil/b74c16.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/0acf8f.wgsl b/test/builtins/gen/clamp/0acf8f.wgsl
new file mode 100644
index 0000000..e7a635b
--- /dev/null
+++ b/test/builtins/gen/clamp/0acf8f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn clamp_0acf8f() {
+  var res: vec2<f32> = clamp(vec2<f32>(), vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_0acf8f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_0acf8f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_0acf8f();
+}
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl b/test/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/0acf8f.wgsl.expected.glsl
rename to test/builtins/gen/clamp/0acf8f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.hlsl b/test/builtins/gen/clamp/0acf8f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/0acf8f.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/0acf8f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.msl b/test/builtins/gen/clamp/0acf8f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/0acf8f.wgsl.expected.msl
rename to test/builtins/gen/clamp/0acf8f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.spvasm b/test/builtins/gen/clamp/0acf8f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/0acf8f.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/0acf8f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl.expected.wgsl b/test/builtins/gen/clamp/0acf8f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/0acf8f.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/0acf8f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/1a32e3.wgsl b/test/builtins/gen/clamp/1a32e3.wgsl
new file mode 100644
index 0000000..a42b965
--- /dev/null
+++ b/test/builtins/gen/clamp/1a32e3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<4, i32>, vec<4, i32>, vec<4, i32>) -> vec<4, i32>
+fn clamp_1a32e3() {
+  var res: vec4<i32> = clamp(vec4<i32>(), vec4<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_1a32e3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_1a32e3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_1a32e3();
+}
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl b/test/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/1a32e3.wgsl.expected.glsl
rename to test/builtins/gen/clamp/1a32e3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.hlsl b/test/builtins/gen/clamp/1a32e3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/1a32e3.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/1a32e3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.msl b/test/builtins/gen/clamp/1a32e3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/1a32e3.wgsl.expected.msl
rename to test/builtins/gen/clamp/1a32e3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.spvasm b/test/builtins/gen/clamp/1a32e3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/1a32e3.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/1a32e3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl.expected.wgsl b/test/builtins/gen/clamp/1a32e3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/1a32e3.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/1a32e3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/2bd567.wgsl b/test/builtins/gen/clamp/2bd567.wgsl
new file mode 100644
index 0000000..9fa69a0
--- /dev/null
+++ b/test/builtins/gen/clamp/2bd567.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(f32, f32, f32) -> f32
+fn clamp_2bd567() {
+  var res: f32 = clamp(1.0, 1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_2bd567();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_2bd567();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_2bd567();
+}
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl b/test/builtins/gen/clamp/2bd567.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bd567.wgsl.expected.glsl
rename to test/builtins/gen/clamp/2bd567.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.hlsl b/test/builtins/gen/clamp/2bd567.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bd567.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/2bd567.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.msl b/test/builtins/gen/clamp/2bd567.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bd567.wgsl.expected.msl
rename to test/builtins/gen/clamp/2bd567.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.spvasm b/test/builtins/gen/clamp/2bd567.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/2bd567.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/2bd567.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl.expected.wgsl b/test/builtins/gen/clamp/2bd567.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bd567.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/2bd567.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/2bde41.wgsl b/test/builtins/gen/clamp/2bde41.wgsl
new file mode 100644
index 0000000..bdc06b9
--- /dev/null
+++ b/test/builtins/gen/clamp/2bde41.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn clamp_2bde41() {
+  var res: vec4<f32> = clamp(vec4<f32>(), vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_2bde41();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_2bde41();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_2bde41();
+}
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl b/test/builtins/gen/clamp/2bde41.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bde41.wgsl.expected.glsl
rename to test/builtins/gen/clamp/2bde41.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.hlsl b/test/builtins/gen/clamp/2bde41.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bde41.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/2bde41.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.msl b/test/builtins/gen/clamp/2bde41.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bde41.wgsl.expected.msl
rename to test/builtins/gen/clamp/2bde41.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.spvasm b/test/builtins/gen/clamp/2bde41.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/2bde41.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/2bde41.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl.expected.wgsl b/test/builtins/gen/clamp/2bde41.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/2bde41.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/2bde41.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/548fc7.wgsl b/test/builtins/gen/clamp/548fc7.wgsl
new file mode 100644
index 0000000..202aecb
--- /dev/null
+++ b/test/builtins/gen/clamp/548fc7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<3, u32>, vec<3, u32>, vec<3, u32>) -> vec<3, u32>
+fn clamp_548fc7() {
+  var res: vec3<u32> = clamp(vec3<u32>(), vec3<u32>(), vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_548fc7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_548fc7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_548fc7();
+}
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl b/test/builtins/gen/clamp/548fc7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/548fc7.wgsl.expected.glsl
rename to test/builtins/gen/clamp/548fc7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.hlsl b/test/builtins/gen/clamp/548fc7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/548fc7.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/548fc7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.msl b/test/builtins/gen/clamp/548fc7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/548fc7.wgsl.expected.msl
rename to test/builtins/gen/clamp/548fc7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.spvasm b/test/builtins/gen/clamp/548fc7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/548fc7.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/548fc7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl.expected.wgsl b/test/builtins/gen/clamp/548fc7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/548fc7.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/548fc7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/5f0819.wgsl b/test/builtins/gen/clamp/5f0819.wgsl
new file mode 100644
index 0000000..5ee0369
--- /dev/null
+++ b/test/builtins/gen/clamp/5f0819.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<3, i32>, vec<3, i32>, vec<3, i32>) -> vec<3, i32>
+fn clamp_5f0819() {
+  var res: vec3<i32> = clamp(vec3<i32>(), vec3<i32>(), vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_5f0819();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_5f0819();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_5f0819();
+}
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl b/test/builtins/gen/clamp/5f0819.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/5f0819.wgsl.expected.glsl
rename to test/builtins/gen/clamp/5f0819.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.hlsl b/test/builtins/gen/clamp/5f0819.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/5f0819.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/5f0819.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.msl b/test/builtins/gen/clamp/5f0819.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/5f0819.wgsl.expected.msl
rename to test/builtins/gen/clamp/5f0819.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.spvasm b/test/builtins/gen/clamp/5f0819.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/5f0819.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/5f0819.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl.expected.wgsl b/test/builtins/gen/clamp/5f0819.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/5f0819.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/5f0819.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/6c1749.wgsl b/test/builtins/gen/clamp/6c1749.wgsl
new file mode 100644
index 0000000..dd62b9c
--- /dev/null
+++ b/test/builtins/gen/clamp/6c1749.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<2, i32>, vec<2, i32>, vec<2, i32>) -> vec<2, i32>
+fn clamp_6c1749() {
+  var res: vec2<i32> = clamp(vec2<i32>(), vec2<i32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_6c1749();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_6c1749();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_6c1749();
+}
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl b/test/builtins/gen/clamp/6c1749.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/6c1749.wgsl.expected.glsl
rename to test/builtins/gen/clamp/6c1749.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.hlsl b/test/builtins/gen/clamp/6c1749.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/6c1749.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/6c1749.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.msl b/test/builtins/gen/clamp/6c1749.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/6c1749.wgsl.expected.msl
rename to test/builtins/gen/clamp/6c1749.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.spvasm b/test/builtins/gen/clamp/6c1749.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/6c1749.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/6c1749.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl.expected.wgsl b/test/builtins/gen/clamp/6c1749.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/6c1749.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/6c1749.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/7706d7.wgsl b/test/builtins/gen/clamp/7706d7.wgsl
new file mode 100644
index 0000000..0ab5c81
--- /dev/null
+++ b/test/builtins/gen/clamp/7706d7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<2, u32>, vec<2, u32>, vec<2, u32>) -> vec<2, u32>
+fn clamp_7706d7() {
+  var res: vec2<u32> = clamp(vec2<u32>(), vec2<u32>(), vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_7706d7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_7706d7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_7706d7();
+}
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl b/test/builtins/gen/clamp/7706d7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/7706d7.wgsl.expected.glsl
rename to test/builtins/gen/clamp/7706d7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.hlsl b/test/builtins/gen/clamp/7706d7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/7706d7.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/7706d7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.msl b/test/builtins/gen/clamp/7706d7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/7706d7.wgsl.expected.msl
rename to test/builtins/gen/clamp/7706d7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.spvasm b/test/builtins/gen/clamp/7706d7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/7706d7.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/7706d7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl.expected.wgsl b/test/builtins/gen/clamp/7706d7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/7706d7.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/7706d7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/867397.wgsl b/test/builtins/gen/clamp/867397.wgsl
new file mode 100644
index 0000000..6a0e4f3
--- /dev/null
+++ b/test/builtins/gen/clamp/867397.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn clamp_867397() {
+  var res: vec3<f32> = clamp(vec3<f32>(), vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_867397();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_867397();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_867397();
+}
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.glsl b/test/builtins/gen/clamp/867397.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/867397.wgsl.expected.glsl
rename to test/builtins/gen/clamp/867397.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.hlsl b/test/builtins/gen/clamp/867397.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/867397.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/867397.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.msl b/test/builtins/gen/clamp/867397.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/867397.wgsl.expected.msl
rename to test/builtins/gen/clamp/867397.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.spvasm b/test/builtins/gen/clamp/867397.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/867397.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/867397.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/867397.wgsl.expected.wgsl b/test/builtins/gen/clamp/867397.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/867397.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/867397.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/a2de25.wgsl b/test/builtins/gen/clamp/a2de25.wgsl
new file mode 100644
index 0000000..671ecbc
--- /dev/null
+++ b/test/builtins/gen/clamp/a2de25.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(u32, u32, u32) -> u32
+fn clamp_a2de25() {
+  var res: u32 = clamp(1u, 1u, 1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_a2de25();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_a2de25();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_a2de25();
+}
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl b/test/builtins/gen/clamp/a2de25.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/a2de25.wgsl.expected.glsl
rename to test/builtins/gen/clamp/a2de25.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.hlsl b/test/builtins/gen/clamp/a2de25.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/a2de25.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/a2de25.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.msl b/test/builtins/gen/clamp/a2de25.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/a2de25.wgsl.expected.msl
rename to test/builtins/gen/clamp/a2de25.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.spvasm b/test/builtins/gen/clamp/a2de25.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/a2de25.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/a2de25.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl.expected.wgsl b/test/builtins/gen/clamp/a2de25.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/a2de25.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/a2de25.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/b07c65.wgsl b/test/builtins/gen/clamp/b07c65.wgsl
new file mode 100644
index 0000000..1616879
--- /dev/null
+++ b/test/builtins/gen/clamp/b07c65.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(i32, i32, i32) -> i32
+fn clamp_b07c65() {
+  var res: i32 = clamp(1, 1, 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_b07c65();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_b07c65();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_b07c65();
+}
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl b/test/builtins/gen/clamp/b07c65.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/b07c65.wgsl.expected.glsl
rename to test/builtins/gen/clamp/b07c65.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.hlsl b/test/builtins/gen/clamp/b07c65.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/b07c65.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/b07c65.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.msl b/test/builtins/gen/clamp/b07c65.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/b07c65.wgsl.expected.msl
rename to test/builtins/gen/clamp/b07c65.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.spvasm b/test/builtins/gen/clamp/b07c65.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/b07c65.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/b07c65.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl.expected.wgsl b/test/builtins/gen/clamp/b07c65.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/b07c65.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/b07c65.wgsl.expected.wgsl
diff --git a/test/builtins/gen/clamp/bd43ce.wgsl b/test/builtins/gen/clamp/bd43ce.wgsl
new file mode 100644
index 0000000..fbdbb70
--- /dev/null
+++ b/test/builtins/gen/clamp/bd43ce.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn clamp(vec<4, u32>, vec<4, u32>, vec<4, u32>) -> vec<4, u32>
+fn clamp_bd43ce() {
+  var res: vec4<u32> = clamp(vec4<u32>(), vec4<u32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  clamp_bd43ce();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  clamp_bd43ce();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  clamp_bd43ce();
+}
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl b/test/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/clamp/bd43ce.wgsl.expected.glsl
rename to test/builtins/gen/clamp/bd43ce.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.hlsl b/test/builtins/gen/clamp/bd43ce.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/clamp/bd43ce.wgsl.expected.hlsl
rename to test/builtins/gen/clamp/bd43ce.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.msl b/test/builtins/gen/clamp/bd43ce.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/clamp/bd43ce.wgsl.expected.msl
rename to test/builtins/gen/clamp/bd43ce.wgsl.expected.msl
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.spvasm b/test/builtins/gen/clamp/bd43ce.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/clamp/bd43ce.wgsl.expected.spvasm
rename to test/builtins/gen/clamp/bd43ce.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl.expected.wgsl b/test/builtins/gen/clamp/bd43ce.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/clamp/bd43ce.wgsl.expected.wgsl
rename to test/builtins/gen/clamp/bd43ce.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cos/16dc15.wgsl b/test/builtins/gen/cos/16dc15.wgsl
new file mode 100644
index 0000000..0e917e3
--- /dev/null
+++ b/test/builtins/gen/cos/16dc15.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cos(vec<3, f32>) -> vec<3, f32>
+fn cos_16dc15() {
+  var res: vec3<f32> = cos(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cos_16dc15();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cos_16dc15();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cos_16dc15();
+}
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl b/test/builtins/gen/cos/16dc15.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cos/16dc15.wgsl.expected.glsl
rename to test/builtins/gen/cos/16dc15.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.hlsl b/test/builtins/gen/cos/16dc15.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cos/16dc15.wgsl.expected.hlsl
rename to test/builtins/gen/cos/16dc15.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.msl b/test/builtins/gen/cos/16dc15.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cos/16dc15.wgsl.expected.msl
rename to test/builtins/gen/cos/16dc15.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.spvasm b/test/builtins/gen/cos/16dc15.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cos/16dc15.wgsl.expected.spvasm
rename to test/builtins/gen/cos/16dc15.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl.expected.wgsl b/test/builtins/gen/cos/16dc15.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cos/16dc15.wgsl.expected.wgsl
rename to test/builtins/gen/cos/16dc15.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cos/29d66d.wgsl b/test/builtins/gen/cos/29d66d.wgsl
new file mode 100644
index 0000000..7c47ea4
--- /dev/null
+++ b/test/builtins/gen/cos/29d66d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cos(vec<4, f32>) -> vec<4, f32>
+fn cos_29d66d() {
+  var res: vec4<f32> = cos(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cos_29d66d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cos_29d66d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cos_29d66d();
+}
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl b/test/builtins/gen/cos/29d66d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cos/29d66d.wgsl.expected.glsl
rename to test/builtins/gen/cos/29d66d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.hlsl b/test/builtins/gen/cos/29d66d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cos/29d66d.wgsl.expected.hlsl
rename to test/builtins/gen/cos/29d66d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.msl b/test/builtins/gen/cos/29d66d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cos/29d66d.wgsl.expected.msl
rename to test/builtins/gen/cos/29d66d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.spvasm b/test/builtins/gen/cos/29d66d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cos/29d66d.wgsl.expected.spvasm
rename to test/builtins/gen/cos/29d66d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl.expected.wgsl b/test/builtins/gen/cos/29d66d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cos/29d66d.wgsl.expected.wgsl
rename to test/builtins/gen/cos/29d66d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cos/c3b486.wgsl b/test/builtins/gen/cos/c3b486.wgsl
new file mode 100644
index 0000000..942f1bd
--- /dev/null
+++ b/test/builtins/gen/cos/c3b486.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cos(vec<2, f32>) -> vec<2, f32>
+fn cos_c3b486() {
+  var res: vec2<f32> = cos(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cos_c3b486();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cos_c3b486();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cos_c3b486();
+}
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl b/test/builtins/gen/cos/c3b486.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cos/c3b486.wgsl.expected.glsl
rename to test/builtins/gen/cos/c3b486.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.hlsl b/test/builtins/gen/cos/c3b486.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cos/c3b486.wgsl.expected.hlsl
rename to test/builtins/gen/cos/c3b486.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.msl b/test/builtins/gen/cos/c3b486.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cos/c3b486.wgsl.expected.msl
rename to test/builtins/gen/cos/c3b486.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.spvasm b/test/builtins/gen/cos/c3b486.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cos/c3b486.wgsl.expected.spvasm
rename to test/builtins/gen/cos/c3b486.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl.expected.wgsl b/test/builtins/gen/cos/c3b486.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cos/c3b486.wgsl.expected.wgsl
rename to test/builtins/gen/cos/c3b486.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cos/c5c28e.wgsl b/test/builtins/gen/cos/c5c28e.wgsl
new file mode 100644
index 0000000..d88b9e1
--- /dev/null
+++ b/test/builtins/gen/cos/c5c28e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cos(f32) -> f32
+fn cos_c5c28e() {
+  var res: f32 = cos(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cos_c5c28e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cos_c5c28e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cos_c5c28e();
+}
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl b/test/builtins/gen/cos/c5c28e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cos/c5c28e.wgsl.expected.glsl
rename to test/builtins/gen/cos/c5c28e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.hlsl b/test/builtins/gen/cos/c5c28e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cos/c5c28e.wgsl.expected.hlsl
rename to test/builtins/gen/cos/c5c28e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.msl b/test/builtins/gen/cos/c5c28e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cos/c5c28e.wgsl.expected.msl
rename to test/builtins/gen/cos/c5c28e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.spvasm b/test/builtins/gen/cos/c5c28e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cos/c5c28e.wgsl.expected.spvasm
rename to test/builtins/gen/cos/c5c28e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl.expected.wgsl b/test/builtins/gen/cos/c5c28e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cos/c5c28e.wgsl.expected.wgsl
rename to test/builtins/gen/cos/c5c28e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cosh/377652.wgsl b/test/builtins/gen/cosh/377652.wgsl
new file mode 100644
index 0000000..ff336ed
--- /dev/null
+++ b/test/builtins/gen/cosh/377652.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cosh(vec<3, f32>) -> vec<3, f32>
+fn cosh_377652() {
+  var res: vec3<f32> = cosh(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cosh_377652();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cosh_377652();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cosh_377652();
+}
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.glsl b/test/builtins/gen/cosh/377652.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cosh/377652.wgsl.expected.glsl
rename to test/builtins/gen/cosh/377652.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.hlsl b/test/builtins/gen/cosh/377652.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cosh/377652.wgsl.expected.hlsl
rename to test/builtins/gen/cosh/377652.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.msl b/test/builtins/gen/cosh/377652.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cosh/377652.wgsl.expected.msl
rename to test/builtins/gen/cosh/377652.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.spvasm b/test/builtins/gen/cosh/377652.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cosh/377652.wgsl.expected.spvasm
rename to test/builtins/gen/cosh/377652.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cosh/377652.wgsl.expected.wgsl b/test/builtins/gen/cosh/377652.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cosh/377652.wgsl.expected.wgsl
rename to test/builtins/gen/cosh/377652.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cosh/c13756.wgsl b/test/builtins/gen/cosh/c13756.wgsl
new file mode 100644
index 0000000..4eadf79
--- /dev/null
+++ b/test/builtins/gen/cosh/c13756.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cosh(vec<2, f32>) -> vec<2, f32>
+fn cosh_c13756() {
+  var res: vec2<f32> = cosh(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cosh_c13756();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cosh_c13756();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cosh_c13756();
+}
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl b/test/builtins/gen/cosh/c13756.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cosh/c13756.wgsl.expected.glsl
rename to test/builtins/gen/cosh/c13756.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.hlsl b/test/builtins/gen/cosh/c13756.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cosh/c13756.wgsl.expected.hlsl
rename to test/builtins/gen/cosh/c13756.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.msl b/test/builtins/gen/cosh/c13756.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cosh/c13756.wgsl.expected.msl
rename to test/builtins/gen/cosh/c13756.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.spvasm b/test/builtins/gen/cosh/c13756.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cosh/c13756.wgsl.expected.spvasm
rename to test/builtins/gen/cosh/c13756.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl.expected.wgsl b/test/builtins/gen/cosh/c13756.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cosh/c13756.wgsl.expected.wgsl
rename to test/builtins/gen/cosh/c13756.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cosh/da92dd.wgsl b/test/builtins/gen/cosh/da92dd.wgsl
new file mode 100644
index 0000000..770696c
--- /dev/null
+++ b/test/builtins/gen/cosh/da92dd.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cosh(f32) -> f32
+fn cosh_da92dd() {
+  var res: f32 = cosh(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cosh_da92dd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cosh_da92dd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cosh_da92dd();
+}
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl b/test/builtins/gen/cosh/da92dd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cosh/da92dd.wgsl.expected.glsl
rename to test/builtins/gen/cosh/da92dd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.hlsl b/test/builtins/gen/cosh/da92dd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cosh/da92dd.wgsl.expected.hlsl
rename to test/builtins/gen/cosh/da92dd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.msl b/test/builtins/gen/cosh/da92dd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cosh/da92dd.wgsl.expected.msl
rename to test/builtins/gen/cosh/da92dd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.spvasm b/test/builtins/gen/cosh/da92dd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cosh/da92dd.wgsl.expected.spvasm
rename to test/builtins/gen/cosh/da92dd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl.expected.wgsl b/test/builtins/gen/cosh/da92dd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cosh/da92dd.wgsl.expected.wgsl
rename to test/builtins/gen/cosh/da92dd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cosh/e0c1de.wgsl b/test/builtins/gen/cosh/e0c1de.wgsl
new file mode 100644
index 0000000..79f948e
--- /dev/null
+++ b/test/builtins/gen/cosh/e0c1de.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cosh(vec<4, f32>) -> vec<4, f32>
+fn cosh_e0c1de() {
+  var res: vec4<f32> = cosh(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cosh_e0c1de();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cosh_e0c1de();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cosh_e0c1de();
+}
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl b/test/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cosh/e0c1de.wgsl.expected.glsl
rename to test/builtins/gen/cosh/e0c1de.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.hlsl b/test/builtins/gen/cosh/e0c1de.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cosh/e0c1de.wgsl.expected.hlsl
rename to test/builtins/gen/cosh/e0c1de.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.msl b/test/builtins/gen/cosh/e0c1de.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cosh/e0c1de.wgsl.expected.msl
rename to test/builtins/gen/cosh/e0c1de.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.spvasm b/test/builtins/gen/cosh/e0c1de.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cosh/e0c1de.wgsl.expected.spvasm
rename to test/builtins/gen/cosh/e0c1de.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl.expected.wgsl b/test/builtins/gen/cosh/e0c1de.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cosh/e0c1de.wgsl.expected.wgsl
rename to test/builtins/gen/cosh/e0c1de.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/0d0e46.wgsl b/test/builtins/gen/countOneBits/0d0e46.wgsl
new file mode 100644
index 0000000..adef749
--- /dev/null
+++ b/test/builtins/gen/countOneBits/0d0e46.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(vec<4, u32>) -> vec<4, u32>
+fn countOneBits_0d0e46() {
+  var res: vec4<u32> = countOneBits(vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_0d0e46();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_0d0e46();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_0d0e46();
+}
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/0d0e46.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/0d0e46.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.msl b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/0d0e46.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/0d0e46.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/0d0e46.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0d0e46.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/0d0e46.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/0f7980.wgsl b/test/builtins/gen/countOneBits/0f7980.wgsl
new file mode 100644
index 0000000..95185f5
--- /dev/null
+++ b/test/builtins/gen/countOneBits/0f7980.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(vec<4, i32>) -> vec<4, i32>
+fn countOneBits_0f7980() {
+  var res: vec4<i32> = countOneBits(vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_0f7980();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_0f7980();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_0f7980();
+}
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/0f7980.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/0f7980.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.msl b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/0f7980.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/0f7980.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/0f7980.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/0f7980.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/0f7980.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/65d2ae.wgsl b/test/builtins/gen/countOneBits/65d2ae.wgsl
new file mode 100644
index 0000000..c0d2bfa
--- /dev/null
+++ b/test/builtins/gen/countOneBits/65d2ae.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(vec<3, i32>) -> vec<3, i32>
+fn countOneBits_65d2ae() {
+  var res: vec3<i32> = countOneBits(vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_65d2ae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_65d2ae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_65d2ae();
+}
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/65d2ae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/65d2ae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.msl b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/65d2ae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/65d2ae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/65d2ae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/65d2ae.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/65d2ae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/690cfc.wgsl b/test/builtins/gen/countOneBits/690cfc.wgsl
new file mode 100644
index 0000000..7770626
--- /dev/null
+++ b/test/builtins/gen/countOneBits/690cfc.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(vec<3, u32>) -> vec<3, u32>
+fn countOneBits_690cfc() {
+  var res: vec3<u32> = countOneBits(vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_690cfc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_690cfc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_690cfc();
+}
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/690cfc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/690cfc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.msl b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/690cfc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/690cfc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/690cfc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/690cfc.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/690cfc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/94fd81.wgsl b/test/builtins/gen/countOneBits/94fd81.wgsl
new file mode 100644
index 0000000..7c4d42f
--- /dev/null
+++ b/test/builtins/gen/countOneBits/94fd81.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(vec<2, u32>) -> vec<2, u32>
+fn countOneBits_94fd81() {
+  var res: vec2<u32> = countOneBits(vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_94fd81();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_94fd81();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_94fd81();
+}
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/94fd81.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/94fd81.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.msl b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/94fd81.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/94fd81.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/94fd81.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/94fd81.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/94fd81.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/ae44f9.wgsl b/test/builtins/gen/countOneBits/ae44f9.wgsl
new file mode 100644
index 0000000..713ab90
--- /dev/null
+++ b/test/builtins/gen/countOneBits/ae44f9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(u32) -> u32
+fn countOneBits_ae44f9() {
+  var res: u32 = countOneBits(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_ae44f9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_ae44f9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_ae44f9();
+}
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/ae44f9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/ae44f9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.msl b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/ae44f9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/ae44f9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/ae44f9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/ae44f9.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/ae44f9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/af90e2.wgsl b/test/builtins/gen/countOneBits/af90e2.wgsl
new file mode 100644
index 0000000..48ea794
--- /dev/null
+++ b/test/builtins/gen/countOneBits/af90e2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(vec<2, i32>) -> vec<2, i32>
+fn countOneBits_af90e2() {
+  var res: vec2<i32> = countOneBits(vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_af90e2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_af90e2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_af90e2();
+}
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/af90e2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/af90e2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.msl b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/af90e2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/af90e2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/af90e2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/af90e2.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/af90e2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/countOneBits/fd88b2.wgsl b/test/builtins/gen/countOneBits/fd88b2.wgsl
new file mode 100644
index 0000000..a0f758d
--- /dev/null
+++ b/test/builtins/gen/countOneBits/fd88b2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn countOneBits(i32) -> i32
+fn countOneBits_fd88b2() {
+  var res: i32 = countOneBits(1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  countOneBits_fd88b2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  countOneBits_fd88b2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  countOneBits_fd88b2();
+}
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.glsl
rename to test/builtins/gen/countOneBits/fd88b2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.hlsl b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.hlsl
rename to test/builtins/gen/countOneBits/fd88b2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.msl b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.msl
rename to test/builtins/gen/countOneBits/fd88b2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.spvasm b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.spvasm
rename to test/builtins/gen/countOneBits/fd88b2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.wgsl b/test/builtins/gen/countOneBits/fd88b2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/countOneBits/fd88b2.wgsl.expected.wgsl
rename to test/builtins/gen/countOneBits/fd88b2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/cross/041cb0.wgsl b/test/builtins/gen/cross/041cb0.wgsl
new file mode 100644
index 0000000..ce0f043
--- /dev/null
+++ b/test/builtins/gen/cross/041cb0.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn cross(vec3<f32>, vec3<f32>) -> vec3<f32>
+fn cross_041cb0() {
+  var res: vec3<f32> = cross(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  cross_041cb0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  cross_041cb0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  cross_041cb0();
+}
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl b/test/builtins/gen/cross/041cb0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/cross/041cb0.wgsl.expected.glsl
rename to test/builtins/gen/cross/041cb0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.hlsl b/test/builtins/gen/cross/041cb0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/cross/041cb0.wgsl.expected.hlsl
rename to test/builtins/gen/cross/041cb0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.msl b/test/builtins/gen/cross/041cb0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/cross/041cb0.wgsl.expected.msl
rename to test/builtins/gen/cross/041cb0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.spvasm b/test/builtins/gen/cross/041cb0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/cross/041cb0.wgsl.expected.spvasm
rename to test/builtins/gen/cross/041cb0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl.expected.wgsl b/test/builtins/gen/cross/041cb0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/cross/041cb0.wgsl.expected.wgsl
rename to test/builtins/gen/cross/041cb0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/degrees/0d170c.wgsl b/test/builtins/gen/degrees/0d170c.wgsl
new file mode 100644
index 0000000..3dc201e
--- /dev/null
+++ b/test/builtins/gen/degrees/0d170c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn degrees(vec<4, f32>) -> vec<4, f32>
+fn degrees_0d170c() {
+  var res: vec4<f32> = degrees(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  degrees_0d170c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  degrees_0d170c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  degrees_0d170c();
+}
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl b/test/builtins/gen/degrees/0d170c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/degrees/0d170c.wgsl.expected.glsl
rename to test/builtins/gen/degrees/0d170c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.hlsl b/test/builtins/gen/degrees/0d170c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/degrees/0d170c.wgsl.expected.hlsl
rename to test/builtins/gen/degrees/0d170c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.msl b/test/builtins/gen/degrees/0d170c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/degrees/0d170c.wgsl.expected.msl
rename to test/builtins/gen/degrees/0d170c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.spvasm b/test/builtins/gen/degrees/0d170c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/degrees/0d170c.wgsl.expected.spvasm
rename to test/builtins/gen/degrees/0d170c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl.expected.wgsl b/test/builtins/gen/degrees/0d170c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/degrees/0d170c.wgsl.expected.wgsl
rename to test/builtins/gen/degrees/0d170c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/degrees/1ad5df.wgsl b/test/builtins/gen/degrees/1ad5df.wgsl
new file mode 100644
index 0000000..d6ec551
--- /dev/null
+++ b/test/builtins/gen/degrees/1ad5df.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn degrees(vec<2, f32>) -> vec<2, f32>
+fn degrees_1ad5df() {
+  var res: vec2<f32> = degrees(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  degrees_1ad5df();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  degrees_1ad5df();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  degrees_1ad5df();
+}
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl b/test/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/degrees/1ad5df.wgsl.expected.glsl
rename to test/builtins/gen/degrees/1ad5df.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.hlsl b/test/builtins/gen/degrees/1ad5df.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/degrees/1ad5df.wgsl.expected.hlsl
rename to test/builtins/gen/degrees/1ad5df.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.msl b/test/builtins/gen/degrees/1ad5df.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/degrees/1ad5df.wgsl.expected.msl
rename to test/builtins/gen/degrees/1ad5df.wgsl.expected.msl
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.spvasm b/test/builtins/gen/degrees/1ad5df.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/degrees/1ad5df.wgsl.expected.spvasm
rename to test/builtins/gen/degrees/1ad5df.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl.expected.wgsl b/test/builtins/gen/degrees/1ad5df.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/degrees/1ad5df.wgsl.expected.wgsl
rename to test/builtins/gen/degrees/1ad5df.wgsl.expected.wgsl
diff --git a/test/builtins/gen/degrees/2af623.wgsl b/test/builtins/gen/degrees/2af623.wgsl
new file mode 100644
index 0000000..55f67d8d
--- /dev/null
+++ b/test/builtins/gen/degrees/2af623.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn degrees(vec<3, f32>) -> vec<3, f32>
+fn degrees_2af623() {
+  var res: vec3<f32> = degrees(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  degrees_2af623();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  degrees_2af623();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  degrees_2af623();
+}
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl b/test/builtins/gen/degrees/2af623.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/degrees/2af623.wgsl.expected.glsl
rename to test/builtins/gen/degrees/2af623.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl.expected.hlsl b/test/builtins/gen/degrees/2af623.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/degrees/2af623.wgsl.expected.hlsl
rename to test/builtins/gen/degrees/2af623.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl.expected.msl b/test/builtins/gen/degrees/2af623.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/degrees/2af623.wgsl.expected.msl
rename to test/builtins/gen/degrees/2af623.wgsl.expected.msl
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl.expected.spvasm b/test/builtins/gen/degrees/2af623.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/degrees/2af623.wgsl.expected.spvasm
rename to test/builtins/gen/degrees/2af623.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl.expected.wgsl b/test/builtins/gen/degrees/2af623.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/degrees/2af623.wgsl.expected.wgsl
rename to test/builtins/gen/degrees/2af623.wgsl.expected.wgsl
diff --git a/test/builtins/gen/degrees/51f705.wgsl b/test/builtins/gen/degrees/51f705.wgsl
new file mode 100644
index 0000000..c55523a
--- /dev/null
+++ b/test/builtins/gen/degrees/51f705.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn degrees(f32) -> f32
+fn degrees_51f705() {
+  var res: f32 = degrees(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  degrees_51f705();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  degrees_51f705();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  degrees_51f705();
+}
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl b/test/builtins/gen/degrees/51f705.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/degrees/51f705.wgsl.expected.glsl
rename to test/builtins/gen/degrees/51f705.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl.expected.hlsl b/test/builtins/gen/degrees/51f705.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/degrees/51f705.wgsl.expected.hlsl
rename to test/builtins/gen/degrees/51f705.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl.expected.msl b/test/builtins/gen/degrees/51f705.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/degrees/51f705.wgsl.expected.msl
rename to test/builtins/gen/degrees/51f705.wgsl.expected.msl
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl.expected.spvasm b/test/builtins/gen/degrees/51f705.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/degrees/51f705.wgsl.expected.spvasm
rename to test/builtins/gen/degrees/51f705.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl.expected.wgsl b/test/builtins/gen/degrees/51f705.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/degrees/51f705.wgsl.expected.wgsl
rename to test/builtins/gen/degrees/51f705.wgsl.expected.wgsl
diff --git a/test/builtins/gen/determinant/2b62ba.wgsl b/test/builtins/gen/determinant/2b62ba.wgsl
new file mode 100644
index 0000000..7189a45
--- /dev/null
+++ b/test/builtins/gen/determinant/2b62ba.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn determinant(mat<3, 3, f32>) -> f32
+fn determinant_2b62ba() {
+  var res: f32 = determinant(mat3x3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  determinant_2b62ba();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  determinant_2b62ba();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  determinant_2b62ba();
+}
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl b/test/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/determinant/2b62ba.wgsl.expected.glsl
rename to test/builtins/gen/determinant/2b62ba.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.hlsl b/test/builtins/gen/determinant/2b62ba.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/determinant/2b62ba.wgsl.expected.hlsl
rename to test/builtins/gen/determinant/2b62ba.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.msl b/test/builtins/gen/determinant/2b62ba.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/determinant/2b62ba.wgsl.expected.msl
rename to test/builtins/gen/determinant/2b62ba.wgsl.expected.msl
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.spvasm b/test/builtins/gen/determinant/2b62ba.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/determinant/2b62ba.wgsl.expected.spvasm
rename to test/builtins/gen/determinant/2b62ba.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl.expected.wgsl b/test/builtins/gen/determinant/2b62ba.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/determinant/2b62ba.wgsl.expected.wgsl
rename to test/builtins/gen/determinant/2b62ba.wgsl.expected.wgsl
diff --git a/test/builtins/gen/determinant/a0a87c.wgsl b/test/builtins/gen/determinant/a0a87c.wgsl
new file mode 100644
index 0000000..31873fa
--- /dev/null
+++ b/test/builtins/gen/determinant/a0a87c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn determinant(mat<4, 4, f32>) -> f32
+fn determinant_a0a87c() {
+  var res: f32 = determinant(mat4x4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  determinant_a0a87c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  determinant_a0a87c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  determinant_a0a87c();
+}
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl b/test/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/determinant/a0a87c.wgsl.expected.glsl
rename to test/builtins/gen/determinant/a0a87c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.hlsl b/test/builtins/gen/determinant/a0a87c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/determinant/a0a87c.wgsl.expected.hlsl
rename to test/builtins/gen/determinant/a0a87c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.msl b/test/builtins/gen/determinant/a0a87c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/determinant/a0a87c.wgsl.expected.msl
rename to test/builtins/gen/determinant/a0a87c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.spvasm b/test/builtins/gen/determinant/a0a87c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/determinant/a0a87c.wgsl.expected.spvasm
rename to test/builtins/gen/determinant/a0a87c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl.expected.wgsl b/test/builtins/gen/determinant/a0a87c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/determinant/a0a87c.wgsl.expected.wgsl
rename to test/builtins/gen/determinant/a0a87c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/determinant/e19305.wgsl b/test/builtins/gen/determinant/e19305.wgsl
new file mode 100644
index 0000000..7b3329e
--- /dev/null
+++ b/test/builtins/gen/determinant/e19305.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn determinant(mat<2, 2, f32>) -> f32
+fn determinant_e19305() {
+  var res: f32 = determinant(mat2x2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  determinant_e19305();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  determinant_e19305();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  determinant_e19305();
+}
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl b/test/builtins/gen/determinant/e19305.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/determinant/e19305.wgsl.expected.glsl
rename to test/builtins/gen/determinant/e19305.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.hlsl b/test/builtins/gen/determinant/e19305.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/determinant/e19305.wgsl.expected.hlsl
rename to test/builtins/gen/determinant/e19305.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.msl b/test/builtins/gen/determinant/e19305.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/determinant/e19305.wgsl.expected.msl
rename to test/builtins/gen/determinant/e19305.wgsl.expected.msl
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.spvasm b/test/builtins/gen/determinant/e19305.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/determinant/e19305.wgsl.expected.spvasm
rename to test/builtins/gen/determinant/e19305.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl.expected.wgsl b/test/builtins/gen/determinant/e19305.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/determinant/e19305.wgsl.expected.wgsl
rename to test/builtins/gen/determinant/e19305.wgsl.expected.wgsl
diff --git a/test/builtins/gen/distance/0657d4.wgsl b/test/builtins/gen/distance/0657d4.wgsl
new file mode 100644
index 0000000..73d4596
--- /dev/null
+++ b/test/builtins/gen/distance/0657d4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn distance(vec<3, f32>, vec<3, f32>) -> f32
+fn distance_0657d4() {
+  var res: f32 = distance(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  distance_0657d4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  distance_0657d4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  distance_0657d4();
+}
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl b/test/builtins/gen/distance/0657d4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/distance/0657d4.wgsl.expected.glsl
rename to test/builtins/gen/distance/0657d4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.hlsl b/test/builtins/gen/distance/0657d4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/distance/0657d4.wgsl.expected.hlsl
rename to test/builtins/gen/distance/0657d4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.msl b/test/builtins/gen/distance/0657d4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/distance/0657d4.wgsl.expected.msl
rename to test/builtins/gen/distance/0657d4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.spvasm b/test/builtins/gen/distance/0657d4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/distance/0657d4.wgsl.expected.spvasm
rename to test/builtins/gen/distance/0657d4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl.expected.wgsl b/test/builtins/gen/distance/0657d4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/distance/0657d4.wgsl.expected.wgsl
rename to test/builtins/gen/distance/0657d4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/distance/9646ea.wgsl b/test/builtins/gen/distance/9646ea.wgsl
new file mode 100644
index 0000000..da013ae
--- /dev/null
+++ b/test/builtins/gen/distance/9646ea.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn distance(vec<4, f32>, vec<4, f32>) -> f32
+fn distance_9646ea() {
+  var res: f32 = distance(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  distance_9646ea();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  distance_9646ea();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  distance_9646ea();
+}
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl b/test/builtins/gen/distance/9646ea.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/distance/9646ea.wgsl.expected.glsl
rename to test/builtins/gen/distance/9646ea.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.hlsl b/test/builtins/gen/distance/9646ea.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/distance/9646ea.wgsl.expected.hlsl
rename to test/builtins/gen/distance/9646ea.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.msl b/test/builtins/gen/distance/9646ea.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/distance/9646ea.wgsl.expected.msl
rename to test/builtins/gen/distance/9646ea.wgsl.expected.msl
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.spvasm b/test/builtins/gen/distance/9646ea.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/distance/9646ea.wgsl.expected.spvasm
rename to test/builtins/gen/distance/9646ea.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl.expected.wgsl b/test/builtins/gen/distance/9646ea.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/distance/9646ea.wgsl.expected.wgsl
rename to test/builtins/gen/distance/9646ea.wgsl.expected.wgsl
diff --git a/test/builtins/gen/distance/aa4055.wgsl b/test/builtins/gen/distance/aa4055.wgsl
new file mode 100644
index 0000000..bce51c6
--- /dev/null
+++ b/test/builtins/gen/distance/aa4055.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn distance(vec<2, f32>, vec<2, f32>) -> f32
+fn distance_aa4055() {
+  var res: f32 = distance(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  distance_aa4055();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  distance_aa4055();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  distance_aa4055();
+}
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl b/test/builtins/gen/distance/aa4055.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/distance/aa4055.wgsl.expected.glsl
rename to test/builtins/gen/distance/aa4055.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.hlsl b/test/builtins/gen/distance/aa4055.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/distance/aa4055.wgsl.expected.hlsl
rename to test/builtins/gen/distance/aa4055.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.msl b/test/builtins/gen/distance/aa4055.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/distance/aa4055.wgsl.expected.msl
rename to test/builtins/gen/distance/aa4055.wgsl.expected.msl
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.spvasm b/test/builtins/gen/distance/aa4055.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/distance/aa4055.wgsl.expected.spvasm
rename to test/builtins/gen/distance/aa4055.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl.expected.wgsl b/test/builtins/gen/distance/aa4055.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/distance/aa4055.wgsl.expected.wgsl
rename to test/builtins/gen/distance/aa4055.wgsl.expected.wgsl
diff --git a/test/builtins/gen/distance/cfed73.wgsl b/test/builtins/gen/distance/cfed73.wgsl
new file mode 100644
index 0000000..9ad9a81
--- /dev/null
+++ b/test/builtins/gen/distance/cfed73.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn distance(f32, f32) -> f32
+fn distance_cfed73() {
+  var res: f32 = distance(1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  distance_cfed73();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  distance_cfed73();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  distance_cfed73();
+}
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl b/test/builtins/gen/distance/cfed73.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/distance/cfed73.wgsl.expected.glsl
rename to test/builtins/gen/distance/cfed73.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.hlsl b/test/builtins/gen/distance/cfed73.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/distance/cfed73.wgsl.expected.hlsl
rename to test/builtins/gen/distance/cfed73.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.msl b/test/builtins/gen/distance/cfed73.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/distance/cfed73.wgsl.expected.msl
rename to test/builtins/gen/distance/cfed73.wgsl.expected.msl
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.spvasm b/test/builtins/gen/distance/cfed73.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/distance/cfed73.wgsl.expected.spvasm
rename to test/builtins/gen/distance/cfed73.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl.expected.wgsl b/test/builtins/gen/distance/cfed73.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/distance/cfed73.wgsl.expected.wgsl
rename to test/builtins/gen/distance/cfed73.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/0c577b.wgsl b/test/builtins/gen/dot/0c577b.wgsl
new file mode 100644
index 0000000..0724d16
--- /dev/null
+++ b/test/builtins/gen/dot/0c577b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<4, f32>, vec<4, f32>) -> f32
+fn dot_0c577b() {
+  var res: f32 = dot(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_0c577b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_0c577b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_0c577b();
+}
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl b/test/builtins/gen/dot/0c577b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/0c577b.wgsl.expected.glsl
rename to test/builtins/gen/dot/0c577b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.hlsl b/test/builtins/gen/dot/0c577b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/0c577b.wgsl.expected.hlsl
rename to test/builtins/gen/dot/0c577b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.msl b/test/builtins/gen/dot/0c577b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/0c577b.wgsl.expected.msl
rename to test/builtins/gen/dot/0c577b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.spvasm b/test/builtins/gen/dot/0c577b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/0c577b.wgsl.expected.spvasm
rename to test/builtins/gen/dot/0c577b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl.expected.wgsl b/test/builtins/gen/dot/0c577b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/0c577b.wgsl.expected.wgsl
rename to test/builtins/gen/dot/0c577b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/7548a0.wgsl b/test/builtins/gen/dot/7548a0.wgsl
new file mode 100644
index 0000000..647c3a7
--- /dev/null
+++ b/test/builtins/gen/dot/7548a0.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<3, u32>, vec<3, u32>) -> u32
+fn dot_7548a0() {
+  var res: u32 = dot(vec3<u32>(), vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_7548a0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_7548a0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_7548a0();
+}
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl b/test/builtins/gen/dot/7548a0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/7548a0.wgsl.expected.glsl
rename to test/builtins/gen/dot/7548a0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.hlsl b/test/builtins/gen/dot/7548a0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/7548a0.wgsl.expected.hlsl
rename to test/builtins/gen/dot/7548a0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.msl b/test/builtins/gen/dot/7548a0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/7548a0.wgsl.expected.msl
rename to test/builtins/gen/dot/7548a0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.spvasm b/test/builtins/gen/dot/7548a0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/7548a0.wgsl.expected.spvasm
rename to test/builtins/gen/dot/7548a0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl.expected.wgsl b/test/builtins/gen/dot/7548a0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/7548a0.wgsl.expected.wgsl
rename to test/builtins/gen/dot/7548a0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/883f0e.wgsl b/test/builtins/gen/dot/883f0e.wgsl
new file mode 100644
index 0000000..4b8db17
--- /dev/null
+++ b/test/builtins/gen/dot/883f0e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<2, f32>, vec<2, f32>) -> f32
+fn dot_883f0e() {
+  var res: f32 = dot(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_883f0e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_883f0e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_883f0e();
+}
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl b/test/builtins/gen/dot/883f0e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/883f0e.wgsl.expected.glsl
rename to test/builtins/gen/dot/883f0e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.hlsl b/test/builtins/gen/dot/883f0e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/883f0e.wgsl.expected.hlsl
rename to test/builtins/gen/dot/883f0e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.msl b/test/builtins/gen/dot/883f0e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/883f0e.wgsl.expected.msl
rename to test/builtins/gen/dot/883f0e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.spvasm b/test/builtins/gen/dot/883f0e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/883f0e.wgsl.expected.spvasm
rename to test/builtins/gen/dot/883f0e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl.expected.wgsl b/test/builtins/gen/dot/883f0e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/883f0e.wgsl.expected.wgsl
rename to test/builtins/gen/dot/883f0e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/97c7ee.wgsl b/test/builtins/gen/dot/97c7ee.wgsl
new file mode 100644
index 0000000..5dc7481
--- /dev/null
+++ b/test/builtins/gen/dot/97c7ee.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<2, u32>, vec<2, u32>) -> u32
+fn dot_97c7ee() {
+  var res: u32 = dot(vec2<u32>(), vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_97c7ee();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_97c7ee();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_97c7ee();
+}
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl b/test/builtins/gen/dot/97c7ee.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/97c7ee.wgsl.expected.glsl
rename to test/builtins/gen/dot/97c7ee.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.hlsl b/test/builtins/gen/dot/97c7ee.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/97c7ee.wgsl.expected.hlsl
rename to test/builtins/gen/dot/97c7ee.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.msl b/test/builtins/gen/dot/97c7ee.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/97c7ee.wgsl.expected.msl
rename to test/builtins/gen/dot/97c7ee.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.spvasm b/test/builtins/gen/dot/97c7ee.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/97c7ee.wgsl.expected.spvasm
rename to test/builtins/gen/dot/97c7ee.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl.expected.wgsl b/test/builtins/gen/dot/97c7ee.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/97c7ee.wgsl.expected.wgsl
rename to test/builtins/gen/dot/97c7ee.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/ba4246.wgsl b/test/builtins/gen/dot/ba4246.wgsl
new file mode 100644
index 0000000..cc7bb12
--- /dev/null
+++ b/test/builtins/gen/dot/ba4246.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<3, f32>, vec<3, f32>) -> f32
+fn dot_ba4246() {
+  var res: f32 = dot(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_ba4246();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_ba4246();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_ba4246();
+}
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl b/test/builtins/gen/dot/ba4246.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/ba4246.wgsl.expected.glsl
rename to test/builtins/gen/dot/ba4246.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.hlsl b/test/builtins/gen/dot/ba4246.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/ba4246.wgsl.expected.hlsl
rename to test/builtins/gen/dot/ba4246.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.msl b/test/builtins/gen/dot/ba4246.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/ba4246.wgsl.expected.msl
rename to test/builtins/gen/dot/ba4246.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.spvasm b/test/builtins/gen/dot/ba4246.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/ba4246.wgsl.expected.spvasm
rename to test/builtins/gen/dot/ba4246.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl.expected.wgsl b/test/builtins/gen/dot/ba4246.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/ba4246.wgsl.expected.wgsl
rename to test/builtins/gen/dot/ba4246.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/e994c7.wgsl b/test/builtins/gen/dot/e994c7.wgsl
new file mode 100644
index 0000000..2fbaa28
--- /dev/null
+++ b/test/builtins/gen/dot/e994c7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<4, u32>, vec<4, u32>) -> u32
+fn dot_e994c7() {
+  var res: u32 = dot(vec4<u32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_e994c7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_e994c7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_e994c7();
+}
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl b/test/builtins/gen/dot/e994c7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/e994c7.wgsl.expected.glsl
rename to test/builtins/gen/dot/e994c7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.hlsl b/test/builtins/gen/dot/e994c7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/e994c7.wgsl.expected.hlsl
rename to test/builtins/gen/dot/e994c7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.msl b/test/builtins/gen/dot/e994c7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/e994c7.wgsl.expected.msl
rename to test/builtins/gen/dot/e994c7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.spvasm b/test/builtins/gen/dot/e994c7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/e994c7.wgsl.expected.spvasm
rename to test/builtins/gen/dot/e994c7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl.expected.wgsl b/test/builtins/gen/dot/e994c7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/e994c7.wgsl.expected.wgsl
rename to test/builtins/gen/dot/e994c7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/ef6b1d.wgsl b/test/builtins/gen/dot/ef6b1d.wgsl
new file mode 100644
index 0000000..3a39735
--- /dev/null
+++ b/test/builtins/gen/dot/ef6b1d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<4, i32>, vec<4, i32>) -> i32
+fn dot_ef6b1d() {
+  var res: i32 = dot(vec4<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_ef6b1d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_ef6b1d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_ef6b1d();
+}
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl b/test/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/ef6b1d.wgsl.expected.glsl
rename to test/builtins/gen/dot/ef6b1d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.hlsl b/test/builtins/gen/dot/ef6b1d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/ef6b1d.wgsl.expected.hlsl
rename to test/builtins/gen/dot/ef6b1d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.msl b/test/builtins/gen/dot/ef6b1d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/ef6b1d.wgsl.expected.msl
rename to test/builtins/gen/dot/ef6b1d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.spvasm b/test/builtins/gen/dot/ef6b1d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/ef6b1d.wgsl.expected.spvasm
rename to test/builtins/gen/dot/ef6b1d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl.expected.wgsl b/test/builtins/gen/dot/ef6b1d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/ef6b1d.wgsl.expected.wgsl
rename to test/builtins/gen/dot/ef6b1d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/f1312c.wgsl b/test/builtins/gen/dot/f1312c.wgsl
new file mode 100644
index 0000000..22e38b1
--- /dev/null
+++ b/test/builtins/gen/dot/f1312c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<3, i32>, vec<3, i32>) -> i32
+fn dot_f1312c() {
+  var res: i32 = dot(vec3<i32>(), vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_f1312c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_f1312c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_f1312c();
+}
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl b/test/builtins/gen/dot/f1312c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/f1312c.wgsl.expected.glsl
rename to test/builtins/gen/dot/f1312c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.hlsl b/test/builtins/gen/dot/f1312c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/f1312c.wgsl.expected.hlsl
rename to test/builtins/gen/dot/f1312c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.msl b/test/builtins/gen/dot/f1312c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/f1312c.wgsl.expected.msl
rename to test/builtins/gen/dot/f1312c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.spvasm b/test/builtins/gen/dot/f1312c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/f1312c.wgsl.expected.spvasm
rename to test/builtins/gen/dot/f1312c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl.expected.wgsl b/test/builtins/gen/dot/f1312c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/f1312c.wgsl.expected.wgsl
rename to test/builtins/gen/dot/f1312c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dot/fc5f7c.wgsl b/test/builtins/gen/dot/fc5f7c.wgsl
new file mode 100644
index 0000000..dda5044
--- /dev/null
+++ b/test/builtins/gen/dot/fc5f7c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dot(vec<2, i32>, vec<2, i32>) -> i32
+fn dot_fc5f7c() {
+  var res: i32 = dot(vec2<i32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  dot_fc5f7c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dot_fc5f7c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  dot_fc5f7c();
+}
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl b/test/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dot/fc5f7c.wgsl.expected.glsl
rename to test/builtins/gen/dot/fc5f7c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.hlsl b/test/builtins/gen/dot/fc5f7c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dot/fc5f7c.wgsl.expected.hlsl
rename to test/builtins/gen/dot/fc5f7c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.msl b/test/builtins/gen/dot/fc5f7c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dot/fc5f7c.wgsl.expected.msl
rename to test/builtins/gen/dot/fc5f7c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.spvasm b/test/builtins/gen/dot/fc5f7c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dot/fc5f7c.wgsl.expected.spvasm
rename to test/builtins/gen/dot/fc5f7c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl.expected.wgsl b/test/builtins/gen/dot/fc5f7c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dot/fc5f7c.wgsl.expected.wgsl
rename to test/builtins/gen/dot/fc5f7c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdx/0763f7.wgsl b/test/builtins/gen/dpdx/0763f7.wgsl
new file mode 100644
index 0000000..003e03f
--- /dev/null
+++ b/test/builtins/gen/dpdx/0763f7.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdx(vec<3, f32>) -> vec<3, f32>
+fn dpdx_0763f7() {
+  var res: vec3<f32> = dpdx(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdx_0763f7();
+}
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl b/test/builtins/gen/dpdx/0763f7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/0763f7.wgsl.expected.glsl
rename to test/builtins/gen/dpdx/0763f7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.hlsl b/test/builtins/gen/dpdx/0763f7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/0763f7.wgsl.expected.hlsl
rename to test/builtins/gen/dpdx/0763f7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.msl b/test/builtins/gen/dpdx/0763f7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdx/0763f7.wgsl.expected.msl
rename to test/builtins/gen/dpdx/0763f7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.spvasm b/test/builtins/gen/dpdx/0763f7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdx/0763f7.wgsl.expected.spvasm
rename to test/builtins/gen/dpdx/0763f7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl.expected.wgsl b/test/builtins/gen/dpdx/0763f7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/0763f7.wgsl.expected.wgsl
rename to test/builtins/gen/dpdx/0763f7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdx/99edb1.wgsl b/test/builtins/gen/dpdx/99edb1.wgsl
new file mode 100644
index 0000000..59f8956
--- /dev/null
+++ b/test/builtins/gen/dpdx/99edb1.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdx(vec<2, f32>) -> vec<2, f32>
+fn dpdx_99edb1() {
+  var res: vec2<f32> = dpdx(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdx_99edb1();
+}
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl b/test/builtins/gen/dpdx/99edb1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/99edb1.wgsl.expected.glsl
rename to test/builtins/gen/dpdx/99edb1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.hlsl b/test/builtins/gen/dpdx/99edb1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/99edb1.wgsl.expected.hlsl
rename to test/builtins/gen/dpdx/99edb1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.msl b/test/builtins/gen/dpdx/99edb1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdx/99edb1.wgsl.expected.msl
rename to test/builtins/gen/dpdx/99edb1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.spvasm b/test/builtins/gen/dpdx/99edb1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdx/99edb1.wgsl.expected.spvasm
rename to test/builtins/gen/dpdx/99edb1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl.expected.wgsl b/test/builtins/gen/dpdx/99edb1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/99edb1.wgsl.expected.wgsl
rename to test/builtins/gen/dpdx/99edb1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdx/c487fa.wgsl b/test/builtins/gen/dpdx/c487fa.wgsl
new file mode 100644
index 0000000..289a97d
--- /dev/null
+++ b/test/builtins/gen/dpdx/c487fa.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdx(vec<4, f32>) -> vec<4, f32>
+fn dpdx_c487fa() {
+  var res: vec4<f32> = dpdx(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdx_c487fa();
+}
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl b/test/builtins/gen/dpdx/c487fa.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/c487fa.wgsl.expected.glsl
rename to test/builtins/gen/dpdx/c487fa.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.hlsl b/test/builtins/gen/dpdx/c487fa.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/c487fa.wgsl.expected.hlsl
rename to test/builtins/gen/dpdx/c487fa.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.msl b/test/builtins/gen/dpdx/c487fa.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdx/c487fa.wgsl.expected.msl
rename to test/builtins/gen/dpdx/c487fa.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.spvasm b/test/builtins/gen/dpdx/c487fa.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdx/c487fa.wgsl.expected.spvasm
rename to test/builtins/gen/dpdx/c487fa.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl.expected.wgsl b/test/builtins/gen/dpdx/c487fa.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/c487fa.wgsl.expected.wgsl
rename to test/builtins/gen/dpdx/c487fa.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdx/e263de.wgsl b/test/builtins/gen/dpdx/e263de.wgsl
new file mode 100644
index 0000000..ff46515
--- /dev/null
+++ b/test/builtins/gen/dpdx/e263de.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdx(f32) -> f32
+fn dpdx_e263de() {
+  var res: f32 = dpdx(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdx_e263de();
+}
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl b/test/builtins/gen/dpdx/e263de.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/e263de.wgsl.expected.glsl
rename to test/builtins/gen/dpdx/e263de.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.hlsl b/test/builtins/gen/dpdx/e263de.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/e263de.wgsl.expected.hlsl
rename to test/builtins/gen/dpdx/e263de.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.msl b/test/builtins/gen/dpdx/e263de.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdx/e263de.wgsl.expected.msl
rename to test/builtins/gen/dpdx/e263de.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.spvasm b/test/builtins/gen/dpdx/e263de.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdx/e263de.wgsl.expected.spvasm
rename to test/builtins/gen/dpdx/e263de.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl.expected.wgsl b/test/builtins/gen/dpdx/e263de.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdx/e263de.wgsl.expected.wgsl
rename to test/builtins/gen/dpdx/e263de.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxCoarse/029152.wgsl b/test/builtins/gen/dpdxCoarse/029152.wgsl
new file mode 100644
index 0000000..7792ffa
--- /dev/null
+++ b/test/builtins/gen/dpdxCoarse/029152.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxCoarse(f32) -> f32
+fn dpdxCoarse_029152() {
+  var res: f32 = dpdxCoarse(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxCoarse_029152();
+}
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl b/test/builtins/gen/dpdxCoarse/029152.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.glsl
rename to test/builtins/gen/dpdxCoarse/029152.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.hlsl b/test/builtins/gen/dpdxCoarse/029152.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxCoarse/029152.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.msl b/test/builtins/gen/dpdxCoarse/029152.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.msl
rename to test/builtins/gen/dpdxCoarse/029152.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.spvasm b/test/builtins/gen/dpdxCoarse/029152.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxCoarse/029152.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.wgsl b/test/builtins/gen/dpdxCoarse/029152.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/029152.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxCoarse/029152.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxCoarse/9581cf.wgsl b/test/builtins/gen/dpdxCoarse/9581cf.wgsl
new file mode 100644
index 0000000..2a08179
--- /dev/null
+++ b/test/builtins/gen/dpdxCoarse/9581cf.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxCoarse(vec<2, f32>) -> vec<2, f32>
+fn dpdxCoarse_9581cf() {
+  var res: vec2<f32> = dpdxCoarse(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxCoarse_9581cf();
+}
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl b/test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
rename to test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.hlsl b/test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.msl b/test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.msl
rename to test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.spvasm b/test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.wgsl b/test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/9581cf.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxCoarse/9581cf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxCoarse/c28641.wgsl b/test/builtins/gen/dpdxCoarse/c28641.wgsl
new file mode 100644
index 0000000..3fe013e
--- /dev/null
+++ b/test/builtins/gen/dpdxCoarse/c28641.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxCoarse(vec<4, f32>) -> vec<4, f32>
+fn dpdxCoarse_c28641() {
+  var res: vec4<f32> = dpdxCoarse(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxCoarse_c28641();
+}
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl b/test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.glsl
rename to test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.hlsl b/test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.msl b/test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.msl
rename to test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.spvasm b/test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.wgsl b/test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/c28641.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxCoarse/c28641.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxCoarse/f64d7b.wgsl b/test/builtins/gen/dpdxCoarse/f64d7b.wgsl
new file mode 100644
index 0000000..e5543ea
--- /dev/null
+++ b/test/builtins/gen/dpdxCoarse/f64d7b.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxCoarse(vec<3, f32>) -> vec<3, f32>
+fn dpdxCoarse_f64d7b() {
+  var res: vec3<f32> = dpdxCoarse(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxCoarse_f64d7b();
+}
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl b/test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
rename to test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.hlsl b/test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.msl b/test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.msl
rename to test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.spvasm b/test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.wgsl b/test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxCoarse/f64d7b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxFine/8c5069.wgsl b/test/builtins/gen/dpdxFine/8c5069.wgsl
new file mode 100644
index 0000000..a19dccd
--- /dev/null
+++ b/test/builtins/gen/dpdxFine/8c5069.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxFine(vec<4, f32>) -> vec<4, f32>
+fn dpdxFine_8c5069() {
+  var res: vec4<f32> = dpdxFine(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxFine_8c5069();
+}
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl b/test/builtins/gen/dpdxFine/8c5069.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.glsl
rename to test/builtins/gen/dpdxFine/8c5069.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.hlsl b/test/builtins/gen/dpdxFine/8c5069.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxFine/8c5069.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.msl b/test/builtins/gen/dpdxFine/8c5069.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.msl
rename to test/builtins/gen/dpdxFine/8c5069.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.spvasm b/test/builtins/gen/dpdxFine/8c5069.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxFine/8c5069.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.wgsl b/test/builtins/gen/dpdxFine/8c5069.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/8c5069.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxFine/8c5069.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxFine/9631de.wgsl b/test/builtins/gen/dpdxFine/9631de.wgsl
new file mode 100644
index 0000000..1c1c50d
--- /dev/null
+++ b/test/builtins/gen/dpdxFine/9631de.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxFine(vec<2, f32>) -> vec<2, f32>
+fn dpdxFine_9631de() {
+  var res: vec2<f32> = dpdxFine(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxFine_9631de();
+}
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl b/test/builtins/gen/dpdxFine/9631de.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.glsl
rename to test/builtins/gen/dpdxFine/9631de.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.hlsl b/test/builtins/gen/dpdxFine/9631de.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxFine/9631de.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.msl b/test/builtins/gen/dpdxFine/9631de.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.msl
rename to test/builtins/gen/dpdxFine/9631de.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.spvasm b/test/builtins/gen/dpdxFine/9631de.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxFine/9631de.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.wgsl b/test/builtins/gen/dpdxFine/9631de.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/9631de.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxFine/9631de.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxFine/f401a2.wgsl b/test/builtins/gen/dpdxFine/f401a2.wgsl
new file mode 100644
index 0000000..d501e7a
--- /dev/null
+++ b/test/builtins/gen/dpdxFine/f401a2.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxFine(f32) -> f32
+fn dpdxFine_f401a2() {
+  var res: f32 = dpdxFine(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxFine_f401a2();
+}
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl b/test/builtins/gen/dpdxFine/f401a2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.glsl
rename to test/builtins/gen/dpdxFine/f401a2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.hlsl b/test/builtins/gen/dpdxFine/f401a2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxFine/f401a2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.msl b/test/builtins/gen/dpdxFine/f401a2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.msl
rename to test/builtins/gen/dpdxFine/f401a2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.spvasm b/test/builtins/gen/dpdxFine/f401a2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxFine/f401a2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.wgsl b/test/builtins/gen/dpdxFine/f401a2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f401a2.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxFine/f401a2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdxFine/f92fb6.wgsl b/test/builtins/gen/dpdxFine/f92fb6.wgsl
new file mode 100644
index 0000000..99f58b7
--- /dev/null
+++ b/test/builtins/gen/dpdxFine/f92fb6.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdxFine(vec<3, f32>) -> vec<3, f32>
+fn dpdxFine_f92fb6() {
+  var res: vec3<f32> = dpdxFine(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdxFine_f92fb6();
+}
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl b/test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.glsl
rename to test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.hlsl b/test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.hlsl
rename to test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.msl b/test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.msl
rename to test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.spvasm b/test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.spvasm
rename to test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.wgsl b/test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdxFine/f92fb6.wgsl.expected.wgsl
rename to test/builtins/gen/dpdxFine/f92fb6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdy/699a05.wgsl b/test/builtins/gen/dpdy/699a05.wgsl
new file mode 100644
index 0000000..6ffa8d8
--- /dev/null
+++ b/test/builtins/gen/dpdy/699a05.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdy(vec<4, f32>) -> vec<4, f32>
+fn dpdy_699a05() {
+  var res: vec4<f32> = dpdy(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdy_699a05();
+}
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl b/test/builtins/gen/dpdy/699a05.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/699a05.wgsl.expected.glsl
rename to test/builtins/gen/dpdy/699a05.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.hlsl b/test/builtins/gen/dpdy/699a05.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/699a05.wgsl.expected.hlsl
rename to test/builtins/gen/dpdy/699a05.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.msl b/test/builtins/gen/dpdy/699a05.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdy/699a05.wgsl.expected.msl
rename to test/builtins/gen/dpdy/699a05.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.spvasm b/test/builtins/gen/dpdy/699a05.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdy/699a05.wgsl.expected.spvasm
rename to test/builtins/gen/dpdy/699a05.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl.expected.wgsl b/test/builtins/gen/dpdy/699a05.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/699a05.wgsl.expected.wgsl
rename to test/builtins/gen/dpdy/699a05.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdy/7f8d84.wgsl b/test/builtins/gen/dpdy/7f8d84.wgsl
new file mode 100644
index 0000000..0298c49
--- /dev/null
+++ b/test/builtins/gen/dpdy/7f8d84.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdy(f32) -> f32
+fn dpdy_7f8d84() {
+  var res: f32 = dpdy(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdy_7f8d84();
+}
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl b/test/builtins/gen/dpdy/7f8d84.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.glsl
rename to test/builtins/gen/dpdy/7f8d84.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.hlsl b/test/builtins/gen/dpdy/7f8d84.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.hlsl
rename to test/builtins/gen/dpdy/7f8d84.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.msl b/test/builtins/gen/dpdy/7f8d84.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.msl
rename to test/builtins/gen/dpdy/7f8d84.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.spvasm b/test/builtins/gen/dpdy/7f8d84.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.spvasm
rename to test/builtins/gen/dpdy/7f8d84.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.wgsl b/test/builtins/gen/dpdy/7f8d84.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/7f8d84.wgsl.expected.wgsl
rename to test/builtins/gen/dpdy/7f8d84.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdy/a8b56e.wgsl b/test/builtins/gen/dpdy/a8b56e.wgsl
new file mode 100644
index 0000000..62408d5
--- /dev/null
+++ b/test/builtins/gen/dpdy/a8b56e.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdy(vec<2, f32>) -> vec<2, f32>
+fn dpdy_a8b56e() {
+  var res: vec2<f32> = dpdy(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdy_a8b56e();
+}
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl b/test/builtins/gen/dpdy/a8b56e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.glsl
rename to test/builtins/gen/dpdy/a8b56e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.hlsl b/test/builtins/gen/dpdy/a8b56e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.hlsl
rename to test/builtins/gen/dpdy/a8b56e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.msl b/test/builtins/gen/dpdy/a8b56e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.msl
rename to test/builtins/gen/dpdy/a8b56e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.spvasm b/test/builtins/gen/dpdy/a8b56e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.spvasm
rename to test/builtins/gen/dpdy/a8b56e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.wgsl b/test/builtins/gen/dpdy/a8b56e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/a8b56e.wgsl.expected.wgsl
rename to test/builtins/gen/dpdy/a8b56e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdy/feb40f.wgsl b/test/builtins/gen/dpdy/feb40f.wgsl
new file mode 100644
index 0000000..e6ff720
--- /dev/null
+++ b/test/builtins/gen/dpdy/feb40f.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdy(vec<3, f32>) -> vec<3, f32>
+fn dpdy_feb40f() {
+  var res: vec3<f32> = dpdy(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdy_feb40f();
+}
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl b/test/builtins/gen/dpdy/feb40f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/feb40f.wgsl.expected.glsl
rename to test/builtins/gen/dpdy/feb40f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.hlsl b/test/builtins/gen/dpdy/feb40f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/feb40f.wgsl.expected.hlsl
rename to test/builtins/gen/dpdy/feb40f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.msl b/test/builtins/gen/dpdy/feb40f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdy/feb40f.wgsl.expected.msl
rename to test/builtins/gen/dpdy/feb40f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.spvasm b/test/builtins/gen/dpdy/feb40f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdy/feb40f.wgsl.expected.spvasm
rename to test/builtins/gen/dpdy/feb40f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl.expected.wgsl b/test/builtins/gen/dpdy/feb40f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdy/feb40f.wgsl.expected.wgsl
rename to test/builtins/gen/dpdy/feb40f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl b/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl
new file mode 100644
index 0000000..5817c55
--- /dev/null
+++ b/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyCoarse(vec<2, f32>) -> vec<2, f32>
+fn dpdyCoarse_3e1ab4() {
+  var res: vec2<f32> = dpdyCoarse(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyCoarse_3e1ab4();
+}
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl b/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
rename to test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.hlsl b/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.msl b/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.msl
rename to test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.spvasm b/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.wgsl b/test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyCoarse/445d24.wgsl b/test/builtins/gen/dpdyCoarse/445d24.wgsl
new file mode 100644
index 0000000..9206d8f
--- /dev/null
+++ b/test/builtins/gen/dpdyCoarse/445d24.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyCoarse(vec<4, f32>) -> vec<4, f32>
+fn dpdyCoarse_445d24() {
+  var res: vec4<f32> = dpdyCoarse(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyCoarse_445d24();
+}
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl b/test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.glsl
rename to test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.hlsl b/test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.msl b/test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.msl
rename to test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.spvasm b/test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.wgsl b/test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/445d24.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyCoarse/445d24.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyCoarse/870a7e.wgsl b/test/builtins/gen/dpdyCoarse/870a7e.wgsl
new file mode 100644
index 0000000..81f0cd2
--- /dev/null
+++ b/test/builtins/gen/dpdyCoarse/870a7e.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyCoarse(f32) -> f32
+fn dpdyCoarse_870a7e() {
+  var res: f32 = dpdyCoarse(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyCoarse_870a7e();
+}
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl b/test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
rename to test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.hlsl b/test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.msl b/test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.msl
rename to test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.spvasm b/test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.wgsl b/test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/870a7e.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyCoarse/870a7e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyCoarse/ae1873.wgsl b/test/builtins/gen/dpdyCoarse/ae1873.wgsl
new file mode 100644
index 0000000..ec0b565
--- /dev/null
+++ b/test/builtins/gen/dpdyCoarse/ae1873.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyCoarse(vec<3, f32>) -> vec<3, f32>
+fn dpdyCoarse_ae1873() {
+  var res: vec3<f32> = dpdyCoarse(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyCoarse_ae1873();
+}
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl b/test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
rename to test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.hlsl b/test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.msl b/test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.msl
rename to test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.spvasm b/test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.wgsl b/test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyCoarse/ae1873.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyCoarse/ae1873.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyFine/1fb7ab.wgsl b/test/builtins/gen/dpdyFine/1fb7ab.wgsl
new file mode 100644
index 0000000..28d6efc
--- /dev/null
+++ b/test/builtins/gen/dpdyFine/1fb7ab.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyFine(vec<3, f32>) -> vec<3, f32>
+fn dpdyFine_1fb7ab() {
+  var res: vec3<f32> = dpdyFine(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyFine_1fb7ab();
+}
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl b/test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
rename to test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.hlsl b/test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.msl b/test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.msl
rename to test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.spvasm b/test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.wgsl b/test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/1fb7ab.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyFine/1fb7ab.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyFine/6eb673.wgsl b/test/builtins/gen/dpdyFine/6eb673.wgsl
new file mode 100644
index 0000000..87c154a
--- /dev/null
+++ b/test/builtins/gen/dpdyFine/6eb673.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyFine(f32) -> f32
+fn dpdyFine_6eb673() {
+  var res: f32 = dpdyFine(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyFine_6eb673();
+}
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl b/test/builtins/gen/dpdyFine/6eb673.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.glsl
rename to test/builtins/gen/dpdyFine/6eb673.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.hlsl b/test/builtins/gen/dpdyFine/6eb673.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyFine/6eb673.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.msl b/test/builtins/gen/dpdyFine/6eb673.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.msl
rename to test/builtins/gen/dpdyFine/6eb673.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.spvasm b/test/builtins/gen/dpdyFine/6eb673.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyFine/6eb673.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.wgsl b/test/builtins/gen/dpdyFine/6eb673.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/6eb673.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyFine/6eb673.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyFine/d0a648.wgsl b/test/builtins/gen/dpdyFine/d0a648.wgsl
new file mode 100644
index 0000000..d5477f8
--- /dev/null
+++ b/test/builtins/gen/dpdyFine/d0a648.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyFine(vec<4, f32>) -> vec<4, f32>
+fn dpdyFine_d0a648() {
+  var res: vec4<f32> = dpdyFine(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyFine_d0a648();
+}
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl b/test/builtins/gen/dpdyFine/d0a648.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.glsl
rename to test/builtins/gen/dpdyFine/d0a648.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.hlsl b/test/builtins/gen/dpdyFine/d0a648.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyFine/d0a648.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.msl b/test/builtins/gen/dpdyFine/d0a648.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.msl
rename to test/builtins/gen/dpdyFine/d0a648.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.spvasm b/test/builtins/gen/dpdyFine/d0a648.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyFine/d0a648.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.wgsl b/test/builtins/gen/dpdyFine/d0a648.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/d0a648.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyFine/d0a648.wgsl.expected.wgsl
diff --git a/test/builtins/gen/dpdyFine/df33aa.wgsl b/test/builtins/gen/dpdyFine/df33aa.wgsl
new file mode 100644
index 0000000..e2206ef
--- /dev/null
+++ b/test/builtins/gen/dpdyFine/df33aa.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn dpdyFine(vec<2, f32>) -> vec<2, f32>
+fn dpdyFine_df33aa() {
+  var res: vec2<f32> = dpdyFine(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  dpdyFine_df33aa();
+}
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl b/test/builtins/gen/dpdyFine/df33aa.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.glsl
rename to test/builtins/gen/dpdyFine/df33aa.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.hlsl b/test/builtins/gen/dpdyFine/df33aa.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.hlsl
rename to test/builtins/gen/dpdyFine/df33aa.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.msl b/test/builtins/gen/dpdyFine/df33aa.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.msl
rename to test/builtins/gen/dpdyFine/df33aa.wgsl.expected.msl
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.spvasm b/test/builtins/gen/dpdyFine/df33aa.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.spvasm
rename to test/builtins/gen/dpdyFine/df33aa.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.wgsl b/test/builtins/gen/dpdyFine/df33aa.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/dpdyFine/df33aa.wgsl.expected.wgsl
rename to test/builtins/gen/dpdyFine/df33aa.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp/0f70eb.wgsl b/test/builtins/gen/exp/0f70eb.wgsl
new file mode 100644
index 0000000..2798c27
--- /dev/null
+++ b/test/builtins/gen/exp/0f70eb.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp(vec<4, f32>) -> vec<4, f32>
+fn exp_0f70eb() {
+  var res: vec4<f32> = exp(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp_0f70eb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp_0f70eb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp_0f70eb();
+}
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl b/test/builtins/gen/exp/0f70eb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp/0f70eb.wgsl.expected.glsl
rename to test/builtins/gen/exp/0f70eb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.hlsl b/test/builtins/gen/exp/0f70eb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp/0f70eb.wgsl.expected.hlsl
rename to test/builtins/gen/exp/0f70eb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.msl b/test/builtins/gen/exp/0f70eb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp/0f70eb.wgsl.expected.msl
rename to test/builtins/gen/exp/0f70eb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.spvasm b/test/builtins/gen/exp/0f70eb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp/0f70eb.wgsl.expected.spvasm
rename to test/builtins/gen/exp/0f70eb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl.expected.wgsl b/test/builtins/gen/exp/0f70eb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp/0f70eb.wgsl.expected.wgsl
rename to test/builtins/gen/exp/0f70eb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp/1951e7.wgsl b/test/builtins/gen/exp/1951e7.wgsl
new file mode 100644
index 0000000..085a58f
--- /dev/null
+++ b/test/builtins/gen/exp/1951e7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp(vec<2, f32>) -> vec<2, f32>
+fn exp_1951e7() {
+  var res: vec2<f32> = exp(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp_1951e7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp_1951e7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp_1951e7();
+}
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl b/test/builtins/gen/exp/1951e7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp/1951e7.wgsl.expected.glsl
rename to test/builtins/gen/exp/1951e7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.hlsl b/test/builtins/gen/exp/1951e7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp/1951e7.wgsl.expected.hlsl
rename to test/builtins/gen/exp/1951e7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.msl b/test/builtins/gen/exp/1951e7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp/1951e7.wgsl.expected.msl
rename to test/builtins/gen/exp/1951e7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.spvasm b/test/builtins/gen/exp/1951e7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp/1951e7.wgsl.expected.spvasm
rename to test/builtins/gen/exp/1951e7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl.expected.wgsl b/test/builtins/gen/exp/1951e7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp/1951e7.wgsl.expected.wgsl
rename to test/builtins/gen/exp/1951e7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp/771fd2.wgsl b/test/builtins/gen/exp/771fd2.wgsl
new file mode 100644
index 0000000..f7bb800
--- /dev/null
+++ b/test/builtins/gen/exp/771fd2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp(f32) -> f32
+fn exp_771fd2() {
+  var res: f32 = exp(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp_771fd2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp_771fd2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp_771fd2();
+}
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl b/test/builtins/gen/exp/771fd2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp/771fd2.wgsl.expected.glsl
rename to test/builtins/gen/exp/771fd2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.hlsl b/test/builtins/gen/exp/771fd2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp/771fd2.wgsl.expected.hlsl
rename to test/builtins/gen/exp/771fd2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.msl b/test/builtins/gen/exp/771fd2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp/771fd2.wgsl.expected.msl
rename to test/builtins/gen/exp/771fd2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.spvasm b/test/builtins/gen/exp/771fd2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp/771fd2.wgsl.expected.spvasm
rename to test/builtins/gen/exp/771fd2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl.expected.wgsl b/test/builtins/gen/exp/771fd2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp/771fd2.wgsl.expected.wgsl
rename to test/builtins/gen/exp/771fd2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp/d98450.wgsl b/test/builtins/gen/exp/d98450.wgsl
new file mode 100644
index 0000000..caf87a5
--- /dev/null
+++ b/test/builtins/gen/exp/d98450.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp(vec<3, f32>) -> vec<3, f32>
+fn exp_d98450() {
+  var res: vec3<f32> = exp(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp_d98450();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp_d98450();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp_d98450();
+}
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.glsl b/test/builtins/gen/exp/d98450.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp/d98450.wgsl.expected.glsl
rename to test/builtins/gen/exp/d98450.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.hlsl b/test/builtins/gen/exp/d98450.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp/d98450.wgsl.expected.hlsl
rename to test/builtins/gen/exp/d98450.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.msl b/test/builtins/gen/exp/d98450.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp/d98450.wgsl.expected.msl
rename to test/builtins/gen/exp/d98450.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.spvasm b/test/builtins/gen/exp/d98450.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp/d98450.wgsl.expected.spvasm
rename to test/builtins/gen/exp/d98450.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp/d98450.wgsl.expected.wgsl b/test/builtins/gen/exp/d98450.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp/d98450.wgsl.expected.wgsl
rename to test/builtins/gen/exp/d98450.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp2/1f8680.wgsl b/test/builtins/gen/exp2/1f8680.wgsl
new file mode 100644
index 0000000..f5f34be
--- /dev/null
+++ b/test/builtins/gen/exp2/1f8680.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp2(vec<3, f32>) -> vec<3, f32>
+fn exp2_1f8680() {
+  var res: vec3<f32> = exp2(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp2_1f8680();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp2_1f8680();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp2_1f8680();
+}
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl b/test/builtins/gen/exp2/1f8680.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp2/1f8680.wgsl.expected.glsl
rename to test/builtins/gen/exp2/1f8680.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.hlsl b/test/builtins/gen/exp2/1f8680.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp2/1f8680.wgsl.expected.hlsl
rename to test/builtins/gen/exp2/1f8680.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.msl b/test/builtins/gen/exp2/1f8680.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp2/1f8680.wgsl.expected.msl
rename to test/builtins/gen/exp2/1f8680.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.spvasm b/test/builtins/gen/exp2/1f8680.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp2/1f8680.wgsl.expected.spvasm
rename to test/builtins/gen/exp2/1f8680.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl.expected.wgsl b/test/builtins/gen/exp2/1f8680.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp2/1f8680.wgsl.expected.wgsl
rename to test/builtins/gen/exp2/1f8680.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp2/a9d0a7.wgsl b/test/builtins/gen/exp2/a9d0a7.wgsl
new file mode 100644
index 0000000..e827c11
--- /dev/null
+++ b/test/builtins/gen/exp2/a9d0a7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp2(vec<4, f32>) -> vec<4, f32>
+fn exp2_a9d0a7() {
+  var res: vec4<f32> = exp2(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp2_a9d0a7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp2_a9d0a7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp2_a9d0a7();
+}
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.glsl
rename to test/builtins/gen/exp2/a9d0a7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.hlsl b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.hlsl
rename to test/builtins/gen/exp2/a9d0a7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.msl b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.msl
rename to test/builtins/gen/exp2/a9d0a7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.spvasm b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.spvasm
rename to test/builtins/gen/exp2/a9d0a7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.wgsl b/test/builtins/gen/exp2/a9d0a7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp2/a9d0a7.wgsl.expected.wgsl
rename to test/builtins/gen/exp2/a9d0a7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp2/d6777c.wgsl b/test/builtins/gen/exp2/d6777c.wgsl
new file mode 100644
index 0000000..3927cc8
--- /dev/null
+++ b/test/builtins/gen/exp2/d6777c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp2(vec<2, f32>) -> vec<2, f32>
+fn exp2_d6777c() {
+  var res: vec2<f32> = exp2(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp2_d6777c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp2_d6777c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp2_d6777c();
+}
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl b/test/builtins/gen/exp2/d6777c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp2/d6777c.wgsl.expected.glsl
rename to test/builtins/gen/exp2/d6777c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.hlsl b/test/builtins/gen/exp2/d6777c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp2/d6777c.wgsl.expected.hlsl
rename to test/builtins/gen/exp2/d6777c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.msl b/test/builtins/gen/exp2/d6777c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp2/d6777c.wgsl.expected.msl
rename to test/builtins/gen/exp2/d6777c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.spvasm b/test/builtins/gen/exp2/d6777c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp2/d6777c.wgsl.expected.spvasm
rename to test/builtins/gen/exp2/d6777c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl.expected.wgsl b/test/builtins/gen/exp2/d6777c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp2/d6777c.wgsl.expected.wgsl
rename to test/builtins/gen/exp2/d6777c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/exp2/dea523.wgsl b/test/builtins/gen/exp2/dea523.wgsl
new file mode 100644
index 0000000..7feb8af
--- /dev/null
+++ b/test/builtins/gen/exp2/dea523.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn exp2(f32) -> f32
+fn exp2_dea523() {
+  var res: f32 = exp2(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  exp2_dea523();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  exp2_dea523();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  exp2_dea523();
+}
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl b/test/builtins/gen/exp2/dea523.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/exp2/dea523.wgsl.expected.glsl
rename to test/builtins/gen/exp2/dea523.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.hlsl b/test/builtins/gen/exp2/dea523.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/exp2/dea523.wgsl.expected.hlsl
rename to test/builtins/gen/exp2/dea523.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.msl b/test/builtins/gen/exp2/dea523.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/exp2/dea523.wgsl.expected.msl
rename to test/builtins/gen/exp2/dea523.wgsl.expected.msl
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.spvasm b/test/builtins/gen/exp2/dea523.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/exp2/dea523.wgsl.expected.spvasm
rename to test/builtins/gen/exp2/dea523.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl.expected.wgsl b/test/builtins/gen/exp2/dea523.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/exp2/dea523.wgsl.expected.wgsl
rename to test/builtins/gen/exp2/dea523.wgsl.expected.wgsl
diff --git a/test/builtins/gen/faceForward/5afbd5.wgsl b/test/builtins/gen/faceForward/5afbd5.wgsl
new file mode 100644
index 0000000..644b9c4
--- /dev/null
+++ b/test/builtins/gen/faceForward/5afbd5.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn faceForward(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn faceForward_5afbd5() {
+  var res: vec3<f32> = faceForward(vec3<f32>(), vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  faceForward_5afbd5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  faceForward_5afbd5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  faceForward_5afbd5();
+}
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.glsl
rename to test/builtins/gen/faceForward/5afbd5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.hlsl b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.hlsl
rename to test/builtins/gen/faceForward/5afbd5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.msl b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.msl
rename to test/builtins/gen/faceForward/5afbd5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.spvasm b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.spvasm
rename to test/builtins/gen/faceForward/5afbd5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.wgsl b/test/builtins/gen/faceForward/5afbd5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/5afbd5.wgsl.expected.wgsl
rename to test/builtins/gen/faceForward/5afbd5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/faceForward/b316e5.wgsl b/test/builtins/gen/faceForward/b316e5.wgsl
new file mode 100644
index 0000000..a349af9
--- /dev/null
+++ b/test/builtins/gen/faceForward/b316e5.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn faceForward(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn faceForward_b316e5() {
+  var res: vec4<f32> = faceForward(vec4<f32>(), vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  faceForward_b316e5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  faceForward_b316e5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  faceForward_b316e5();
+}
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl b/test/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/b316e5.wgsl.expected.glsl
rename to test/builtins/gen/faceForward/b316e5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.hlsl b/test/builtins/gen/faceForward/b316e5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/b316e5.wgsl.expected.hlsl
rename to test/builtins/gen/faceForward/b316e5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.msl b/test/builtins/gen/faceForward/b316e5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/faceForward/b316e5.wgsl.expected.msl
rename to test/builtins/gen/faceForward/b316e5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.spvasm b/test/builtins/gen/faceForward/b316e5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/faceForward/b316e5.wgsl.expected.spvasm
rename to test/builtins/gen/faceForward/b316e5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl.expected.wgsl b/test/builtins/gen/faceForward/b316e5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/b316e5.wgsl.expected.wgsl
rename to test/builtins/gen/faceForward/b316e5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/faceForward/e6908b.wgsl b/test/builtins/gen/faceForward/e6908b.wgsl
new file mode 100644
index 0000000..d7c41ed
--- /dev/null
+++ b/test/builtins/gen/faceForward/e6908b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn faceForward(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn faceForward_e6908b() {
+  var res: vec2<f32> = faceForward(vec2<f32>(), vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  faceForward_e6908b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  faceForward_e6908b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  faceForward_e6908b();
+}
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl b/test/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/e6908b.wgsl.expected.glsl
rename to test/builtins/gen/faceForward/e6908b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.hlsl b/test/builtins/gen/faceForward/e6908b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/e6908b.wgsl.expected.hlsl
rename to test/builtins/gen/faceForward/e6908b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.msl b/test/builtins/gen/faceForward/e6908b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/faceForward/e6908b.wgsl.expected.msl
rename to test/builtins/gen/faceForward/e6908b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.spvasm b/test/builtins/gen/faceForward/e6908b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/faceForward/e6908b.wgsl.expected.spvasm
rename to test/builtins/gen/faceForward/e6908b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl.expected.wgsl b/test/builtins/gen/faceForward/e6908b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/faceForward/e6908b.wgsl.expected.wgsl
rename to test/builtins/gen/faceForward/e6908b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/floor/3bccc4.wgsl b/test/builtins/gen/floor/3bccc4.wgsl
new file mode 100644
index 0000000..1b128ea
--- /dev/null
+++ b/test/builtins/gen/floor/3bccc4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn floor(vec<4, f32>) -> vec<4, f32>
+fn floor_3bccc4() {
+  var res: vec4<f32> = floor(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  floor_3bccc4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  floor_3bccc4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  floor_3bccc4();
+}
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl b/test/builtins/gen/floor/3bccc4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/floor/3bccc4.wgsl.expected.glsl
rename to test/builtins/gen/floor/3bccc4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.hlsl b/test/builtins/gen/floor/3bccc4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/floor/3bccc4.wgsl.expected.hlsl
rename to test/builtins/gen/floor/3bccc4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.msl b/test/builtins/gen/floor/3bccc4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/floor/3bccc4.wgsl.expected.msl
rename to test/builtins/gen/floor/3bccc4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.spvasm b/test/builtins/gen/floor/3bccc4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/floor/3bccc4.wgsl.expected.spvasm
rename to test/builtins/gen/floor/3bccc4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl.expected.wgsl b/test/builtins/gen/floor/3bccc4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/floor/3bccc4.wgsl.expected.wgsl
rename to test/builtins/gen/floor/3bccc4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/floor/5fc9ac.wgsl b/test/builtins/gen/floor/5fc9ac.wgsl
new file mode 100644
index 0000000..4982415
--- /dev/null
+++ b/test/builtins/gen/floor/5fc9ac.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn floor(vec<2, f32>) -> vec<2, f32>
+fn floor_5fc9ac() {
+  var res: vec2<f32> = floor(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  floor_5fc9ac();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  floor_5fc9ac();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  floor_5fc9ac();
+}
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl b/test/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/floor/5fc9ac.wgsl.expected.glsl
rename to test/builtins/gen/floor/5fc9ac.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.hlsl b/test/builtins/gen/floor/5fc9ac.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/floor/5fc9ac.wgsl.expected.hlsl
rename to test/builtins/gen/floor/5fc9ac.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.msl b/test/builtins/gen/floor/5fc9ac.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/floor/5fc9ac.wgsl.expected.msl
rename to test/builtins/gen/floor/5fc9ac.wgsl.expected.msl
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.spvasm b/test/builtins/gen/floor/5fc9ac.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/floor/5fc9ac.wgsl.expected.spvasm
rename to test/builtins/gen/floor/5fc9ac.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl.expected.wgsl b/test/builtins/gen/floor/5fc9ac.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/floor/5fc9ac.wgsl.expected.wgsl
rename to test/builtins/gen/floor/5fc9ac.wgsl.expected.wgsl
diff --git a/test/builtins/gen/floor/60d7ea.wgsl b/test/builtins/gen/floor/60d7ea.wgsl
new file mode 100644
index 0000000..6a0ab7e
--- /dev/null
+++ b/test/builtins/gen/floor/60d7ea.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn floor(vec<3, f32>) -> vec<3, f32>
+fn floor_60d7ea() {
+  var res: vec3<f32> = floor(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  floor_60d7ea();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  floor_60d7ea();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  floor_60d7ea();
+}
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl b/test/builtins/gen/floor/60d7ea.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/floor/60d7ea.wgsl.expected.glsl
rename to test/builtins/gen/floor/60d7ea.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.hlsl b/test/builtins/gen/floor/60d7ea.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/floor/60d7ea.wgsl.expected.hlsl
rename to test/builtins/gen/floor/60d7ea.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.msl b/test/builtins/gen/floor/60d7ea.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/floor/60d7ea.wgsl.expected.msl
rename to test/builtins/gen/floor/60d7ea.wgsl.expected.msl
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.spvasm b/test/builtins/gen/floor/60d7ea.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/floor/60d7ea.wgsl.expected.spvasm
rename to test/builtins/gen/floor/60d7ea.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl.expected.wgsl b/test/builtins/gen/floor/60d7ea.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/floor/60d7ea.wgsl.expected.wgsl
rename to test/builtins/gen/floor/60d7ea.wgsl.expected.wgsl
diff --git a/test/builtins/gen/floor/66f154.wgsl b/test/builtins/gen/floor/66f154.wgsl
new file mode 100644
index 0000000..c3d4592
--- /dev/null
+++ b/test/builtins/gen/floor/66f154.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn floor(f32) -> f32
+fn floor_66f154() {
+  var res: f32 = floor(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  floor_66f154();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  floor_66f154();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  floor_66f154();
+}
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.glsl b/test/builtins/gen/floor/66f154.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/floor/66f154.wgsl.expected.glsl
rename to test/builtins/gen/floor/66f154.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.hlsl b/test/builtins/gen/floor/66f154.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/floor/66f154.wgsl.expected.hlsl
rename to test/builtins/gen/floor/66f154.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.msl b/test/builtins/gen/floor/66f154.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/floor/66f154.wgsl.expected.msl
rename to test/builtins/gen/floor/66f154.wgsl.expected.msl
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.spvasm b/test/builtins/gen/floor/66f154.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/floor/66f154.wgsl.expected.spvasm
rename to test/builtins/gen/floor/66f154.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/floor/66f154.wgsl.expected.wgsl b/test/builtins/gen/floor/66f154.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/floor/66f154.wgsl.expected.wgsl
rename to test/builtins/gen/floor/66f154.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fma/26a7a9.wgsl b/test/builtins/gen/fma/26a7a9.wgsl
new file mode 100644
index 0000000..2bb2903
--- /dev/null
+++ b/test/builtins/gen/fma/26a7a9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fma(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn fma_26a7a9() {
+  var res: vec2<f32> = fma(vec2<f32>(), vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fma_26a7a9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fma_26a7a9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fma_26a7a9();
+}
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl b/test/builtins/gen/fma/26a7a9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fma/26a7a9.wgsl.expected.glsl
rename to test/builtins/gen/fma/26a7a9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.hlsl b/test/builtins/gen/fma/26a7a9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fma/26a7a9.wgsl.expected.hlsl
rename to test/builtins/gen/fma/26a7a9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.msl b/test/builtins/gen/fma/26a7a9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fma/26a7a9.wgsl.expected.msl
rename to test/builtins/gen/fma/26a7a9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.spvasm b/test/builtins/gen/fma/26a7a9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fma/26a7a9.wgsl.expected.spvasm
rename to test/builtins/gen/fma/26a7a9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl.expected.wgsl b/test/builtins/gen/fma/26a7a9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fma/26a7a9.wgsl.expected.wgsl
rename to test/builtins/gen/fma/26a7a9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fma/6a3283.wgsl b/test/builtins/gen/fma/6a3283.wgsl
new file mode 100644
index 0000000..ad45590
--- /dev/null
+++ b/test/builtins/gen/fma/6a3283.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fma(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn fma_6a3283() {
+  var res: vec4<f32> = fma(vec4<f32>(), vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fma_6a3283();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fma_6a3283();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fma_6a3283();
+}
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl b/test/builtins/gen/fma/6a3283.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fma/6a3283.wgsl.expected.glsl
rename to test/builtins/gen/fma/6a3283.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.hlsl b/test/builtins/gen/fma/6a3283.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fma/6a3283.wgsl.expected.hlsl
rename to test/builtins/gen/fma/6a3283.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.msl b/test/builtins/gen/fma/6a3283.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fma/6a3283.wgsl.expected.msl
rename to test/builtins/gen/fma/6a3283.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.spvasm b/test/builtins/gen/fma/6a3283.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fma/6a3283.wgsl.expected.spvasm
rename to test/builtins/gen/fma/6a3283.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl.expected.wgsl b/test/builtins/gen/fma/6a3283.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fma/6a3283.wgsl.expected.wgsl
rename to test/builtins/gen/fma/6a3283.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fma/c10ba3.wgsl b/test/builtins/gen/fma/c10ba3.wgsl
new file mode 100644
index 0000000..1b0b477
--- /dev/null
+++ b/test/builtins/gen/fma/c10ba3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fma(f32, f32, f32) -> f32
+fn fma_c10ba3() {
+  var res: f32 = fma(1.0, 1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fma_c10ba3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fma_c10ba3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fma_c10ba3();
+}
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl b/test/builtins/gen/fma/c10ba3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fma/c10ba3.wgsl.expected.glsl
rename to test/builtins/gen/fma/c10ba3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.hlsl b/test/builtins/gen/fma/c10ba3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fma/c10ba3.wgsl.expected.hlsl
rename to test/builtins/gen/fma/c10ba3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.msl b/test/builtins/gen/fma/c10ba3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fma/c10ba3.wgsl.expected.msl
rename to test/builtins/gen/fma/c10ba3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.spvasm b/test/builtins/gen/fma/c10ba3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fma/c10ba3.wgsl.expected.spvasm
rename to test/builtins/gen/fma/c10ba3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl.expected.wgsl b/test/builtins/gen/fma/c10ba3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fma/c10ba3.wgsl.expected.wgsl
rename to test/builtins/gen/fma/c10ba3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fma/e17c5c.wgsl b/test/builtins/gen/fma/e17c5c.wgsl
new file mode 100644
index 0000000..ca7e621
--- /dev/null
+++ b/test/builtins/gen/fma/e17c5c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fma(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn fma_e17c5c() {
+  var res: vec3<f32> = fma(vec3<f32>(), vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fma_e17c5c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fma_e17c5c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fma_e17c5c();
+}
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl b/test/builtins/gen/fma/e17c5c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fma/e17c5c.wgsl.expected.glsl
rename to test/builtins/gen/fma/e17c5c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.hlsl b/test/builtins/gen/fma/e17c5c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fma/e17c5c.wgsl.expected.hlsl
rename to test/builtins/gen/fma/e17c5c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.msl b/test/builtins/gen/fma/e17c5c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fma/e17c5c.wgsl.expected.msl
rename to test/builtins/gen/fma/e17c5c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.spvasm b/test/builtins/gen/fma/e17c5c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fma/e17c5c.wgsl.expected.spvasm
rename to test/builtins/gen/fma/e17c5c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl.expected.wgsl b/test/builtins/gen/fma/e17c5c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fma/e17c5c.wgsl.expected.wgsl
rename to test/builtins/gen/fma/e17c5c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fract/8bc1e9.wgsl b/test/builtins/gen/fract/8bc1e9.wgsl
new file mode 100644
index 0000000..5e0bd12
--- /dev/null
+++ b/test/builtins/gen/fract/8bc1e9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fract(vec<4, f32>) -> vec<4, f32>
+fn fract_8bc1e9() {
+  var res: vec4<f32> = fract(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fract_8bc1e9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fract_8bc1e9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fract_8bc1e9();
+}
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl b/test/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fract/8bc1e9.wgsl.expected.glsl
rename to test/builtins/gen/fract/8bc1e9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.hlsl b/test/builtins/gen/fract/8bc1e9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fract/8bc1e9.wgsl.expected.hlsl
rename to test/builtins/gen/fract/8bc1e9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.msl b/test/builtins/gen/fract/8bc1e9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fract/8bc1e9.wgsl.expected.msl
rename to test/builtins/gen/fract/8bc1e9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.spvasm b/test/builtins/gen/fract/8bc1e9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fract/8bc1e9.wgsl.expected.spvasm
rename to test/builtins/gen/fract/8bc1e9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl.expected.wgsl b/test/builtins/gen/fract/8bc1e9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fract/8bc1e9.wgsl.expected.wgsl
rename to test/builtins/gen/fract/8bc1e9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fract/943cb1.wgsl b/test/builtins/gen/fract/943cb1.wgsl
new file mode 100644
index 0000000..b269c78
--- /dev/null
+++ b/test/builtins/gen/fract/943cb1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fract(vec<2, f32>) -> vec<2, f32>
+fn fract_943cb1() {
+  var res: vec2<f32> = fract(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fract_943cb1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fract_943cb1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fract_943cb1();
+}
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl b/test/builtins/gen/fract/943cb1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fract/943cb1.wgsl.expected.glsl
rename to test/builtins/gen/fract/943cb1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.hlsl b/test/builtins/gen/fract/943cb1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fract/943cb1.wgsl.expected.hlsl
rename to test/builtins/gen/fract/943cb1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.msl b/test/builtins/gen/fract/943cb1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fract/943cb1.wgsl.expected.msl
rename to test/builtins/gen/fract/943cb1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.spvasm b/test/builtins/gen/fract/943cb1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fract/943cb1.wgsl.expected.spvasm
rename to test/builtins/gen/fract/943cb1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl.expected.wgsl b/test/builtins/gen/fract/943cb1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fract/943cb1.wgsl.expected.wgsl
rename to test/builtins/gen/fract/943cb1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fract/a49758.wgsl b/test/builtins/gen/fract/a49758.wgsl
new file mode 100644
index 0000000..fe560aa
--- /dev/null
+++ b/test/builtins/gen/fract/a49758.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fract(vec<3, f32>) -> vec<3, f32>
+fn fract_a49758() {
+  var res: vec3<f32> = fract(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fract_a49758();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fract_a49758();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fract_a49758();
+}
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.glsl b/test/builtins/gen/fract/a49758.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fract/a49758.wgsl.expected.glsl
rename to test/builtins/gen/fract/a49758.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.hlsl b/test/builtins/gen/fract/a49758.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fract/a49758.wgsl.expected.hlsl
rename to test/builtins/gen/fract/a49758.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.msl b/test/builtins/gen/fract/a49758.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fract/a49758.wgsl.expected.msl
rename to test/builtins/gen/fract/a49758.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.spvasm b/test/builtins/gen/fract/a49758.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fract/a49758.wgsl.expected.spvasm
rename to test/builtins/gen/fract/a49758.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fract/a49758.wgsl.expected.wgsl b/test/builtins/gen/fract/a49758.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fract/a49758.wgsl.expected.wgsl
rename to test/builtins/gen/fract/a49758.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fract/fa5c71.wgsl b/test/builtins/gen/fract/fa5c71.wgsl
new file mode 100644
index 0000000..bd33eec
--- /dev/null
+++ b/test/builtins/gen/fract/fa5c71.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fract(f32) -> f32
+fn fract_fa5c71() {
+  var res: f32 = fract(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  fract_fa5c71();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fract_fa5c71();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  fract_fa5c71();
+}
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl b/test/builtins/gen/fract/fa5c71.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fract/fa5c71.wgsl.expected.glsl
rename to test/builtins/gen/fract/fa5c71.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.hlsl b/test/builtins/gen/fract/fa5c71.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fract/fa5c71.wgsl.expected.hlsl
rename to test/builtins/gen/fract/fa5c71.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.msl b/test/builtins/gen/fract/fa5c71.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fract/fa5c71.wgsl.expected.msl
rename to test/builtins/gen/fract/fa5c71.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.spvasm b/test/builtins/gen/fract/fa5c71.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fract/fa5c71.wgsl.expected.spvasm
rename to test/builtins/gen/fract/fa5c71.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl.expected.wgsl b/test/builtins/gen/fract/fa5c71.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fract/fa5c71.wgsl.expected.wgsl
rename to test/builtins/gen/fract/fa5c71.wgsl.expected.wgsl
diff --git a/test/builtins/gen/frexp/368997.wgsl b/test/builtins/gen/frexp/368997.wgsl
new file mode 100644
index 0000000..231ffdc
--- /dev/null
+++ b/test/builtins/gen/frexp/368997.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn frexp(vec<3, f32>) -> __frexp_result_vec<3>
+fn frexp_368997() {
+  var res = frexp(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  frexp_368997();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  frexp_368997();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  frexp_368997();
+}
diff --git a/test/intrinsics/gen/frexp/368997.wgsl.expected.glsl b/test/builtins/gen/frexp/368997.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/frexp/368997.wgsl.expected.glsl
rename to test/builtins/gen/frexp/368997.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/frexp/368997.wgsl.expected.hlsl b/test/builtins/gen/frexp/368997.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/frexp/368997.wgsl.expected.hlsl
rename to test/builtins/gen/frexp/368997.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/frexp/368997.wgsl.expected.msl b/test/builtins/gen/frexp/368997.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/frexp/368997.wgsl.expected.msl
rename to test/builtins/gen/frexp/368997.wgsl.expected.msl
diff --git a/test/intrinsics/gen/frexp/368997.wgsl.expected.spvasm b/test/builtins/gen/frexp/368997.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/frexp/368997.wgsl.expected.spvasm
rename to test/builtins/gen/frexp/368997.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/frexp/368997.wgsl.expected.wgsl b/test/builtins/gen/frexp/368997.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/frexp/368997.wgsl.expected.wgsl
rename to test/builtins/gen/frexp/368997.wgsl.expected.wgsl
diff --git a/test/builtins/gen/frexp/3c4f48.wgsl b/test/builtins/gen/frexp/3c4f48.wgsl
new file mode 100644
index 0000000..cafc0f7
--- /dev/null
+++ b/test/builtins/gen/frexp/3c4f48.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn frexp(vec<4, f32>) -> __frexp_result_vec<4>
+fn frexp_3c4f48() {
+  var res = frexp(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  frexp_3c4f48();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  frexp_3c4f48();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  frexp_3c4f48();
+}
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl b/test/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/frexp/3c4f48.wgsl.expected.glsl
rename to test/builtins/gen/frexp/3c4f48.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.hlsl b/test/builtins/gen/frexp/3c4f48.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/frexp/3c4f48.wgsl.expected.hlsl
rename to test/builtins/gen/frexp/3c4f48.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.msl b/test/builtins/gen/frexp/3c4f48.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/frexp/3c4f48.wgsl.expected.msl
rename to test/builtins/gen/frexp/3c4f48.wgsl.expected.msl
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.spvasm b/test/builtins/gen/frexp/3c4f48.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/frexp/3c4f48.wgsl.expected.spvasm
rename to test/builtins/gen/frexp/3c4f48.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl.expected.wgsl b/test/builtins/gen/frexp/3c4f48.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/frexp/3c4f48.wgsl.expected.wgsl
rename to test/builtins/gen/frexp/3c4f48.wgsl.expected.wgsl
diff --git a/test/builtins/gen/frexp/4bdfc7.wgsl b/test/builtins/gen/frexp/4bdfc7.wgsl
new file mode 100644
index 0000000..81504c3
--- /dev/null
+++ b/test/builtins/gen/frexp/4bdfc7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn frexp(vec<2, f32>) -> __frexp_result_vec<2>
+fn frexp_4bdfc7() {
+  var res = frexp(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  frexp_4bdfc7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  frexp_4bdfc7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  frexp_4bdfc7();
+}
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.glsl
rename to test/builtins/gen/frexp/4bdfc7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.hlsl b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.hlsl
rename to test/builtins/gen/frexp/4bdfc7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.msl b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.msl
rename to test/builtins/gen/frexp/4bdfc7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.spvasm b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.spvasm
rename to test/builtins/gen/frexp/4bdfc7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.wgsl b/test/builtins/gen/frexp/4bdfc7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/frexp/4bdfc7.wgsl.expected.wgsl
rename to test/builtins/gen/frexp/4bdfc7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/frexp/eabd40.wgsl b/test/builtins/gen/frexp/eabd40.wgsl
new file mode 100644
index 0000000..3451539
--- /dev/null
+++ b/test/builtins/gen/frexp/eabd40.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn frexp(f32) -> __frexp_result
+fn frexp_eabd40() {
+  var res = frexp(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  frexp_eabd40();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  frexp_eabd40();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  frexp_eabd40();
+}
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl b/test/builtins/gen/frexp/eabd40.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/frexp/eabd40.wgsl.expected.glsl
rename to test/builtins/gen/frexp/eabd40.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.hlsl b/test/builtins/gen/frexp/eabd40.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/frexp/eabd40.wgsl.expected.hlsl
rename to test/builtins/gen/frexp/eabd40.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.msl b/test/builtins/gen/frexp/eabd40.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/frexp/eabd40.wgsl.expected.msl
rename to test/builtins/gen/frexp/eabd40.wgsl.expected.msl
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.spvasm b/test/builtins/gen/frexp/eabd40.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/frexp/eabd40.wgsl.expected.spvasm
rename to test/builtins/gen/frexp/eabd40.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl.expected.wgsl b/test/builtins/gen/frexp/eabd40.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/frexp/eabd40.wgsl.expected.wgsl
rename to test/builtins/gen/frexp/eabd40.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidth/5d1b39.wgsl b/test/builtins/gen/fwidth/5d1b39.wgsl
new file mode 100644
index 0000000..991a417
--- /dev/null
+++ b/test/builtins/gen/fwidth/5d1b39.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidth(vec<3, f32>) -> vec<3, f32>
+fn fwidth_5d1b39() {
+  var res: vec3<f32> = fwidth(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidth_5d1b39();
+}
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl b/test/builtins/gen/fwidth/5d1b39.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.glsl
rename to test/builtins/gen/fwidth/5d1b39.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.hlsl b/test/builtins/gen/fwidth/5d1b39.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.hlsl
rename to test/builtins/gen/fwidth/5d1b39.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.msl b/test/builtins/gen/fwidth/5d1b39.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.msl
rename to test/builtins/gen/fwidth/5d1b39.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.spvasm b/test/builtins/gen/fwidth/5d1b39.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.spvasm
rename to test/builtins/gen/fwidth/5d1b39.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.wgsl b/test/builtins/gen/fwidth/5d1b39.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/5d1b39.wgsl.expected.wgsl
rename to test/builtins/gen/fwidth/5d1b39.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidth/b83ebb.wgsl b/test/builtins/gen/fwidth/b83ebb.wgsl
new file mode 100644
index 0000000..f616e2b
--- /dev/null
+++ b/test/builtins/gen/fwidth/b83ebb.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidth(vec<2, f32>) -> vec<2, f32>
+fn fwidth_b83ebb() {
+  var res: vec2<f32> = fwidth(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidth_b83ebb();
+}
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl b/test/builtins/gen/fwidth/b83ebb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.glsl
rename to test/builtins/gen/fwidth/b83ebb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.hlsl b/test/builtins/gen/fwidth/b83ebb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.hlsl
rename to test/builtins/gen/fwidth/b83ebb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.msl b/test/builtins/gen/fwidth/b83ebb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.msl
rename to test/builtins/gen/fwidth/b83ebb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.spvasm b/test/builtins/gen/fwidth/b83ebb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.spvasm
rename to test/builtins/gen/fwidth/b83ebb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.wgsl b/test/builtins/gen/fwidth/b83ebb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/b83ebb.wgsl.expected.wgsl
rename to test/builtins/gen/fwidth/b83ebb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidth/d2ab9a.wgsl b/test/builtins/gen/fwidth/d2ab9a.wgsl
new file mode 100644
index 0000000..4e3e059
--- /dev/null
+++ b/test/builtins/gen/fwidth/d2ab9a.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidth(vec<4, f32>) -> vec<4, f32>
+fn fwidth_d2ab9a() {
+  var res: vec4<f32> = fwidth(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidth_d2ab9a();
+}
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl b/test/builtins/gen/fwidth/d2ab9a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.glsl
rename to test/builtins/gen/fwidth/d2ab9a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.hlsl b/test/builtins/gen/fwidth/d2ab9a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.hlsl
rename to test/builtins/gen/fwidth/d2ab9a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.msl b/test/builtins/gen/fwidth/d2ab9a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.msl
rename to test/builtins/gen/fwidth/d2ab9a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.spvasm b/test/builtins/gen/fwidth/d2ab9a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.spvasm
rename to test/builtins/gen/fwidth/d2ab9a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.wgsl b/test/builtins/gen/fwidth/d2ab9a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/d2ab9a.wgsl.expected.wgsl
rename to test/builtins/gen/fwidth/d2ab9a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidth/df38ef.wgsl b/test/builtins/gen/fwidth/df38ef.wgsl
new file mode 100644
index 0000000..c38975d
--- /dev/null
+++ b/test/builtins/gen/fwidth/df38ef.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidth(f32) -> f32
+fn fwidth_df38ef() {
+  var res: f32 = fwidth(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidth_df38ef();
+}
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl b/test/builtins/gen/fwidth/df38ef.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/df38ef.wgsl.expected.glsl
rename to test/builtins/gen/fwidth/df38ef.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.hlsl b/test/builtins/gen/fwidth/df38ef.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/df38ef.wgsl.expected.hlsl
rename to test/builtins/gen/fwidth/df38ef.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.msl b/test/builtins/gen/fwidth/df38ef.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidth/df38ef.wgsl.expected.msl
rename to test/builtins/gen/fwidth/df38ef.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.spvasm b/test/builtins/gen/fwidth/df38ef.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidth/df38ef.wgsl.expected.spvasm
rename to test/builtins/gen/fwidth/df38ef.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl.expected.wgsl b/test/builtins/gen/fwidth/df38ef.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidth/df38ef.wgsl.expected.wgsl
rename to test/builtins/gen/fwidth/df38ef.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthCoarse/159c8a.wgsl b/test/builtins/gen/fwidthCoarse/159c8a.wgsl
new file mode 100644
index 0000000..eebdef6
--- /dev/null
+++ b/test/builtins/gen/fwidthCoarse/159c8a.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthCoarse(f32) -> f32
+fn fwidthCoarse_159c8a() {
+  var res: f32 = fwidthCoarse(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthCoarse_159c8a();
+}
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl b/test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
rename to test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.hlsl b/test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.msl b/test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.msl
rename to test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.spvasm b/test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.wgsl b/test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/159c8a.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthCoarse/159c8a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthCoarse/1e59d9.wgsl b/test/builtins/gen/fwidthCoarse/1e59d9.wgsl
new file mode 100644
index 0000000..7416c8b
--- /dev/null
+++ b/test/builtins/gen/fwidthCoarse/1e59d9.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthCoarse(vec<3, f32>) -> vec<3, f32>
+fn fwidthCoarse_1e59d9() {
+  var res: vec3<f32> = fwidthCoarse(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthCoarse_1e59d9();
+}
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl b/test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
rename to test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.hlsl b/test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.msl b/test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.msl
rename to test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.spvasm b/test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.wgsl b/test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthCoarse/1e59d9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl b/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl
new file mode 100644
index 0000000..d1cbee8
--- /dev/null
+++ b/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthCoarse(vec<4, f32>) -> vec<4, f32>
+fn fwidthCoarse_4e4fc4() {
+  var res: vec4<f32> = fwidthCoarse(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthCoarse_4e4fc4();
+}
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl b/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
rename to test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.hlsl b/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.msl b/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.msl
rename to test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.spvasm b/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.wgsl b/test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthCoarse/e653f7.wgsl b/test/builtins/gen/fwidthCoarse/e653f7.wgsl
new file mode 100644
index 0000000..5736185
--- /dev/null
+++ b/test/builtins/gen/fwidthCoarse/e653f7.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthCoarse(vec<2, f32>) -> vec<2, f32>
+fn fwidthCoarse_e653f7() {
+  var res: vec2<f32> = fwidthCoarse(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthCoarse_e653f7();
+}
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl b/test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
rename to test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.hlsl b/test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.msl b/test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.msl
rename to test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.spvasm b/test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.wgsl b/test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthCoarse/e653f7.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthCoarse/e653f7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthFine/523fdc.wgsl b/test/builtins/gen/fwidthFine/523fdc.wgsl
new file mode 100644
index 0000000..fe89ae7
--- /dev/null
+++ b/test/builtins/gen/fwidthFine/523fdc.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthFine(vec<3, f32>) -> vec<3, f32>
+fn fwidthFine_523fdc() {
+  var res: vec3<f32> = fwidthFine(vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthFine_523fdc();
+}
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl b/test/builtins/gen/fwidthFine/523fdc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.glsl
rename to test/builtins/gen/fwidthFine/523fdc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.hlsl b/test/builtins/gen/fwidthFine/523fdc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthFine/523fdc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.msl b/test/builtins/gen/fwidthFine/523fdc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.msl
rename to test/builtins/gen/fwidthFine/523fdc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.spvasm b/test/builtins/gen/fwidthFine/523fdc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthFine/523fdc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.wgsl b/test/builtins/gen/fwidthFine/523fdc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/523fdc.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthFine/523fdc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthFine/68f4ef.wgsl b/test/builtins/gen/fwidthFine/68f4ef.wgsl
new file mode 100644
index 0000000..f53e145
--- /dev/null
+++ b/test/builtins/gen/fwidthFine/68f4ef.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthFine(vec<4, f32>) -> vec<4, f32>
+fn fwidthFine_68f4ef() {
+  var res: vec4<f32> = fwidthFine(vec4<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthFine_68f4ef();
+}
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl b/test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.glsl
rename to test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.hlsl b/test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.msl b/test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.msl
rename to test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.spvasm b/test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.wgsl b/test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/68f4ef.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthFine/68f4ef.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthFine/f1742d.wgsl b/test/builtins/gen/fwidthFine/f1742d.wgsl
new file mode 100644
index 0000000..51c2e44
--- /dev/null
+++ b/test/builtins/gen/fwidthFine/f1742d.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthFine(f32) -> f32
+fn fwidthFine_f1742d() {
+  var res: f32 = fwidthFine(1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthFine_f1742d();
+}
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl b/test/builtins/gen/fwidthFine/f1742d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.glsl
rename to test/builtins/gen/fwidthFine/f1742d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.hlsl b/test/builtins/gen/fwidthFine/f1742d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthFine/f1742d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.msl b/test/builtins/gen/fwidthFine/f1742d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.msl
rename to test/builtins/gen/fwidthFine/f1742d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.spvasm b/test/builtins/gen/fwidthFine/f1742d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthFine/f1742d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.wgsl b/test/builtins/gen/fwidthFine/f1742d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/f1742d.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthFine/f1742d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/fwidthFine/ff6aa0.wgsl b/test/builtins/gen/fwidthFine/ff6aa0.wgsl
new file mode 100644
index 0000000..c30a97a
--- /dev/null
+++ b/test/builtins/gen/fwidthFine/ff6aa0.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn fwidthFine(vec<2, f32>) -> vec<2, f32>
+fn fwidthFine_ff6aa0() {
+  var res: vec2<f32> = fwidthFine(vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  fwidthFine_ff6aa0();
+}
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl b/test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
rename to test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.hlsl b/test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.hlsl
rename to test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.msl b/test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.msl
rename to test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.spvasm b/test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.spvasm
rename to test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.wgsl b/test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/fwidthFine/ff6aa0.wgsl.expected.wgsl
rename to test/builtins/gen/fwidthFine/ff6aa0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/inverseSqrt/84407e.wgsl b/test/builtins/gen/inverseSqrt/84407e.wgsl
new file mode 100644
index 0000000..d46dfea
--- /dev/null
+++ b/test/builtins/gen/inverseSqrt/84407e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn inverseSqrt(f32) -> f32
+fn inverseSqrt_84407e() {
+  var res: f32 = inverseSqrt(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  inverseSqrt_84407e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  inverseSqrt_84407e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  inverseSqrt_84407e();
+}
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.glsl
rename to test/builtins/gen/inverseSqrt/84407e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.hlsl b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.hlsl
rename to test/builtins/gen/inverseSqrt/84407e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.msl
rename to test/builtins/gen/inverseSqrt/84407e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.spvasm b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.spvasm
rename to test/builtins/gen/inverseSqrt/84407e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.wgsl b/test/builtins/gen/inverseSqrt/84407e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/84407e.wgsl.expected.wgsl
rename to test/builtins/gen/inverseSqrt/84407e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/inverseSqrt/8f2bd2.wgsl b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl
new file mode 100644
index 0000000..3cd7ac9
--- /dev/null
+++ b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn inverseSqrt(vec<2, f32>) -> vec<2, f32>
+fn inverseSqrt_8f2bd2() {
+  var res: vec2<f32> = inverseSqrt(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  inverseSqrt_8f2bd2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  inverseSqrt_8f2bd2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  inverseSqrt_8f2bd2();
+}
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
rename to test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.hlsl b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.hlsl
rename to test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.msl
rename to test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm
rename to test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.wgsl b/test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl.expected.wgsl
rename to test/builtins/gen/inverseSqrt/8f2bd2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/inverseSqrt/b197b1.wgsl b/test/builtins/gen/inverseSqrt/b197b1.wgsl
new file mode 100644
index 0000000..a061520
--- /dev/null
+++ b/test/builtins/gen/inverseSqrt/b197b1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn inverseSqrt(vec<3, f32>) -> vec<3, f32>
+fn inverseSqrt_b197b1() {
+  var res: vec3<f32> = inverseSqrt(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  inverseSqrt_b197b1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  inverseSqrt_b197b1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  inverseSqrt_b197b1();
+}
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.glsl
rename to test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.hlsl b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.hlsl
rename to test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.msl
rename to test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.spvasm b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.spvasm
rename to test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.wgsl b/test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/b197b1.wgsl.expected.wgsl
rename to test/builtins/gen/inverseSqrt/b197b1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/inverseSqrt/c22347.wgsl b/test/builtins/gen/inverseSqrt/c22347.wgsl
new file mode 100644
index 0000000..7a9d368
--- /dev/null
+++ b/test/builtins/gen/inverseSqrt/c22347.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn inverseSqrt(vec<4, f32>) -> vec<4, f32>
+fn inverseSqrt_c22347() {
+  var res: vec4<f32> = inverseSqrt(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  inverseSqrt_c22347();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  inverseSqrt_c22347();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  inverseSqrt_c22347();
+}
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.glsl
rename to test/builtins/gen/inverseSqrt/c22347.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.hlsl b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.hlsl
rename to test/builtins/gen/inverseSqrt/c22347.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.msl b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.msl
rename to test/builtins/gen/inverseSqrt/c22347.wgsl.expected.msl
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.spvasm b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.spvasm
rename to test/builtins/gen/inverseSqrt/c22347.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.wgsl b/test/builtins/gen/inverseSqrt/c22347.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/inverseSqrt/c22347.wgsl.expected.wgsl
rename to test/builtins/gen/inverseSqrt/c22347.wgsl.expected.wgsl
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl b/test/builtins/gen/isFinite/34d32b.wgsl
new file mode 100644
index 0000000..ef5358d
--- /dev/null
+++ b/test/builtins/gen/isFinite/34d32b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isFinite(vec<2, f32>) -> vec<2, bool>
+fn isFinite_34d32b() {
+  var res: vec2<bool> = isFinite(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_34d32b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_34d32b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_34d32b();
+}
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl b/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
new file mode 100644
index 0000000..6de5cd4
--- /dev/null
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+SKIP: FAILED
+
+builtins/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isFinite(vec2<f32>());
+                        ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isFinite_34d32b() {
+  bvec2 res = isfinite(vec2(0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isFinite_34d32b();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_34d32b() {
+  bvec2 res = isfinite(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isFinite_34d32b();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_34d32b() {
+  bvec2 res = isfinite(vec2(0.0f, 0.0f));
+}
+
+void compute_main() {
+  isFinite_34d32b();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.hlsl b/test/builtins/gen/isFinite/34d32b.wgsl.expected.hlsl
new file mode 100644
index 0000000..4301e88
--- /dev/null
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isFinite(vec2<f32>());
+                        ^^^^^^^^
+
+void isFinite_34d32b() {
+  bool2 res = isfinite(float2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isFinite_34d32b();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isFinite_34d32b();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isFinite_34d32b();
+  return;
+}
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.msl b/test/builtins/gen/isFinite/34d32b.wgsl.expected.msl
new file mode 100644
index 0000000..d482cc2
--- /dev/null
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isFinite(vec2<f32>());
+                        ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isFinite_34d32b() {
+  bool2 res = isfinite(float2());
+}
+
+float4 vertex_main_inner() {
+  isFinite_34d32b();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isFinite_34d32b();
+  return;
+}
+
+kernel void compute_main() {
+  isFinite_34d32b();
+  return;
+}
+
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.spvasm b/test/builtins/gen/isFinite/34d32b.wgsl.expected.spvasm
new file mode 100644
index 0000000..f33dc85
--- /dev/null
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+builtins/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isFinite(vec2<f32>());
+                        ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isFinite_34d32b "isFinite_34d32b"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v2bool = OpTypeVector %bool 2
+    %v2float = OpTypeVector %float 2
+         %17 = OpConstantNull %v2float
+%_ptr_Function_v2bool = OpTypePointer Function %v2bool
+         %23 = OpConstantNull %v2bool
+         %24 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isFinite_34d32b = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v2bool Function %23
+         %18 = OpIsInf %v2bool %17
+         %19 = OpIsNan %v2bool %17
+         %20 = OpLogicalOr %v2bool %18 %19
+         %13 = OpLogicalNot %v2bool %20
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %isFinite_34d32b
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isFinite_34d32b
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %isFinite_34d32b
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isFinite/34d32b.wgsl.expected.wgsl b/test/builtins/gen/isFinite/34d32b.wgsl.expected.wgsl
new file mode 100644
index 0000000..17242cf
--- /dev/null
+++ b/test/builtins/gen/isFinite/34d32b.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isFinite(vec2<f32>());
+                        ^^^^^^^^
+
+fn isFinite_34d32b() {
+  var res : vec2<bool> = isFinite(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_34d32b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_34d32b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_34d32b();
+}
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl b/test/builtins/gen/isFinite/426f9f.wgsl
new file mode 100644
index 0000000..43e2406
--- /dev/null
+++ b/test/builtins/gen/isFinite/426f9f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isFinite(f32) -> bool
+fn isFinite_426f9f() {
+  var res: bool = isFinite(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_426f9f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_426f9f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_426f9f();
+}
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl b/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
new file mode 100644
index 0000000..51d1125
--- /dev/null
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+SKIP: FAILED
+
+builtins/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isFinite(1.0);
+                  ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isFinite_426f9f() {
+  bool res = isfinite(1.0f);
+}
+
+vec4 vertex_main() {
+  isFinite_426f9f();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_426f9f() {
+  bool res = isfinite(1.0f);
+}
+
+void fragment_main() {
+  isFinite_426f9f();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_426f9f() {
+  bool res = isfinite(1.0f);
+}
+
+void compute_main() {
+  isFinite_426f9f();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.hlsl b/test/builtins/gen/isFinite/426f9f.wgsl.expected.hlsl
new file mode 100644
index 0000000..8ba2451
--- /dev/null
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isFinite(1.0);
+                  ^^^^^^^^
+
+void isFinite_426f9f() {
+  bool res = isfinite(1.0f);
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isFinite_426f9f();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isFinite_426f9f();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isFinite_426f9f();
+  return;
+}
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.msl b/test/builtins/gen/isFinite/426f9f.wgsl.expected.msl
new file mode 100644
index 0000000..eff348c
--- /dev/null
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isFinite(1.0);
+                  ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isFinite_426f9f() {
+  bool res = isfinite(1.0f);
+}
+
+float4 vertex_main_inner() {
+  isFinite_426f9f();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isFinite_426f9f();
+  return;
+}
+
+kernel void compute_main() {
+  isFinite_426f9f();
+  return;
+}
+
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.spvasm b/test/builtins/gen/isFinite/426f9f.wgsl.expected.spvasm
new file mode 100644
index 0000000..6e64e7e
--- /dev/null
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+builtins/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isFinite(1.0);
+                  ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isFinite_426f9f "isFinite_426f9f"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+    %float_1 = OpConstant %float 1
+%_ptr_Function_bool = OpTypePointer Function %bool
+         %21 = OpConstantNull %bool
+         %22 = OpTypeFunction %v4float
+%isFinite_426f9f = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_bool Function %21
+         %16 = OpIsInf %bool %float_1
+         %17 = OpIsNan %bool %float_1
+         %18 = OpLogicalOr %bool %16 %17
+         %13 = OpLogicalNot %bool %18
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %isFinite_426f9f
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isFinite_426f9f
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isFinite_426f9f
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isFinite/426f9f.wgsl.expected.wgsl b/test/builtins/gen/isFinite/426f9f.wgsl.expected.wgsl
new file mode 100644
index 0000000..c532c74
--- /dev/null
+++ b/test/builtins/gen/isFinite/426f9f.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isFinite(1.0);
+                  ^^^^^^^^
+
+fn isFinite_426f9f() {
+  var res : bool = isFinite(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_426f9f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_426f9f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_426f9f();
+}
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl b/test/builtins/gen/isFinite/8a23ad.wgsl
new file mode 100644
index 0000000..7f554c3
--- /dev/null
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isFinite(vec<3, f32>) -> vec<3, bool>
+fn isFinite_8a23ad() {
+  var res: vec3<bool> = isFinite(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_8a23ad();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_8a23ad();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_8a23ad();
+}
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
new file mode 100644
index 0000000..a4f158f
--- /dev/null
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+SKIP: FAILED
+
+builtins/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isFinite(vec3<f32>());
+                        ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isFinite_8a23ad() {
+  bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isFinite_8a23ad();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_8a23ad() {
+  bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isFinite_8a23ad();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_8a23ad() {
+  bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isFinite_8a23ad();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.hlsl b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.hlsl
new file mode 100644
index 0000000..b61ed9a
--- /dev/null
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isFinite(vec3<f32>());
+                        ^^^^^^^^
+
+void isFinite_8a23ad() {
+  bool3 res = isfinite(float3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isFinite_8a23ad();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isFinite_8a23ad();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isFinite_8a23ad();
+  return;
+}
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.msl b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.msl
new file mode 100644
index 0000000..e95e8b4
--- /dev/null
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isFinite(vec3<f32>());
+                        ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isFinite_8a23ad() {
+  bool3 res = isfinite(float3());
+}
+
+float4 vertex_main_inner() {
+  isFinite_8a23ad();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isFinite_8a23ad();
+  return;
+}
+
+kernel void compute_main() {
+  isFinite_8a23ad();
+  return;
+}
+
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.spvasm b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.spvasm
new file mode 100644
index 0000000..cd0fed3
--- /dev/null
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+builtins/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isFinite(vec3<f32>());
+                        ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isFinite_8a23ad "isFinite_8a23ad"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v3bool = OpTypeVector %bool 3
+    %v3float = OpTypeVector %float 3
+         %17 = OpConstantNull %v3float
+%_ptr_Function_v3bool = OpTypePointer Function %v3bool
+         %23 = OpConstantNull %v3bool
+         %24 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isFinite_8a23ad = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v3bool Function %23
+         %18 = OpIsInf %v3bool %17
+         %19 = OpIsNan %v3bool %17
+         %20 = OpLogicalOr %v3bool %18 %19
+         %13 = OpLogicalNot %v3bool %20
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %24
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %isFinite_8a23ad
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %29 = OpLabel
+         %30 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %30
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isFinite_8a23ad
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %36 = OpLabel
+         %37 = OpFunctionCall %void %isFinite_8a23ad
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isFinite/8a23ad.wgsl.expected.wgsl b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.wgsl
new file mode 100644
index 0000000..5ac53aa
--- /dev/null
+++ b/test/builtins/gen/isFinite/8a23ad.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isFinite(vec3<f32>());
+                        ^^^^^^^^
+
+fn isFinite_8a23ad() {
+  var res : vec3<bool> = isFinite(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_8a23ad();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_8a23ad();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_8a23ad();
+}
diff --git a/test/builtins/gen/isFinite/f31987.wgsl b/test/builtins/gen/isFinite/f31987.wgsl
new file mode 100644
index 0000000..d2f5926
--- /dev/null
+++ b/test/builtins/gen/isFinite/f31987.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isFinite(vec<4, f32>) -> vec<4, bool>
+fn isFinite_f31987() {
+  var res: vec4<bool> = isFinite(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_f31987();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_f31987();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_f31987();
+}
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl b/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
new file mode 100644
index 0000000..3d49f8e
--- /dev/null
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.glsl
@@ -0,0 +1,80 @@
+SKIP: FAILED
+
+builtins/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isFinite(vec4<f32>());
+                        ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isFinite_f31987() {
+  bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isFinite_f31987();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_f31987() {
+  bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isFinite_f31987();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+void isFinite_f31987() {
+  bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isFinite_f31987();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'isfinite' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.hlsl b/test/builtins/gen/isFinite/f31987.wgsl.expected.hlsl
new file mode 100644
index 0000000..ae6ac32
--- /dev/null
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isFinite(vec4<f32>());
+                        ^^^^^^^^
+
+void isFinite_f31987() {
+  bool4 res = isfinite(float4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isFinite_f31987();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isFinite_f31987();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isFinite_f31987();
+  return;
+}
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.msl b/test/builtins/gen/isFinite/f31987.wgsl.expected.msl
new file mode 100644
index 0000000..4a0ac00
--- /dev/null
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isFinite(vec4<f32>());
+                        ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isFinite_f31987() {
+  bool4 res = isfinite(float4());
+}
+
+float4 vertex_main_inner() {
+  isFinite_f31987();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isFinite_f31987();
+  return;
+}
+
+kernel void compute_main() {
+  isFinite_f31987();
+  return;
+}
+
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.spvasm b/test/builtins/gen/isFinite/f31987.wgsl.expected.spvasm
new file mode 100644
index 0000000..b6d6711
--- /dev/null
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+builtins/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isFinite(vec4<f32>());
+                        ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isFinite_f31987 "isFinite_f31987"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v4bool = OpTypeVector %bool 4
+%_ptr_Function_v4bool = OpTypePointer Function %v4bool
+         %21 = OpConstantNull %v4bool
+         %22 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isFinite_f31987 = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v4bool Function %21
+         %16 = OpIsInf %v4bool %5
+         %17 = OpIsNan %v4bool %5
+         %18 = OpLogicalOr %v4bool %16 %17
+         %13 = OpLogicalNot %v4bool %18
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %22
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %isFinite_f31987
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %27 = OpLabel
+         %28 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %28
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %isFinite_f31987
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %isFinite_f31987
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isFinite/f31987.wgsl.expected.wgsl b/test/builtins/gen/isFinite/f31987.wgsl.expected.wgsl
new file mode 100644
index 0000000..e13a8c9
--- /dev/null
+++ b/test/builtins/gen/isFinite/f31987.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isFinite(vec4<f32>());
+                        ^^^^^^^^
+
+fn isFinite_f31987() {
+  var res : vec4<bool> = isFinite(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isFinite_f31987();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isFinite_f31987();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isFinite_f31987();
+}
diff --git a/test/builtins/gen/isInf/666f2a.wgsl b/test/builtins/gen/isInf/666f2a.wgsl
new file mode 100644
index 0000000..c3e9927
--- /dev/null
+++ b/test/builtins/gen/isInf/666f2a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isInf(vec<3, f32>) -> vec<3, bool>
+fn isInf_666f2a() {
+  var res: vec3<bool> = isInf(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_666f2a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_666f2a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_666f2a();
+}
diff --git a/test/builtins/gen/isInf/666f2a.wgsl.expected.glsl b/test/builtins/gen/isInf/666f2a.wgsl.expected.glsl
new file mode 100644
index 0000000..e0830f8
--- /dev/null
+++ b/test/builtins/gen/isInf/666f2a.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isInf(vec3<f32>());
+                        ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isInf_666f2a() {
+  bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isInf_666f2a();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_666f2a() {
+  bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isInf_666f2a();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_666f2a() {
+  bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isInf_666f2a();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isInf/666f2a.wgsl.expected.hlsl b/test/builtins/gen/isInf/666f2a.wgsl.expected.hlsl
new file mode 100644
index 0000000..8890a79
--- /dev/null
+++ b/test/builtins/gen/isInf/666f2a.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isInf(vec3<f32>());
+                        ^^^^^
+
+void isInf_666f2a() {
+  bool3 res = isinf(float3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isInf_666f2a();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isInf_666f2a();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isInf_666f2a();
+  return;
+}
diff --git a/test/builtins/gen/isInf/666f2a.wgsl.expected.msl b/test/builtins/gen/isInf/666f2a.wgsl.expected.msl
new file mode 100644
index 0000000..4b65427
--- /dev/null
+++ b/test/builtins/gen/isInf/666f2a.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isInf(vec3<f32>());
+                        ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isInf_666f2a() {
+  bool3 res = isinf(float3());
+}
+
+float4 vertex_main_inner() {
+  isInf_666f2a();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isInf_666f2a();
+  return;
+}
+
+kernel void compute_main() {
+  isInf_666f2a();
+  return;
+}
+
diff --git a/test/builtins/gen/isInf/666f2a.wgsl.expected.spvasm b/test/builtins/gen/isInf/666f2a.wgsl.expected.spvasm
new file mode 100644
index 0000000..6cea7ae
--- /dev/null
+++ b/test/builtins/gen/isInf/666f2a.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+builtins/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isInf(vec3<f32>());
+                        ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isInf_666f2a "isInf_666f2a"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v3bool = OpTypeVector %bool 3
+    %v3float = OpTypeVector %float 3
+         %17 = OpConstantNull %v3float
+%_ptr_Function_v3bool = OpTypePointer Function %v3bool
+         %20 = OpConstantNull %v3bool
+         %21 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isInf_666f2a = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v3bool Function %20
+         %13 = OpIsInf %v3bool %17
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %isInf_666f2a
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isInf_666f2a
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isInf_666f2a
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isInf/666f2a.wgsl.expected.wgsl b/test/builtins/gen/isInf/666f2a.wgsl.expected.wgsl
new file mode 100644
index 0000000..a3f6c55
--- /dev/null
+++ b/test/builtins/gen/isInf/666f2a.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isInf(vec3<f32>());
+                        ^^^^^
+
+fn isInf_666f2a() {
+  var res : vec3<bool> = isInf(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_666f2a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_666f2a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_666f2a();
+}
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl b/test/builtins/gen/isInf/7bd98f.wgsl
new file mode 100644
index 0000000..ce3683d
--- /dev/null
+++ b/test/builtins/gen/isInf/7bd98f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isInf(f32) -> bool
+fn isInf_7bd98f() {
+  var res: bool = isInf(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_7bd98f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_7bd98f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_7bd98f();
+}
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl.expected.glsl b/test/builtins/gen/isInf/7bd98f.wgsl.expected.glsl
new file mode 100644
index 0000000..09b1082
--- /dev/null
+++ b/test/builtins/gen/isInf/7bd98f.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isInf(1.0);
+                  ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isInf_7bd98f() {
+  bool res = isinf(1.0f);
+}
+
+vec4 vertex_main() {
+  isInf_7bd98f();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_7bd98f() {
+  bool res = isinf(1.0f);
+}
+
+void fragment_main() {
+  isInf_7bd98f();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_7bd98f() {
+  bool res = isinf(1.0f);
+}
+
+void compute_main() {
+  isInf_7bd98f();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl.expected.hlsl b/test/builtins/gen/isInf/7bd98f.wgsl.expected.hlsl
new file mode 100644
index 0000000..bfff65b
--- /dev/null
+++ b/test/builtins/gen/isInf/7bd98f.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isInf(1.0);
+                  ^^^^^
+
+void isInf_7bd98f() {
+  bool res = isinf(1.0f);
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isInf_7bd98f();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isInf_7bd98f();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isInf_7bd98f();
+  return;
+}
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl.expected.msl b/test/builtins/gen/isInf/7bd98f.wgsl.expected.msl
new file mode 100644
index 0000000..d5894d2
--- /dev/null
+++ b/test/builtins/gen/isInf/7bd98f.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isInf(1.0);
+                  ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isInf_7bd98f() {
+  bool res = isinf(1.0f);
+}
+
+float4 vertex_main_inner() {
+  isInf_7bd98f();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isInf_7bd98f();
+  return;
+}
+
+kernel void compute_main() {
+  isInf_7bd98f();
+  return;
+}
+
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl.expected.spvasm b/test/builtins/gen/isInf/7bd98f.wgsl.expected.spvasm
new file mode 100644
index 0000000..b1f68c1
--- /dev/null
+++ b/test/builtins/gen/isInf/7bd98f.wgsl.expected.spvasm
@@ -0,0 +1,70 @@
+builtins/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isInf(1.0);
+                  ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 32
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isInf_7bd98f "isInf_7bd98f"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+    %float_1 = OpConstant %float 1
+%_ptr_Function_bool = OpTypePointer Function %bool
+         %18 = OpConstantNull %bool
+         %19 = OpTypeFunction %v4float
+%isInf_7bd98f = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_bool Function %18
+         %13 = OpIsInf %bool %float_1
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isInf_7bd98f
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %24 = OpLabel
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %isInf_7bd98f
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isInf_7bd98f
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isInf/7bd98f.wgsl.expected.wgsl b/test/builtins/gen/isInf/7bd98f.wgsl.expected.wgsl
new file mode 100644
index 0000000..c153269
--- /dev/null
+++ b/test/builtins/gen/isInf/7bd98f.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isInf(1.0);
+                  ^^^^^
+
+fn isInf_7bd98f() {
+  var res : bool = isInf(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_7bd98f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_7bd98f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_7bd98f();
+}
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl b/test/builtins/gen/isInf/7e81b5.wgsl
new file mode 100644
index 0000000..4b077bd
--- /dev/null
+++ b/test/builtins/gen/isInf/7e81b5.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isInf(vec<4, f32>) -> vec<4, bool>
+fn isInf_7e81b5() {
+  var res: vec4<bool> = isInf(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_7e81b5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_7e81b5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_7e81b5();
+}
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl.expected.glsl b/test/builtins/gen/isInf/7e81b5.wgsl.expected.glsl
new file mode 100644
index 0000000..b2e3c87
--- /dev/null
+++ b/test/builtins/gen/isInf/7e81b5.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isInf(vec4<f32>());
+                        ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isInf_7e81b5() {
+  bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isInf_7e81b5();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_7e81b5() {
+  bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isInf_7e81b5();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_7e81b5() {
+  bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isInf_7e81b5();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl.expected.hlsl b/test/builtins/gen/isInf/7e81b5.wgsl.expected.hlsl
new file mode 100644
index 0000000..4078ead
--- /dev/null
+++ b/test/builtins/gen/isInf/7e81b5.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isInf(vec4<f32>());
+                        ^^^^^
+
+void isInf_7e81b5() {
+  bool4 res = isinf(float4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isInf_7e81b5();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isInf_7e81b5();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isInf_7e81b5();
+  return;
+}
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl.expected.msl b/test/builtins/gen/isInf/7e81b5.wgsl.expected.msl
new file mode 100644
index 0000000..e41bafa
--- /dev/null
+++ b/test/builtins/gen/isInf/7e81b5.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isInf(vec4<f32>());
+                        ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isInf_7e81b5() {
+  bool4 res = isinf(float4());
+}
+
+float4 vertex_main_inner() {
+  isInf_7e81b5();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isInf_7e81b5();
+  return;
+}
+
+kernel void compute_main() {
+  isInf_7e81b5();
+  return;
+}
+
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl.expected.spvasm b/test/builtins/gen/isInf/7e81b5.wgsl.expected.spvasm
new file mode 100644
index 0000000..304a980
--- /dev/null
+++ b/test/builtins/gen/isInf/7e81b5.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+builtins/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isInf(vec4<f32>());
+                        ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 33
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isInf_7e81b5 "isInf_7e81b5"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v4bool = OpTypeVector %bool 4
+%_ptr_Function_v4bool = OpTypePointer Function %v4bool
+         %18 = OpConstantNull %v4bool
+         %19 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isInf_7e81b5 = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v4bool Function %18
+         %13 = OpIsInf %v4bool %5
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isInf_7e81b5
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %24 = OpLabel
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %isInf_7e81b5
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %isInf_7e81b5
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isInf/7e81b5.wgsl.expected.wgsl b/test/builtins/gen/isInf/7e81b5.wgsl.expected.wgsl
new file mode 100644
index 0000000..44f63a9
--- /dev/null
+++ b/test/builtins/gen/isInf/7e81b5.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isInf(vec4<f32>());
+                        ^^^^^
+
+fn isInf_7e81b5() {
+  var res : vec4<bool> = isInf(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_7e81b5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_7e81b5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_7e81b5();
+}
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl b/test/builtins/gen/isInf/a46d6f.wgsl
new file mode 100644
index 0000000..0d08ca2
--- /dev/null
+++ b/test/builtins/gen/isInf/a46d6f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isInf(vec<2, f32>) -> vec<2, bool>
+fn isInf_a46d6f() {
+  var res: vec2<bool> = isInf(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_a46d6f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_a46d6f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_a46d6f();
+}
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl.expected.glsl b/test/builtins/gen/isInf/a46d6f.wgsl.expected.glsl
new file mode 100644
index 0000000..d106427
--- /dev/null
+++ b/test/builtins/gen/isInf/a46d6f.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isInf(vec2<f32>());
+                        ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isInf_a46d6f() {
+  bvec2 res = isinf(vec2(0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isInf_a46d6f();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_a46d6f() {
+  bvec2 res = isinf(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isInf_a46d6f();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isInf_a46d6f() {
+  bvec2 res = isinf(vec2(0.0f, 0.0f));
+}
+
+void compute_main() {
+  isInf_a46d6f();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl.expected.hlsl b/test/builtins/gen/isInf/a46d6f.wgsl.expected.hlsl
new file mode 100644
index 0000000..c1d2bf2
--- /dev/null
+++ b/test/builtins/gen/isInf/a46d6f.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isInf(vec2<f32>());
+                        ^^^^^
+
+void isInf_a46d6f() {
+  bool2 res = isinf(float2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isInf_a46d6f();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isInf_a46d6f();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isInf_a46d6f();
+  return;
+}
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl.expected.msl b/test/builtins/gen/isInf/a46d6f.wgsl.expected.msl
new file mode 100644
index 0000000..50474b5
--- /dev/null
+++ b/test/builtins/gen/isInf/a46d6f.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isInf(vec2<f32>());
+                        ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isInf_a46d6f() {
+  bool2 res = isinf(float2());
+}
+
+float4 vertex_main_inner() {
+  isInf_a46d6f();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isInf_a46d6f();
+  return;
+}
+
+kernel void compute_main() {
+  isInf_a46d6f();
+  return;
+}
+
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl.expected.spvasm b/test/builtins/gen/isInf/a46d6f.wgsl.expected.spvasm
new file mode 100644
index 0000000..c0a8d72
--- /dev/null
+++ b/test/builtins/gen/isInf/a46d6f.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+builtins/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isInf(vec2<f32>());
+                        ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isInf_a46d6f "isInf_a46d6f"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v2bool = OpTypeVector %bool 2
+    %v2float = OpTypeVector %float 2
+         %17 = OpConstantNull %v2float
+%_ptr_Function_v2bool = OpTypePointer Function %v2bool
+         %20 = OpConstantNull %v2bool
+         %21 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isInf_a46d6f = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v2bool Function %20
+         %13 = OpIsInf %v2bool %17
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %isInf_a46d6f
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isInf_a46d6f
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isInf_a46d6f
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isInf/a46d6f.wgsl.expected.wgsl b/test/builtins/gen/isInf/a46d6f.wgsl.expected.wgsl
new file mode 100644
index 0000000..d9b764d
--- /dev/null
+++ b/test/builtins/gen/isInf/a46d6f.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isInf(vec2<f32>());
+                        ^^^^^
+
+fn isInf_a46d6f() {
+  var res : vec2<bool> = isInf(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isInf_a46d6f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isInf_a46d6f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isInf_a46d6f();
+}
diff --git a/test/builtins/gen/isNan/1280ab.wgsl b/test/builtins/gen/isNan/1280ab.wgsl
new file mode 100644
index 0000000..7495a29
--- /dev/null
+++ b/test/builtins/gen/isNan/1280ab.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNan(vec<3, f32>) -> vec<3, bool>
+fn isNan_1280ab() {
+  var res: vec3<bool> = isNan(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_1280ab();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_1280ab();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_1280ab();
+}
diff --git a/test/builtins/gen/isNan/1280ab.wgsl.expected.glsl b/test/builtins/gen/isNan/1280ab.wgsl.expected.glsl
new file mode 100644
index 0000000..4336d68
--- /dev/null
+++ b/test/builtins/gen/isNan/1280ab.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNan(vec3<f32>());
+                        ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isNan_1280ab() {
+  bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isNan_1280ab();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_1280ab() {
+  bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isNan_1280ab();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_1280ab() {
+  bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isNan_1280ab();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isNan/1280ab.wgsl.expected.hlsl b/test/builtins/gen/isNan/1280ab.wgsl.expected.hlsl
new file mode 100644
index 0000000..142d86d
--- /dev/null
+++ b/test/builtins/gen/isNan/1280ab.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNan(vec3<f32>());
+                        ^^^^^
+
+void isNan_1280ab() {
+  bool3 res = isnan(float3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNan_1280ab();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNan_1280ab();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNan_1280ab();
+  return;
+}
diff --git a/test/builtins/gen/isNan/1280ab.wgsl.expected.msl b/test/builtins/gen/isNan/1280ab.wgsl.expected.msl
new file mode 100644
index 0000000..ea4a124
--- /dev/null
+++ b/test/builtins/gen/isNan/1280ab.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNan(vec3<f32>());
+                        ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNan_1280ab() {
+  bool3 res = isnan(float3());
+}
+
+float4 vertex_main_inner() {
+  isNan_1280ab();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNan_1280ab();
+  return;
+}
+
+kernel void compute_main() {
+  isNan_1280ab();
+  return;
+}
+
diff --git a/test/builtins/gen/isNan/1280ab.wgsl.expected.spvasm b/test/builtins/gen/isNan/1280ab.wgsl.expected.spvasm
new file mode 100644
index 0000000..e12a050
--- /dev/null
+++ b/test/builtins/gen/isNan/1280ab.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+builtins/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNan(vec3<f32>());
+                        ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNan_1280ab "isNan_1280ab"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v3bool = OpTypeVector %bool 3
+    %v3float = OpTypeVector %float 3
+         %17 = OpConstantNull %v3float
+%_ptr_Function_v3bool = OpTypePointer Function %v3bool
+         %20 = OpConstantNull %v3bool
+         %21 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isNan_1280ab = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v3bool Function %20
+         %13 = OpIsNan %v3bool %17
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %isNan_1280ab
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isNan_1280ab
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isNan_1280ab
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNan/1280ab.wgsl.expected.wgsl b/test/builtins/gen/isNan/1280ab.wgsl.expected.wgsl
new file mode 100644
index 0000000..17dd287
--- /dev/null
+++ b/test/builtins/gen/isNan/1280ab.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNan(vec3<f32>());
+                        ^^^^^
+
+fn isNan_1280ab() {
+  var res : vec3<bool> = isNan(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_1280ab();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_1280ab();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_1280ab();
+}
diff --git a/test/builtins/gen/isNan/4d280d.wgsl b/test/builtins/gen/isNan/4d280d.wgsl
new file mode 100644
index 0000000..a779709
--- /dev/null
+++ b/test/builtins/gen/isNan/4d280d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNan(vec<4, f32>) -> vec<4, bool>
+fn isNan_4d280d() {
+  var res: vec4<bool> = isNan(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_4d280d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_4d280d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_4d280d();
+}
diff --git a/test/builtins/gen/isNan/4d280d.wgsl.expected.glsl b/test/builtins/gen/isNan/4d280d.wgsl.expected.glsl
new file mode 100644
index 0000000..ee19e9d
--- /dev/null
+++ b/test/builtins/gen/isNan/4d280d.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNan(vec4<f32>());
+                        ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isNan_4d280d() {
+  bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isNan_4d280d();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_4d280d() {
+  bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isNan_4d280d();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_4d280d() {
+  bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isNan_4d280d();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isNan/4d280d.wgsl.expected.hlsl b/test/builtins/gen/isNan/4d280d.wgsl.expected.hlsl
new file mode 100644
index 0000000..724ec54
--- /dev/null
+++ b/test/builtins/gen/isNan/4d280d.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNan(vec4<f32>());
+                        ^^^^^
+
+void isNan_4d280d() {
+  bool4 res = isnan(float4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNan_4d280d();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNan_4d280d();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNan_4d280d();
+  return;
+}
diff --git a/test/builtins/gen/isNan/4d280d.wgsl.expected.msl b/test/builtins/gen/isNan/4d280d.wgsl.expected.msl
new file mode 100644
index 0000000..3aeb871
--- /dev/null
+++ b/test/builtins/gen/isNan/4d280d.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNan(vec4<f32>());
+                        ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNan_4d280d() {
+  bool4 res = isnan(float4());
+}
+
+float4 vertex_main_inner() {
+  isNan_4d280d();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNan_4d280d();
+  return;
+}
+
+kernel void compute_main() {
+  isNan_4d280d();
+  return;
+}
+
diff --git a/test/builtins/gen/isNan/4d280d.wgsl.expected.spvasm b/test/builtins/gen/isNan/4d280d.wgsl.expected.spvasm
new file mode 100644
index 0000000..1fe2d27
--- /dev/null
+++ b/test/builtins/gen/isNan/4d280d.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+builtins/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNan(vec4<f32>());
+                        ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 33
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNan_4d280d "isNan_4d280d"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v4bool = OpTypeVector %bool 4
+%_ptr_Function_v4bool = OpTypePointer Function %v4bool
+         %18 = OpConstantNull %v4bool
+         %19 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isNan_4d280d = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v4bool Function %18
+         %13 = OpIsNan %v4bool %5
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isNan_4d280d
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %24 = OpLabel
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %28 = OpLabel
+         %29 = OpFunctionCall %void %isNan_4d280d
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %31 = OpLabel
+         %32 = OpFunctionCall %void %isNan_4d280d
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNan/4d280d.wgsl.expected.wgsl b/test/builtins/gen/isNan/4d280d.wgsl.expected.wgsl
new file mode 100644
index 0000000..61f41d4
--- /dev/null
+++ b/test/builtins/gen/isNan/4d280d.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNan(vec4<f32>());
+                        ^^^^^
+
+fn isNan_4d280d() {
+  var res : vec4<bool> = isNan(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_4d280d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_4d280d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_4d280d();
+}
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl b/test/builtins/gen/isNan/67ecd3.wgsl
new file mode 100644
index 0000000..6fa16a6
--- /dev/null
+++ b/test/builtins/gen/isNan/67ecd3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNan(vec<2, f32>) -> vec<2, bool>
+fn isNan_67ecd3() {
+  var res: vec2<bool> = isNan(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_67ecd3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_67ecd3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_67ecd3();
+}
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl.expected.glsl b/test/builtins/gen/isNan/67ecd3.wgsl.expected.glsl
new file mode 100644
index 0000000..d2b833b
--- /dev/null
+++ b/test/builtins/gen/isNan/67ecd3.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNan(vec2<f32>());
+                        ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isNan_67ecd3() {
+  bvec2 res = isnan(vec2(0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isNan_67ecd3();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_67ecd3() {
+  bvec2 res = isnan(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isNan_67ecd3();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_67ecd3() {
+  bvec2 res = isnan(vec2(0.0f, 0.0f));
+}
+
+void compute_main() {
+  isNan_67ecd3();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl.expected.hlsl b/test/builtins/gen/isNan/67ecd3.wgsl.expected.hlsl
new file mode 100644
index 0000000..f18e86a
--- /dev/null
+++ b/test/builtins/gen/isNan/67ecd3.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNan(vec2<f32>());
+                        ^^^^^
+
+void isNan_67ecd3() {
+  bool2 res = isnan(float2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNan_67ecd3();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNan_67ecd3();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNan_67ecd3();
+  return;
+}
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl.expected.msl b/test/builtins/gen/isNan/67ecd3.wgsl.expected.msl
new file mode 100644
index 0000000..b992e74
--- /dev/null
+++ b/test/builtins/gen/isNan/67ecd3.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNan(vec2<f32>());
+                        ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNan_67ecd3() {
+  bool2 res = isnan(float2());
+}
+
+float4 vertex_main_inner() {
+  isNan_67ecd3();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNan_67ecd3();
+  return;
+}
+
+kernel void compute_main() {
+  isNan_67ecd3();
+  return;
+}
+
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl.expected.spvasm b/test/builtins/gen/isNan/67ecd3.wgsl.expected.spvasm
new file mode 100644
index 0000000..fd0ed88
--- /dev/null
+++ b/test/builtins/gen/isNan/67ecd3.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+builtins/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNan(vec2<f32>());
+                        ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNan_67ecd3 "isNan_67ecd3"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v2bool = OpTypeVector %bool 2
+    %v2float = OpTypeVector %float 2
+         %17 = OpConstantNull %v2float
+%_ptr_Function_v2bool = OpTypePointer Function %v2bool
+         %20 = OpConstantNull %v2bool
+         %21 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isNan_67ecd3 = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v2bool Function %20
+         %13 = OpIsNan %v2bool %17
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %21
+         %23 = OpLabel
+         %24 = OpFunctionCall %void %isNan_67ecd3
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %26 = OpLabel
+         %27 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %27
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isNan_67ecd3
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isNan_67ecd3
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNan/67ecd3.wgsl.expected.wgsl b/test/builtins/gen/isNan/67ecd3.wgsl.expected.wgsl
new file mode 100644
index 0000000..59069ab
--- /dev/null
+++ b/test/builtins/gen/isNan/67ecd3.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNan(vec2<f32>());
+                        ^^^^^
+
+fn isNan_67ecd3() {
+  var res : vec2<bool> = isNan(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_67ecd3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_67ecd3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_67ecd3();
+}
diff --git a/test/builtins/gen/isNan/e4978e.wgsl b/test/builtins/gen/isNan/e4978e.wgsl
new file mode 100644
index 0000000..458f6c1
--- /dev/null
+++ b/test/builtins/gen/isNan/e4978e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNan(f32) -> bool
+fn isNan_e4978e() {
+  var res: bool = isNan(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_e4978e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_e4978e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_e4978e();
+}
diff --git a/test/builtins/gen/isNan/e4978e.wgsl.expected.glsl b/test/builtins/gen/isNan/e4978e.wgsl.expected.glsl
new file mode 100644
index 0000000..a7f4ead
--- /dev/null
+++ b/test/builtins/gen/isNan/e4978e.wgsl.expected.glsl
@@ -0,0 +1,54 @@
+builtins/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNan(1.0);
+                  ^^^^^
+
+#version 310 es
+precision mediump float;
+
+void isNan_e4978e() {
+  bool res = isnan(1.0f);
+}
+
+vec4 vertex_main() {
+  isNan_e4978e();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_e4978e() {
+  bool res = isnan(1.0f);
+}
+
+void fragment_main() {
+  isNan_e4978e();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+#version 310 es
+precision mediump float;
+
+void isNan_e4978e() {
+  bool res = isnan(1.0f);
+}
+
+void compute_main() {
+  isNan_e4978e();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
diff --git a/test/builtins/gen/isNan/e4978e.wgsl.expected.hlsl b/test/builtins/gen/isNan/e4978e.wgsl.expected.hlsl
new file mode 100644
index 0000000..6e0a1fd
--- /dev/null
+++ b/test/builtins/gen/isNan/e4978e.wgsl.expected.hlsl
@@ -0,0 +1,34 @@
+builtins/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNan(1.0);
+                  ^^^^^
+
+void isNan_e4978e() {
+  bool res = isnan(1.0f);
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNan_e4978e();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNan_e4978e();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNan_e4978e();
+  return;
+}
diff --git a/test/builtins/gen/isNan/e4978e.wgsl.expected.msl b/test/builtins/gen/isNan/e4978e.wgsl.expected.msl
new file mode 100644
index 0000000..8ebb00d
--- /dev/null
+++ b/test/builtins/gen/isNan/e4978e.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNan(1.0);
+                  ^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNan_e4978e() {
+  bool res = isnan(1.0f);
+}
+
+float4 vertex_main_inner() {
+  isNan_e4978e();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNan_e4978e();
+  return;
+}
+
+kernel void compute_main() {
+  isNan_e4978e();
+  return;
+}
+
diff --git a/test/builtins/gen/isNan/e4978e.wgsl.expected.spvasm b/test/builtins/gen/isNan/e4978e.wgsl.expected.spvasm
new file mode 100644
index 0000000..0d70048
--- /dev/null
+++ b/test/builtins/gen/isNan/e4978e.wgsl.expected.spvasm
@@ -0,0 +1,70 @@
+builtins/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNan(1.0);
+                  ^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 32
+; Schema: 0
+               OpCapability Shader
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNan_e4978e "isNan_e4978e"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+    %float_1 = OpConstant %float 1
+%_ptr_Function_bool = OpTypePointer Function %bool
+         %18 = OpConstantNull %bool
+         %19 = OpTypeFunction %v4float
+%isNan_e4978e = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_bool Function %18
+         %13 = OpIsNan %bool %float_1
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %19
+         %21 = OpLabel
+         %22 = OpFunctionCall %void %isNan_e4978e
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %24 = OpLabel
+         %25 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %25
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %isNan_e4978e
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %30 = OpLabel
+         %31 = OpFunctionCall %void %isNan_e4978e
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNan/e4978e.wgsl.expected.wgsl b/test/builtins/gen/isNan/e4978e.wgsl.expected.wgsl
new file mode 100644
index 0000000..840f21a
--- /dev/null
+++ b/test/builtins/gen/isNan/e4978e.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNan(1.0);
+                  ^^^^^
+
+fn isNan_e4978e() {
+  var res : bool = isNan(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNan_e4978e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNan_e4978e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNan_e4978e();
+}
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl b/test/builtins/gen/isNormal/863dcd.wgsl
new file mode 100644
index 0000000..207f3b6
--- /dev/null
+++ b/test/builtins/gen/isNormal/863dcd.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNormal(vec<4, f32>) -> vec<4, bool>
+fn isNormal_863dcd() {
+  var res: vec4<bool> = isNormal(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_863dcd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_863dcd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_863dcd();
+}
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl b/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
new file mode 100644
index 0000000..c33bf3e
--- /dev/null
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.glsl
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+builtins/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNormal(vec4<f32>());
+                        ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+  uint4 exponent = asuint(param_0) & 0x7f80000;
+  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_863dcd() {
+  bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isNormal_863dcd();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+  uint4 exponent = asuint(param_0) & 0x7f80000;
+  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_863dcd() {
+  bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isNormal_863dcd();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+  uint4 exponent = asuint(param_0) & 0x7f80000;
+  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_863dcd() {
+  bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isNormal_863dcd();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.hlsl b/test/builtins/gen/isNormal/863dcd.wgsl.expected.hlsl
new file mode 100644
index 0000000..8573bd5
--- /dev/null
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.hlsl
@@ -0,0 +1,40 @@
+builtins/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNormal(vec4<f32>());
+                        ^^^^^^^^
+
+bool4 tint_isNormal(float4 param_0) {
+  uint4 exponent = asuint(param_0) & 0x7f80000;
+  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+void isNormal_863dcd() {
+  bool4 res = tint_isNormal(float4(0.0f, 0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNormal_863dcd();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNormal_863dcd();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNormal_863dcd();
+  return;
+}
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.msl b/test/builtins/gen/isNormal/863dcd.wgsl.expected.msl
new file mode 100644
index 0000000..5844ab9
--- /dev/null
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNormal(vec4<f32>());
+                        ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNormal_863dcd() {
+  bool4 res = isnormal(float4());
+}
+
+float4 vertex_main_inner() {
+  isNormal_863dcd();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNormal_863dcd();
+  return;
+}
+
+kernel void compute_main() {
+  isNormal_863dcd();
+  return;
+}
+
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.spvasm b/test/builtins/gen/isNormal/863dcd.wgsl.expected.spvasm
new file mode 100644
index 0000000..d776969
--- /dev/null
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+builtins/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNormal(vec4<f32>());
+                        ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+         %16 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNormal_863dcd "isNormal_863dcd"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v4bool = OpTypeVector %bool 4
+       %uint = OpTypeInt 32 0
+%uint_133693440 = OpConstant %uint 133693440
+%uint_524288 = OpConstant %uint 524288
+%uint_133169152 = OpConstant %uint 133169152
+     %v4uint = OpTypeVector %uint 4
+%_ptr_Function_v4bool = OpTypePointer Function %v4bool
+         %30 = OpConstantNull %v4bool
+         %31 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isNormal_863dcd = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v4bool Function %30
+         %22 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
+         %23 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
+         %24 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
+         %25 = OpBitcast %v4uint %5
+         %26 = OpBitwiseAnd %v4uint %25 %22
+         %27 = OpExtInst %v4uint %16 UClamp %26 %23 %24
+         %13 = OpIEqual %v4bool %26 %27
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %31
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %isNormal_863dcd
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %36 = OpLabel
+         %37 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %37
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %40 = OpLabel
+         %41 = OpFunctionCall %void %isNormal_863dcd
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %43 = OpLabel
+         %44 = OpFunctionCall %void %isNormal_863dcd
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNormal/863dcd.wgsl.expected.wgsl b/test/builtins/gen/isNormal/863dcd.wgsl.expected.wgsl
new file mode 100644
index 0000000..d5c77bf
--- /dev/null
+++ b/test/builtins/gen/isNormal/863dcd.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec4<bool> = isNormal(vec4<f32>());
+                        ^^^^^^^^
+
+fn isNormal_863dcd() {
+  var res : vec4<bool> = isNormal(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_863dcd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_863dcd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_863dcd();
+}
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl b/test/builtins/gen/isNormal/b00ab1.wgsl
new file mode 100644
index 0000000..3820c63
--- /dev/null
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNormal(vec<2, f32>) -> vec<2, bool>
+fn isNormal_b00ab1() {
+  var res: vec2<bool> = isNormal(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_b00ab1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_b00ab1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_b00ab1();
+}
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
new file mode 100644
index 0000000..ed74f8e
--- /dev/null
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.glsl
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+builtins/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNormal(vec2<f32>());
+                        ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+bvec2 tint_isNormal(vec2 param_0) {
+  uint2 exponent = asuint(param_0) & 0x7f80000;
+  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_b00ab1() {
+  bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isNormal_b00ab1();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec2 tint_isNormal(vec2 param_0) {
+  uint2 exponent = asuint(param_0) & 0x7f80000;
+  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_b00ab1() {
+  bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isNormal_b00ab1();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec2 tint_isNormal(vec2 param_0) {
+  uint2 exponent = asuint(param_0) & 0x7f80000;
+  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_b00ab1() {
+  bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
+}
+
+void compute_main() {
+  isNormal_b00ab1();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint2' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.hlsl b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.hlsl
new file mode 100644
index 0000000..5bcbdb2
--- /dev/null
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.hlsl
@@ -0,0 +1,40 @@
+builtins/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNormal(vec2<f32>());
+                        ^^^^^^^^
+
+bool2 tint_isNormal(float2 param_0) {
+  uint2 exponent = asuint(param_0) & 0x7f80000;
+  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+void isNormal_b00ab1() {
+  bool2 res = tint_isNormal(float2(0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNormal_b00ab1();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNormal_b00ab1();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNormal_b00ab1();
+  return;
+}
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.msl b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.msl
new file mode 100644
index 0000000..1203fa9
--- /dev/null
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNormal(vec2<f32>());
+                        ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNormal_b00ab1() {
+  bool2 res = isnormal(float2());
+}
+
+float4 vertex_main_inner() {
+  isNormal_b00ab1();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNormal_b00ab1();
+  return;
+}
+
+kernel void compute_main() {
+  isNormal_b00ab1();
+  return;
+}
+
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.spvasm b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.spvasm
new file mode 100644
index 0000000..01b0b52
--- /dev/null
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+builtins/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNormal(vec2<f32>());
+                        ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+         %18 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNormal_b00ab1 "isNormal_b00ab1"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v2bool = OpTypeVector %bool 2
+    %v2float = OpTypeVector %float 2
+         %17 = OpConstantNull %v2float
+       %uint = OpTypeInt 32 0
+%uint_133693440 = OpConstant %uint 133693440
+%uint_524288 = OpConstant %uint 524288
+%uint_133169152 = OpConstant %uint 133169152
+     %v2uint = OpTypeVector %uint 2
+%_ptr_Function_v2bool = OpTypePointer Function %v2bool
+         %32 = OpConstantNull %v2bool
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isNormal_b00ab1 = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v2bool Function %32
+         %24 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
+         %25 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
+         %26 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
+         %27 = OpBitcast %v2uint %17
+         %28 = OpBitwiseAnd %v2uint %27 %24
+         %29 = OpExtInst %v2uint %18 UClamp %28 %25 %26
+         %13 = OpIEqual %v2bool %28 %29
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %isNormal_b00ab1
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %isNormal_b00ab1
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %isNormal_b00ab1
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNormal/b00ab1.wgsl.expected.wgsl b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.wgsl
new file mode 100644
index 0000000..cc9832b
--- /dev/null
+++ b/test/builtins/gen/isNormal/b00ab1.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec2<bool> = isNormal(vec2<f32>());
+                        ^^^^^^^^
+
+fn isNormal_b00ab1() {
+  var res : vec2<bool> = isNormal(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_b00ab1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_b00ab1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_b00ab1();
+}
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl b/test/builtins/gen/isNormal/c286b7.wgsl
new file mode 100644
index 0000000..b7cecad
--- /dev/null
+++ b/test/builtins/gen/isNormal/c286b7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNormal(vec<3, f32>) -> vec<3, bool>
+fn isNormal_c286b7() {
+  var res: vec3<bool> = isNormal(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_c286b7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_c286b7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_c286b7();
+}
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl b/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
new file mode 100644
index 0000000..79e52f6
--- /dev/null
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.glsl
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+builtins/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNormal(vec3<f32>());
+                        ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+bvec3 tint_isNormal(vec3 param_0) {
+  uint3 exponent = asuint(param_0) & 0x7f80000;
+  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_c286b7() {
+  bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
+}
+
+vec4 vertex_main() {
+  isNormal_c286b7();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint3' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec3 tint_isNormal(vec3 param_0) {
+  uint3 exponent = asuint(param_0) & 0x7f80000;
+  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_c286b7() {
+  bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void fragment_main() {
+  isNormal_c286b7();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint3' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bvec3 tint_isNormal(vec3 param_0) {
+  uint3 exponent = asuint(param_0) & 0x7f80000;
+  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_c286b7() {
+  bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
+}
+
+void compute_main() {
+  isNormal_c286b7();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint3' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.hlsl b/test/builtins/gen/isNormal/c286b7.wgsl.expected.hlsl
new file mode 100644
index 0000000..a9061f3
--- /dev/null
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.hlsl
@@ -0,0 +1,40 @@
+builtins/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNormal(vec3<f32>());
+                        ^^^^^^^^
+
+bool3 tint_isNormal(float3 param_0) {
+  uint3 exponent = asuint(param_0) & 0x7f80000;
+  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+void isNormal_c286b7() {
+  bool3 res = tint_isNormal(float3(0.0f, 0.0f, 0.0f));
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNormal_c286b7();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNormal_c286b7();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNormal_c286b7();
+  return;
+}
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.msl b/test/builtins/gen/isNormal/c286b7.wgsl.expected.msl
new file mode 100644
index 0000000..e344161
--- /dev/null
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNormal(vec3<f32>());
+                        ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNormal_c286b7() {
+  bool3 res = isnormal(float3());
+}
+
+float4 vertex_main_inner() {
+  isNormal_c286b7();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNormal_c286b7();
+  return;
+}
+
+kernel void compute_main() {
+  isNormal_c286b7();
+  return;
+}
+
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.spvasm b/test/builtins/gen/isNormal/c286b7.wgsl.expected.spvasm
new file mode 100644
index 0000000..2323fa5
--- /dev/null
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+builtins/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNormal(vec3<f32>());
+                        ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+         %18 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNormal_c286b7 "isNormal_c286b7"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v3bool = OpTypeVector %bool 3
+    %v3float = OpTypeVector %float 3
+         %17 = OpConstantNull %v3float
+       %uint = OpTypeInt 32 0
+%uint_133693440 = OpConstant %uint 133693440
+%uint_524288 = OpConstant %uint 524288
+%uint_133169152 = OpConstant %uint 133169152
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Function_v3bool = OpTypePointer Function %v3bool
+         %32 = OpConstantNull %v3bool
+         %33 = OpTypeFunction %v4float
+    %float_1 = OpConstant %float 1
+%isNormal_c286b7 = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_v3bool Function %32
+         %24 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
+         %25 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
+         %26 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
+         %27 = OpBitcast %v3uint %17
+         %28 = OpBitwiseAnd %v3uint %27 %24
+         %29 = OpExtInst %v3uint %18 UClamp %28 %25 %26
+         %13 = OpIEqual %v3bool %28 %29
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %33
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %isNormal_c286b7
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %38 = OpLabel
+         %39 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %39
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %42 = OpLabel
+         %43 = OpFunctionCall %void %isNormal_c286b7
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %45 = OpLabel
+         %46 = OpFunctionCall %void %isNormal_c286b7
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNormal/c286b7.wgsl.expected.wgsl b/test/builtins/gen/isNormal/c286b7.wgsl.expected.wgsl
new file mode 100644
index 0000000..cc68829
--- /dev/null
+++ b/test/builtins/gen/isNormal/c286b7.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated builtin
+  var res: vec3<bool> = isNormal(vec3<f32>());
+                        ^^^^^^^^
+
+fn isNormal_c286b7() {
+  var res : vec3<bool> = isNormal(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_c286b7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_c286b7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_c286b7();
+}
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl b/test/builtins/gen/isNormal/c6e880.wgsl
new file mode 100644
index 0000000..25053e5
--- /dev/null
+++ b/test/builtins/gen/isNormal/c6e880.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn isNormal(f32) -> bool
+fn isNormal_c6e880() {
+  var res: bool = isNormal(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_c6e880();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_c6e880();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_c6e880();
+}
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl b/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
new file mode 100644
index 0000000..ef28761
--- /dev/null
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.glsl
@@ -0,0 +1,101 @@
+SKIP: FAILED
+
+builtins/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNormal(1.0);
+                  ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+bool tint_isNormal(float param_0) {
+  uint exponent = asuint(param_0) & 0x7f80000;
+  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_c6e880() {
+  bool res = tint_isNormal(1.0f);
+}
+
+vec4 vertex_main() {
+  isNormal_c6e880();
+  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+void main() {
+  vec4 inner_result = vertex_main();
+  gl_Position = inner_result;
+  gl_Position.y = -(gl_Position.y);
+  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bool tint_isNormal(float param_0) {
+  uint exponent = asuint(param_0) & 0x7f80000;
+  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_c6e880() {
+  bool res = tint_isNormal(1.0f);
+}
+
+void fragment_main() {
+  isNormal_c6e880();
+}
+
+void main() {
+  fragment_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
+#version 310 es
+precision mediump float;
+
+bool tint_isNormal(float param_0) {
+  uint exponent = asuint(param_0) & 0x7f80000;
+  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void isNormal_c6e880() {
+  bool res = tint_isNormal(1.0f);
+}
+
+void compute_main() {
+  isNormal_c6e880();
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  compute_main();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'asuint' : no matching overloaded function found
+ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
+ERROR: 0:5: '' : compilation terminated
+ERROR: 3 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.hlsl b/test/builtins/gen/isNormal/c6e880.wgsl.expected.hlsl
new file mode 100644
index 0000000..c54510c
--- /dev/null
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.hlsl
@@ -0,0 +1,40 @@
+builtins/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNormal(1.0);
+                  ^^^^^^^^
+
+bool tint_isNormal(float param_0) {
+  uint exponent = asuint(param_0) & 0x7f80000;
+  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+void isNormal_c6e880() {
+  bool res = tint_isNormal(1.0f);
+}
+
+struct tint_symbol {
+  float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+  isNormal_c6e880();
+  return float4(0.0f, 0.0f, 0.0f, 0.0f);
+}
+
+tint_symbol vertex_main() {
+  const float4 inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = (tint_symbol)0;
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+void fragment_main() {
+  isNormal_c6e880();
+  return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+  isNormal_c6e880();
+  return;
+}
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.msl b/test/builtins/gen/isNormal/c6e880.wgsl.expected.msl
new file mode 100644
index 0000000..94dd83f
--- /dev/null
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.msl
@@ -0,0 +1,37 @@
+builtins/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNormal(1.0);
+                  ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+struct tint_symbol {
+  float4 value [[position]];
+};
+
+void isNormal_c6e880() {
+  bool res = isnormal(1.0f);
+}
+
+float4 vertex_main_inner() {
+  isNormal_c6e880();
+  return float4();
+}
+
+vertex tint_symbol vertex_main() {
+  float4 const inner_result = vertex_main_inner();
+  tint_symbol wrapper_result = {};
+  wrapper_result.value = inner_result;
+  return wrapper_result;
+}
+
+fragment void fragment_main() {
+  isNormal_c6e880();
+  return;
+}
+
+kernel void compute_main() {
+  isNormal_c6e880();
+  return;
+}
+
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.spvasm b/test/builtins/gen/isNormal/c6e880.wgsl.expected.spvasm
new file mode 100644
index 0000000..9e1e207
--- /dev/null
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.spvasm
@@ -0,0 +1,78 @@
+builtins/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNormal(1.0);
+                  ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 40
+; Schema: 0
+               OpCapability Shader
+         %16 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
+               OpEntryPoint Fragment %fragment_main "fragment_main"
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %fragment_main OriginUpperLeft
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %value "value"
+               OpName %vertex_point_size "vertex_point_size"
+               OpName %isNormal_c6e880 "isNormal_c6e880"
+               OpName %res "res"
+               OpName %vertex_main_inner "vertex_main_inner"
+               OpName %vertex_main "vertex_main"
+               OpName %fragment_main "fragment_main"
+               OpName %compute_main "compute_main"
+               OpDecorate %value BuiltIn Position
+               OpDecorate %vertex_point_size BuiltIn PointSize
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+          %5 = OpConstantNull %v4float
+      %value = OpVariable %_ptr_Output_v4float Output %5
+%_ptr_Output_float = OpTypePointer Output %float
+          %8 = OpConstantNull %float
+%vertex_point_size = OpVariable %_ptr_Output_float Output %8
+       %void = OpTypeVoid
+          %9 = OpTypeFunction %void
+       %bool = OpTypeBool
+    %float_1 = OpConstant %float 1
+       %uint = OpTypeInt 32 0
+%uint_133693440 = OpConstant %uint 133693440
+%uint_524288 = OpConstant %uint 524288
+%uint_133169152 = OpConstant %uint 133169152
+%_ptr_Function_bool = OpTypePointer Function %bool
+         %26 = OpConstantNull %bool
+         %27 = OpTypeFunction %v4float
+%isNormal_c6e880 = OpFunction %void None %9
+         %12 = OpLabel
+        %res = OpVariable %_ptr_Function_bool Function %26
+         %21 = OpBitcast %uint %float_1
+         %22 = OpBitwiseAnd %uint %21 %uint_133693440
+         %23 = OpExtInst %uint %16 UClamp %22 %uint_524288 %uint_133169152
+         %13 = OpIEqual %bool %22 %23
+               OpStore %res %13
+               OpReturn
+               OpFunctionEnd
+%vertex_main_inner = OpFunction %v4float None %27
+         %29 = OpLabel
+         %30 = OpFunctionCall %void %isNormal_c6e880
+               OpReturnValue %5
+               OpFunctionEnd
+%vertex_main = OpFunction %void None %9
+         %32 = OpLabel
+         %33 = OpFunctionCall %v4float %vertex_main_inner
+               OpStore %value %33
+               OpStore %vertex_point_size %float_1
+               OpReturn
+               OpFunctionEnd
+%fragment_main = OpFunction %void None %9
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %isNormal_c6e880
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %9
+         %38 = OpLabel
+         %39 = OpFunctionCall %void %isNormal_c6e880
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/gen/isNormal/c6e880.wgsl.expected.wgsl b/test/builtins/gen/isNormal/c6e880.wgsl.expected.wgsl
new file mode 100644
index 0000000..2f156b5
--- /dev/null
+++ b/test/builtins/gen/isNormal/c6e880.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+builtins/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated builtin
+  var res: bool = isNormal(1.0);
+                  ^^^^^^^^
+
+fn isNormal_c6e880() {
+  var res : bool = isNormal(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  isNormal_c6e880();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  isNormal_c6e880();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  isNormal_c6e880();
+}
diff --git a/test/builtins/gen/ldexp/a31cdc.wgsl b/test/builtins/gen/ldexp/a31cdc.wgsl
new file mode 100644
index 0000000..575bcca
--- /dev/null
+++ b/test/builtins/gen/ldexp/a31cdc.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ldexp(vec<3, f32>, vec<3, i32>) -> vec<3, f32>
+fn ldexp_a31cdc() {
+  var res: vec3<f32> = ldexp(vec3<f32>(), vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ldexp_a31cdc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ldexp_a31cdc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ldexp_a31cdc();
+}
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.glsl
rename to test/builtins/gen/ldexp/a31cdc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.hlsl b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.hlsl
rename to test/builtins/gen/ldexp/a31cdc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.msl b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.msl
rename to test/builtins/gen/ldexp/a31cdc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.spvasm b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.spvasm
rename to test/builtins/gen/ldexp/a31cdc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.wgsl b/test/builtins/gen/ldexp/a31cdc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/a31cdc.wgsl.expected.wgsl
rename to test/builtins/gen/ldexp/a31cdc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/ldexp/abd718.wgsl b/test/builtins/gen/ldexp/abd718.wgsl
new file mode 100644
index 0000000..9d03bd8
--- /dev/null
+++ b/test/builtins/gen/ldexp/abd718.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ldexp(vec<2, f32>, vec<2, i32>) -> vec<2, f32>
+fn ldexp_abd718() {
+  var res: vec2<f32> = ldexp(vec2<f32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ldexp_abd718();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ldexp_abd718();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ldexp_abd718();
+}
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl b/test/builtins/gen/ldexp/abd718.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/abd718.wgsl.expected.glsl
rename to test/builtins/gen/ldexp/abd718.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.hlsl b/test/builtins/gen/ldexp/abd718.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/abd718.wgsl.expected.hlsl
rename to test/builtins/gen/ldexp/abd718.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.msl b/test/builtins/gen/ldexp/abd718.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ldexp/abd718.wgsl.expected.msl
rename to test/builtins/gen/ldexp/abd718.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.spvasm b/test/builtins/gen/ldexp/abd718.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ldexp/abd718.wgsl.expected.spvasm
rename to test/builtins/gen/ldexp/abd718.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl.expected.wgsl b/test/builtins/gen/ldexp/abd718.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/abd718.wgsl.expected.wgsl
rename to test/builtins/gen/ldexp/abd718.wgsl.expected.wgsl
diff --git a/test/builtins/gen/ldexp/cc9cde.wgsl b/test/builtins/gen/ldexp/cc9cde.wgsl
new file mode 100644
index 0000000..aaed15c
--- /dev/null
+++ b/test/builtins/gen/ldexp/cc9cde.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ldexp(vec<4, f32>, vec<4, i32>) -> vec<4, f32>
+fn ldexp_cc9cde() {
+  var res: vec4<f32> = ldexp(vec4<f32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ldexp_cc9cde();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ldexp_cc9cde();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ldexp_cc9cde();
+}
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.glsl
rename to test/builtins/gen/ldexp/cc9cde.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.hlsl b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.hlsl
rename to test/builtins/gen/ldexp/cc9cde.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.msl b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.msl
rename to test/builtins/gen/ldexp/cc9cde.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.spvasm b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.spvasm
rename to test/builtins/gen/ldexp/cc9cde.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.wgsl b/test/builtins/gen/ldexp/cc9cde.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/cc9cde.wgsl.expected.wgsl
rename to test/builtins/gen/ldexp/cc9cde.wgsl.expected.wgsl
diff --git a/test/builtins/gen/ldexp/db8b49.wgsl b/test/builtins/gen/ldexp/db8b49.wgsl
new file mode 100644
index 0000000..18a79ea
--- /dev/null
+++ b/test/builtins/gen/ldexp/db8b49.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn ldexp(f32, i32) -> f32
+fn ldexp_db8b49() {
+  var res: f32 = ldexp(1.0, 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  ldexp_db8b49();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  ldexp_db8b49();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  ldexp_db8b49();
+}
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl b/test/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/db8b49.wgsl.expected.glsl
rename to test/builtins/gen/ldexp/db8b49.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.hlsl b/test/builtins/gen/ldexp/db8b49.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/db8b49.wgsl.expected.hlsl
rename to test/builtins/gen/ldexp/db8b49.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.msl b/test/builtins/gen/ldexp/db8b49.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/ldexp/db8b49.wgsl.expected.msl
rename to test/builtins/gen/ldexp/db8b49.wgsl.expected.msl
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.spvasm b/test/builtins/gen/ldexp/db8b49.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/ldexp/db8b49.wgsl.expected.spvasm
rename to test/builtins/gen/ldexp/db8b49.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl.expected.wgsl b/test/builtins/gen/ldexp/db8b49.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/ldexp/db8b49.wgsl.expected.wgsl
rename to test/builtins/gen/ldexp/db8b49.wgsl.expected.wgsl
diff --git a/test/builtins/gen/length/056071.wgsl b/test/builtins/gen/length/056071.wgsl
new file mode 100644
index 0000000..dab742f
--- /dev/null
+++ b/test/builtins/gen/length/056071.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn length(vec<3, f32>) -> f32
+fn length_056071() {
+  var res: f32 = length(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  length_056071();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  length_056071();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  length_056071();
+}
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.glsl b/test/builtins/gen/length/056071.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/length/056071.wgsl.expected.glsl
rename to test/builtins/gen/length/056071.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.hlsl b/test/builtins/gen/length/056071.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/length/056071.wgsl.expected.hlsl
rename to test/builtins/gen/length/056071.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.msl b/test/builtins/gen/length/056071.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/length/056071.wgsl.expected.msl
rename to test/builtins/gen/length/056071.wgsl.expected.msl
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.spvasm b/test/builtins/gen/length/056071.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/length/056071.wgsl.expected.spvasm
rename to test/builtins/gen/length/056071.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/length/056071.wgsl.expected.wgsl b/test/builtins/gen/length/056071.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/length/056071.wgsl.expected.wgsl
rename to test/builtins/gen/length/056071.wgsl.expected.wgsl
diff --git a/test/builtins/gen/length/602a17.wgsl b/test/builtins/gen/length/602a17.wgsl
new file mode 100644
index 0000000..092a024
--- /dev/null
+++ b/test/builtins/gen/length/602a17.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn length(f32) -> f32
+fn length_602a17() {
+  var res: f32 = length(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  length_602a17();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  length_602a17();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  length_602a17();
+}
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.glsl b/test/builtins/gen/length/602a17.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/length/602a17.wgsl.expected.glsl
rename to test/builtins/gen/length/602a17.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.hlsl b/test/builtins/gen/length/602a17.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/length/602a17.wgsl.expected.hlsl
rename to test/builtins/gen/length/602a17.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.msl b/test/builtins/gen/length/602a17.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/length/602a17.wgsl.expected.msl
rename to test/builtins/gen/length/602a17.wgsl.expected.msl
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.spvasm b/test/builtins/gen/length/602a17.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/length/602a17.wgsl.expected.spvasm
rename to test/builtins/gen/length/602a17.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/length/602a17.wgsl.expected.wgsl b/test/builtins/gen/length/602a17.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/length/602a17.wgsl.expected.wgsl
rename to test/builtins/gen/length/602a17.wgsl.expected.wgsl
diff --git a/test/builtins/gen/length/afde8b.wgsl b/test/builtins/gen/length/afde8b.wgsl
new file mode 100644
index 0000000..eb77530
--- /dev/null
+++ b/test/builtins/gen/length/afde8b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn length(vec<2, f32>) -> f32
+fn length_afde8b() {
+  var res: f32 = length(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  length_afde8b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  length_afde8b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  length_afde8b();
+}
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.glsl b/test/builtins/gen/length/afde8b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/length/afde8b.wgsl.expected.glsl
rename to test/builtins/gen/length/afde8b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.hlsl b/test/builtins/gen/length/afde8b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/length/afde8b.wgsl.expected.hlsl
rename to test/builtins/gen/length/afde8b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.msl b/test/builtins/gen/length/afde8b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/length/afde8b.wgsl.expected.msl
rename to test/builtins/gen/length/afde8b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.spvasm b/test/builtins/gen/length/afde8b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/length/afde8b.wgsl.expected.spvasm
rename to test/builtins/gen/length/afde8b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/length/afde8b.wgsl.expected.wgsl b/test/builtins/gen/length/afde8b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/length/afde8b.wgsl.expected.wgsl
rename to test/builtins/gen/length/afde8b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/length/becebf.wgsl b/test/builtins/gen/length/becebf.wgsl
new file mode 100644
index 0000000..ca992f1
--- /dev/null
+++ b/test/builtins/gen/length/becebf.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn length(vec<4, f32>) -> f32
+fn length_becebf() {
+  var res: f32 = length(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  length_becebf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  length_becebf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  length_becebf();
+}
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.glsl b/test/builtins/gen/length/becebf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/length/becebf.wgsl.expected.glsl
rename to test/builtins/gen/length/becebf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.hlsl b/test/builtins/gen/length/becebf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/length/becebf.wgsl.expected.hlsl
rename to test/builtins/gen/length/becebf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.msl b/test/builtins/gen/length/becebf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/length/becebf.wgsl.expected.msl
rename to test/builtins/gen/length/becebf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.spvasm b/test/builtins/gen/length/becebf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/length/becebf.wgsl.expected.spvasm
rename to test/builtins/gen/length/becebf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/length/becebf.wgsl.expected.wgsl b/test/builtins/gen/length/becebf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/length/becebf.wgsl.expected.wgsl
rename to test/builtins/gen/length/becebf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log/3da25a.wgsl b/test/builtins/gen/log/3da25a.wgsl
new file mode 100644
index 0000000..6504dc1
--- /dev/null
+++ b/test/builtins/gen/log/3da25a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log(vec<4, f32>) -> vec<4, f32>
+fn log_3da25a() {
+  var res: vec4<f32> = log(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log_3da25a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log_3da25a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log_3da25a();
+}
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.glsl b/test/builtins/gen/log/3da25a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log/3da25a.wgsl.expected.glsl
rename to test/builtins/gen/log/3da25a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.hlsl b/test/builtins/gen/log/3da25a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log/3da25a.wgsl.expected.hlsl
rename to test/builtins/gen/log/3da25a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.msl b/test/builtins/gen/log/3da25a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log/3da25a.wgsl.expected.msl
rename to test/builtins/gen/log/3da25a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.spvasm b/test/builtins/gen/log/3da25a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log/3da25a.wgsl.expected.spvasm
rename to test/builtins/gen/log/3da25a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log/3da25a.wgsl.expected.wgsl b/test/builtins/gen/log/3da25a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log/3da25a.wgsl.expected.wgsl
rename to test/builtins/gen/log/3da25a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log/7114a6.wgsl b/test/builtins/gen/log/7114a6.wgsl
new file mode 100644
index 0000000..d37f9f9
--- /dev/null
+++ b/test/builtins/gen/log/7114a6.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log(f32) -> f32
+fn log_7114a6() {
+  var res: f32 = log(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log_7114a6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log_7114a6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log_7114a6();
+}
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.glsl b/test/builtins/gen/log/7114a6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log/7114a6.wgsl.expected.glsl
rename to test/builtins/gen/log/7114a6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.hlsl b/test/builtins/gen/log/7114a6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log/7114a6.wgsl.expected.hlsl
rename to test/builtins/gen/log/7114a6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.msl b/test/builtins/gen/log/7114a6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log/7114a6.wgsl.expected.msl
rename to test/builtins/gen/log/7114a6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.spvasm b/test/builtins/gen/log/7114a6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log/7114a6.wgsl.expected.spvasm
rename to test/builtins/gen/log/7114a6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log/7114a6.wgsl.expected.wgsl b/test/builtins/gen/log/7114a6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log/7114a6.wgsl.expected.wgsl
rename to test/builtins/gen/log/7114a6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log/b2ce28.wgsl b/test/builtins/gen/log/b2ce28.wgsl
new file mode 100644
index 0000000..38e21d5c
--- /dev/null
+++ b/test/builtins/gen/log/b2ce28.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log(vec<2, f32>) -> vec<2, f32>
+fn log_b2ce28() {
+  var res: vec2<f32> = log(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log_b2ce28();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log_b2ce28();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log_b2ce28();
+}
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl b/test/builtins/gen/log/b2ce28.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log/b2ce28.wgsl.expected.glsl
rename to test/builtins/gen/log/b2ce28.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.hlsl b/test/builtins/gen/log/b2ce28.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log/b2ce28.wgsl.expected.hlsl
rename to test/builtins/gen/log/b2ce28.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.msl b/test/builtins/gen/log/b2ce28.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log/b2ce28.wgsl.expected.msl
rename to test/builtins/gen/log/b2ce28.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.spvasm b/test/builtins/gen/log/b2ce28.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log/b2ce28.wgsl.expected.spvasm
rename to test/builtins/gen/log/b2ce28.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl.expected.wgsl b/test/builtins/gen/log/b2ce28.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log/b2ce28.wgsl.expected.wgsl
rename to test/builtins/gen/log/b2ce28.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log/f4c570.wgsl b/test/builtins/gen/log/f4c570.wgsl
new file mode 100644
index 0000000..62edf13
--- /dev/null
+++ b/test/builtins/gen/log/f4c570.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log(vec<3, f32>) -> vec<3, f32>
+fn log_f4c570() {
+  var res: vec3<f32> = log(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log_f4c570();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log_f4c570();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log_f4c570();
+}
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.glsl b/test/builtins/gen/log/f4c570.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log/f4c570.wgsl.expected.glsl
rename to test/builtins/gen/log/f4c570.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.hlsl b/test/builtins/gen/log/f4c570.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log/f4c570.wgsl.expected.hlsl
rename to test/builtins/gen/log/f4c570.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.msl b/test/builtins/gen/log/f4c570.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log/f4c570.wgsl.expected.msl
rename to test/builtins/gen/log/f4c570.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.spvasm b/test/builtins/gen/log/f4c570.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log/f4c570.wgsl.expected.spvasm
rename to test/builtins/gen/log/f4c570.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log/f4c570.wgsl.expected.wgsl b/test/builtins/gen/log/f4c570.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log/f4c570.wgsl.expected.wgsl
rename to test/builtins/gen/log/f4c570.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log2/4036ed.wgsl b/test/builtins/gen/log2/4036ed.wgsl
new file mode 100644
index 0000000..9f08fb0
--- /dev/null
+++ b/test/builtins/gen/log2/4036ed.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log2(f32) -> f32
+fn log2_4036ed() {
+  var res: f32 = log2(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log2_4036ed();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log2_4036ed();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log2_4036ed();
+}
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl b/test/builtins/gen/log2/4036ed.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log2/4036ed.wgsl.expected.glsl
rename to test/builtins/gen/log2/4036ed.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.hlsl b/test/builtins/gen/log2/4036ed.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log2/4036ed.wgsl.expected.hlsl
rename to test/builtins/gen/log2/4036ed.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.msl b/test/builtins/gen/log2/4036ed.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log2/4036ed.wgsl.expected.msl
rename to test/builtins/gen/log2/4036ed.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.spvasm b/test/builtins/gen/log2/4036ed.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log2/4036ed.wgsl.expected.spvasm
rename to test/builtins/gen/log2/4036ed.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl.expected.wgsl b/test/builtins/gen/log2/4036ed.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log2/4036ed.wgsl.expected.wgsl
rename to test/builtins/gen/log2/4036ed.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log2/902988.wgsl b/test/builtins/gen/log2/902988.wgsl
new file mode 100644
index 0000000..e3ed97f
--- /dev/null
+++ b/test/builtins/gen/log2/902988.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log2(vec<4, f32>) -> vec<4, f32>
+fn log2_902988() {
+  var res: vec4<f32> = log2(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log2_902988();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log2_902988();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log2_902988();
+}
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.glsl b/test/builtins/gen/log2/902988.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log2/902988.wgsl.expected.glsl
rename to test/builtins/gen/log2/902988.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.hlsl b/test/builtins/gen/log2/902988.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log2/902988.wgsl.expected.hlsl
rename to test/builtins/gen/log2/902988.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.msl b/test/builtins/gen/log2/902988.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log2/902988.wgsl.expected.msl
rename to test/builtins/gen/log2/902988.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.spvasm b/test/builtins/gen/log2/902988.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log2/902988.wgsl.expected.spvasm
rename to test/builtins/gen/log2/902988.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log2/902988.wgsl.expected.wgsl b/test/builtins/gen/log2/902988.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log2/902988.wgsl.expected.wgsl
rename to test/builtins/gen/log2/902988.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log2/adb233.wgsl b/test/builtins/gen/log2/adb233.wgsl
new file mode 100644
index 0000000..07ea6c1
--- /dev/null
+++ b/test/builtins/gen/log2/adb233.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log2(vec<3, f32>) -> vec<3, f32>
+fn log2_adb233() {
+  var res: vec3<f32> = log2(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log2_adb233();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log2_adb233();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log2_adb233();
+}
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.glsl b/test/builtins/gen/log2/adb233.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log2/adb233.wgsl.expected.glsl
rename to test/builtins/gen/log2/adb233.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.hlsl b/test/builtins/gen/log2/adb233.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log2/adb233.wgsl.expected.hlsl
rename to test/builtins/gen/log2/adb233.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.msl b/test/builtins/gen/log2/adb233.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log2/adb233.wgsl.expected.msl
rename to test/builtins/gen/log2/adb233.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.spvasm b/test/builtins/gen/log2/adb233.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log2/adb233.wgsl.expected.spvasm
rename to test/builtins/gen/log2/adb233.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log2/adb233.wgsl.expected.wgsl b/test/builtins/gen/log2/adb233.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log2/adb233.wgsl.expected.wgsl
rename to test/builtins/gen/log2/adb233.wgsl.expected.wgsl
diff --git a/test/builtins/gen/log2/aea659.wgsl b/test/builtins/gen/log2/aea659.wgsl
new file mode 100644
index 0000000..6b91da2
--- /dev/null
+++ b/test/builtins/gen/log2/aea659.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn log2(vec<2, f32>) -> vec<2, f32>
+fn log2_aea659() {
+  var res: vec2<f32> = log2(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  log2_aea659();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  log2_aea659();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  log2_aea659();
+}
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.glsl b/test/builtins/gen/log2/aea659.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/log2/aea659.wgsl.expected.glsl
rename to test/builtins/gen/log2/aea659.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.hlsl b/test/builtins/gen/log2/aea659.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/log2/aea659.wgsl.expected.hlsl
rename to test/builtins/gen/log2/aea659.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.msl b/test/builtins/gen/log2/aea659.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/log2/aea659.wgsl.expected.msl
rename to test/builtins/gen/log2/aea659.wgsl.expected.msl
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.spvasm b/test/builtins/gen/log2/aea659.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/log2/aea659.wgsl.expected.spvasm
rename to test/builtins/gen/log2/aea659.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/log2/aea659.wgsl.expected.wgsl b/test/builtins/gen/log2/aea659.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/log2/aea659.wgsl.expected.wgsl
rename to test/builtins/gen/log2/aea659.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/0c0aae.wgsl b/test/builtins/gen/max/0c0aae.wgsl
new file mode 100644
index 0000000..0f8c133
--- /dev/null
+++ b/test/builtins/gen/max/0c0aae.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(u32, u32) -> u32
+fn max_0c0aae() {
+  var res: u32 = max(1u, 1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_0c0aae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_0c0aae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_0c0aae();
+}
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl b/test/builtins/gen/max/0c0aae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/0c0aae.wgsl.expected.glsl
rename to test/builtins/gen/max/0c0aae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.hlsl b/test/builtins/gen/max/0c0aae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/0c0aae.wgsl.expected.hlsl
rename to test/builtins/gen/max/0c0aae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.msl b/test/builtins/gen/max/0c0aae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/0c0aae.wgsl.expected.msl
rename to test/builtins/gen/max/0c0aae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.spvasm b/test/builtins/gen/max/0c0aae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/0c0aae.wgsl.expected.spvasm
rename to test/builtins/gen/max/0c0aae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl.expected.wgsl b/test/builtins/gen/max/0c0aae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/0c0aae.wgsl.expected.wgsl
rename to test/builtins/gen/max/0c0aae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/25eafe.wgsl b/test/builtins/gen/max/25eafe.wgsl
new file mode 100644
index 0000000..ecc90be
--- /dev/null
+++ b/test/builtins/gen/max/25eafe.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
+fn max_25eafe() {
+  var res: vec3<i32> = max(vec3<i32>(), vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_25eafe();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_25eafe();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_25eafe();
+}
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.glsl b/test/builtins/gen/max/25eafe.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/25eafe.wgsl.expected.glsl
rename to test/builtins/gen/max/25eafe.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.hlsl b/test/builtins/gen/max/25eafe.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/25eafe.wgsl.expected.hlsl
rename to test/builtins/gen/max/25eafe.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.msl b/test/builtins/gen/max/25eafe.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/25eafe.wgsl.expected.msl
rename to test/builtins/gen/max/25eafe.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.spvasm b/test/builtins/gen/max/25eafe.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/25eafe.wgsl.expected.spvasm
rename to test/builtins/gen/max/25eafe.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/25eafe.wgsl.expected.wgsl b/test/builtins/gen/max/25eafe.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/25eafe.wgsl.expected.wgsl
rename to test/builtins/gen/max/25eafe.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/320815.wgsl b/test/builtins/gen/max/320815.wgsl
new file mode 100644
index 0000000..c9e83eb
--- /dev/null
+++ b/test/builtins/gen/max/320815.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
+fn max_320815() {
+  var res: vec2<u32> = max(vec2<u32>(), vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_320815();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_320815();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_320815();
+}
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.glsl b/test/builtins/gen/max/320815.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/320815.wgsl.expected.glsl
rename to test/builtins/gen/max/320815.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.hlsl b/test/builtins/gen/max/320815.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/320815.wgsl.expected.hlsl
rename to test/builtins/gen/max/320815.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.msl b/test/builtins/gen/max/320815.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/320815.wgsl.expected.msl
rename to test/builtins/gen/max/320815.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.spvasm b/test/builtins/gen/max/320815.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/320815.wgsl.expected.spvasm
rename to test/builtins/gen/max/320815.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/320815.wgsl.expected.wgsl b/test/builtins/gen/max/320815.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/320815.wgsl.expected.wgsl
rename to test/builtins/gen/max/320815.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/44a39d.wgsl b/test/builtins/gen/max/44a39d.wgsl
new file mode 100644
index 0000000..882e4e3
--- /dev/null
+++ b/test/builtins/gen/max/44a39d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(f32, f32) -> f32
+fn max_44a39d() {
+  var res: f32 = max(1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_44a39d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_44a39d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_44a39d();
+}
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.glsl b/test/builtins/gen/max/44a39d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/44a39d.wgsl.expected.glsl
rename to test/builtins/gen/max/44a39d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.hlsl b/test/builtins/gen/max/44a39d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/44a39d.wgsl.expected.hlsl
rename to test/builtins/gen/max/44a39d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.msl b/test/builtins/gen/max/44a39d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/44a39d.wgsl.expected.msl
rename to test/builtins/gen/max/44a39d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.spvasm b/test/builtins/gen/max/44a39d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/44a39d.wgsl.expected.spvasm
rename to test/builtins/gen/max/44a39d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/44a39d.wgsl.expected.wgsl b/test/builtins/gen/max/44a39d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/44a39d.wgsl.expected.wgsl
rename to test/builtins/gen/max/44a39d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/453e04.wgsl b/test/builtins/gen/max/453e04.wgsl
new file mode 100644
index 0000000..8b62913
--- /dev/null
+++ b/test/builtins/gen/max/453e04.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
+fn max_453e04() {
+  var res: vec4<u32> = max(vec4<u32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_453e04();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_453e04();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_453e04();
+}
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.glsl b/test/builtins/gen/max/453e04.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/453e04.wgsl.expected.glsl
rename to test/builtins/gen/max/453e04.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.hlsl b/test/builtins/gen/max/453e04.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/453e04.wgsl.expected.hlsl
rename to test/builtins/gen/max/453e04.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.msl b/test/builtins/gen/max/453e04.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/453e04.wgsl.expected.msl
rename to test/builtins/gen/max/453e04.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.spvasm b/test/builtins/gen/max/453e04.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/453e04.wgsl.expected.spvasm
rename to test/builtins/gen/max/453e04.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/453e04.wgsl.expected.wgsl b/test/builtins/gen/max/453e04.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/453e04.wgsl.expected.wgsl
rename to test/builtins/gen/max/453e04.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/462050.wgsl b/test/builtins/gen/max/462050.wgsl
new file mode 100644
index 0000000..2e2bcaf
--- /dev/null
+++ b/test/builtins/gen/max/462050.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn max_462050() {
+  var res: vec2<f32> = max(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_462050();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_462050();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_462050();
+}
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.glsl b/test/builtins/gen/max/462050.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/462050.wgsl.expected.glsl
rename to test/builtins/gen/max/462050.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.hlsl b/test/builtins/gen/max/462050.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/462050.wgsl.expected.hlsl
rename to test/builtins/gen/max/462050.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.msl b/test/builtins/gen/max/462050.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/462050.wgsl.expected.msl
rename to test/builtins/gen/max/462050.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.spvasm b/test/builtins/gen/max/462050.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/462050.wgsl.expected.spvasm
rename to test/builtins/gen/max/462050.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/462050.wgsl.expected.wgsl b/test/builtins/gen/max/462050.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/462050.wgsl.expected.wgsl
rename to test/builtins/gen/max/462050.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/4883ac.wgsl b/test/builtins/gen/max/4883ac.wgsl
new file mode 100644
index 0000000..b574471
--- /dev/null
+++ b/test/builtins/gen/max/4883ac.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn max_4883ac() {
+  var res: vec3<f32> = max(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_4883ac();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_4883ac();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_4883ac();
+}
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.glsl b/test/builtins/gen/max/4883ac.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/4883ac.wgsl.expected.glsl
rename to test/builtins/gen/max/4883ac.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.hlsl b/test/builtins/gen/max/4883ac.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/4883ac.wgsl.expected.hlsl
rename to test/builtins/gen/max/4883ac.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.msl b/test/builtins/gen/max/4883ac.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/4883ac.wgsl.expected.msl
rename to test/builtins/gen/max/4883ac.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.spvasm b/test/builtins/gen/max/4883ac.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/4883ac.wgsl.expected.spvasm
rename to test/builtins/gen/max/4883ac.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/4883ac.wgsl.expected.wgsl b/test/builtins/gen/max/4883ac.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/4883ac.wgsl.expected.wgsl
rename to test/builtins/gen/max/4883ac.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/85e6bc.wgsl b/test/builtins/gen/max/85e6bc.wgsl
new file mode 100644
index 0000000..c46eede
--- /dev/null
+++ b/test/builtins/gen/max/85e6bc.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
+fn max_85e6bc() {
+  var res: vec4<i32> = max(vec4<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_85e6bc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_85e6bc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_85e6bc();
+}
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl b/test/builtins/gen/max/85e6bc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/85e6bc.wgsl.expected.glsl
rename to test/builtins/gen/max/85e6bc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.hlsl b/test/builtins/gen/max/85e6bc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/85e6bc.wgsl.expected.hlsl
rename to test/builtins/gen/max/85e6bc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.msl b/test/builtins/gen/max/85e6bc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/85e6bc.wgsl.expected.msl
rename to test/builtins/gen/max/85e6bc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.spvasm b/test/builtins/gen/max/85e6bc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/85e6bc.wgsl.expected.spvasm
rename to test/builtins/gen/max/85e6bc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl.expected.wgsl b/test/builtins/gen/max/85e6bc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/85e6bc.wgsl.expected.wgsl
rename to test/builtins/gen/max/85e6bc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/a93419.wgsl b/test/builtins/gen/max/a93419.wgsl
new file mode 100644
index 0000000..a3c3d0d
--- /dev/null
+++ b/test/builtins/gen/max/a93419.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn max_a93419() {
+  var res: vec4<f32> = max(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_a93419();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_a93419();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_a93419();
+}
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.glsl b/test/builtins/gen/max/a93419.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/a93419.wgsl.expected.glsl
rename to test/builtins/gen/max/a93419.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.hlsl b/test/builtins/gen/max/a93419.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/a93419.wgsl.expected.hlsl
rename to test/builtins/gen/max/a93419.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.msl b/test/builtins/gen/max/a93419.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/a93419.wgsl.expected.msl
rename to test/builtins/gen/max/a93419.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.spvasm b/test/builtins/gen/max/a93419.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/a93419.wgsl.expected.spvasm
rename to test/builtins/gen/max/a93419.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/a93419.wgsl.expected.wgsl b/test/builtins/gen/max/a93419.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/a93419.wgsl.expected.wgsl
rename to test/builtins/gen/max/a93419.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/b1b73a.wgsl b/test/builtins/gen/max/b1b73a.wgsl
new file mode 100644
index 0000000..40cc26c
--- /dev/null
+++ b/test/builtins/gen/max/b1b73a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
+fn max_b1b73a() {
+  var res: vec3<u32> = max(vec3<u32>(), vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_b1b73a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_b1b73a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_b1b73a();
+}
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl b/test/builtins/gen/max/b1b73a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/b1b73a.wgsl.expected.glsl
rename to test/builtins/gen/max/b1b73a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.hlsl b/test/builtins/gen/max/b1b73a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/b1b73a.wgsl.expected.hlsl
rename to test/builtins/gen/max/b1b73a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.msl b/test/builtins/gen/max/b1b73a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/b1b73a.wgsl.expected.msl
rename to test/builtins/gen/max/b1b73a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.spvasm b/test/builtins/gen/max/b1b73a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/b1b73a.wgsl.expected.spvasm
rename to test/builtins/gen/max/b1b73a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl.expected.wgsl b/test/builtins/gen/max/b1b73a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/b1b73a.wgsl.expected.wgsl
rename to test/builtins/gen/max/b1b73a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/ce7c30.wgsl b/test/builtins/gen/max/ce7c30.wgsl
new file mode 100644
index 0000000..6673713
--- /dev/null
+++ b/test/builtins/gen/max/ce7c30.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(i32, i32) -> i32
+fn max_ce7c30() {
+  var res: i32 = max(1, 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_ce7c30();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_ce7c30();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_ce7c30();
+}
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl b/test/builtins/gen/max/ce7c30.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/ce7c30.wgsl.expected.glsl
rename to test/builtins/gen/max/ce7c30.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.hlsl b/test/builtins/gen/max/ce7c30.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/ce7c30.wgsl.expected.hlsl
rename to test/builtins/gen/max/ce7c30.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.msl b/test/builtins/gen/max/ce7c30.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/ce7c30.wgsl.expected.msl
rename to test/builtins/gen/max/ce7c30.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.spvasm b/test/builtins/gen/max/ce7c30.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/ce7c30.wgsl.expected.spvasm
rename to test/builtins/gen/max/ce7c30.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl.expected.wgsl b/test/builtins/gen/max/ce7c30.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/ce7c30.wgsl.expected.wgsl
rename to test/builtins/gen/max/ce7c30.wgsl.expected.wgsl
diff --git a/test/builtins/gen/max/e8192f.wgsl b/test/builtins/gen/max/e8192f.wgsl
new file mode 100644
index 0000000..cd111e3
--- /dev/null
+++ b/test/builtins/gen/max/e8192f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn max(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
+fn max_e8192f() {
+  var res: vec2<i32> = max(vec2<i32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  max_e8192f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  max_e8192f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  max_e8192f();
+}
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.glsl b/test/builtins/gen/max/e8192f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/max/e8192f.wgsl.expected.glsl
rename to test/builtins/gen/max/e8192f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.hlsl b/test/builtins/gen/max/e8192f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/max/e8192f.wgsl.expected.hlsl
rename to test/builtins/gen/max/e8192f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.msl b/test/builtins/gen/max/e8192f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/max/e8192f.wgsl.expected.msl
rename to test/builtins/gen/max/e8192f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.spvasm b/test/builtins/gen/max/e8192f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/max/e8192f.wgsl.expected.spvasm
rename to test/builtins/gen/max/e8192f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/max/e8192f.wgsl.expected.wgsl b/test/builtins/gen/max/e8192f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/max/e8192f.wgsl.expected.wgsl
rename to test/builtins/gen/max/e8192f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/03c7e3.wgsl b/test/builtins/gen/min/03c7e3.wgsl
new file mode 100644
index 0000000..7a2690f
--- /dev/null
+++ b/test/builtins/gen/min/03c7e3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
+fn min_03c7e3() {
+  var res: vec2<i32> = min(vec2<i32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_03c7e3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_03c7e3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_03c7e3();
+}
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl b/test/builtins/gen/min/03c7e3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/03c7e3.wgsl.expected.glsl
rename to test/builtins/gen/min/03c7e3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.hlsl b/test/builtins/gen/min/03c7e3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/03c7e3.wgsl.expected.hlsl
rename to test/builtins/gen/min/03c7e3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.msl b/test/builtins/gen/min/03c7e3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/03c7e3.wgsl.expected.msl
rename to test/builtins/gen/min/03c7e3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.spvasm b/test/builtins/gen/min/03c7e3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/03c7e3.wgsl.expected.spvasm
rename to test/builtins/gen/min/03c7e3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl.expected.wgsl b/test/builtins/gen/min/03c7e3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/03c7e3.wgsl.expected.wgsl
rename to test/builtins/gen/min/03c7e3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/0dc614.wgsl b/test/builtins/gen/min/0dc614.wgsl
new file mode 100644
index 0000000..4b937bc
--- /dev/null
+++ b/test/builtins/gen/min/0dc614.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
+fn min_0dc614() {
+  var res: vec4<u32> = min(vec4<u32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_0dc614();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_0dc614();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_0dc614();
+}
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.glsl b/test/builtins/gen/min/0dc614.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/0dc614.wgsl.expected.glsl
rename to test/builtins/gen/min/0dc614.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.hlsl b/test/builtins/gen/min/0dc614.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/0dc614.wgsl.expected.hlsl
rename to test/builtins/gen/min/0dc614.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.msl b/test/builtins/gen/min/0dc614.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/0dc614.wgsl.expected.msl
rename to test/builtins/gen/min/0dc614.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.spvasm b/test/builtins/gen/min/0dc614.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/0dc614.wgsl.expected.spvasm
rename to test/builtins/gen/min/0dc614.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/0dc614.wgsl.expected.wgsl b/test/builtins/gen/min/0dc614.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/0dc614.wgsl.expected.wgsl
rename to test/builtins/gen/min/0dc614.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/3941e1.wgsl b/test/builtins/gen/min/3941e1.wgsl
new file mode 100644
index 0000000..2e263fe
--- /dev/null
+++ b/test/builtins/gen/min/3941e1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
+fn min_3941e1() {
+  var res: vec4<i32> = min(vec4<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_3941e1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_3941e1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_3941e1();
+}
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.glsl b/test/builtins/gen/min/3941e1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/3941e1.wgsl.expected.glsl
rename to test/builtins/gen/min/3941e1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.hlsl b/test/builtins/gen/min/3941e1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/3941e1.wgsl.expected.hlsl
rename to test/builtins/gen/min/3941e1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.msl b/test/builtins/gen/min/3941e1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/3941e1.wgsl.expected.msl
rename to test/builtins/gen/min/3941e1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.spvasm b/test/builtins/gen/min/3941e1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/3941e1.wgsl.expected.spvasm
rename to test/builtins/gen/min/3941e1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/3941e1.wgsl.expected.wgsl b/test/builtins/gen/min/3941e1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/3941e1.wgsl.expected.wgsl
rename to test/builtins/gen/min/3941e1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/46c5d3.wgsl b/test/builtins/gen/min/46c5d3.wgsl
new file mode 100644
index 0000000..730fe94
--- /dev/null
+++ b/test/builtins/gen/min/46c5d3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(u32, u32) -> u32
+fn min_46c5d3() {
+  var res: u32 = min(1u, 1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_46c5d3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_46c5d3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_46c5d3();
+}
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl b/test/builtins/gen/min/46c5d3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/46c5d3.wgsl.expected.glsl
rename to test/builtins/gen/min/46c5d3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.hlsl b/test/builtins/gen/min/46c5d3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/46c5d3.wgsl.expected.hlsl
rename to test/builtins/gen/min/46c5d3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.msl b/test/builtins/gen/min/46c5d3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/46c5d3.wgsl.expected.msl
rename to test/builtins/gen/min/46c5d3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.spvasm b/test/builtins/gen/min/46c5d3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/46c5d3.wgsl.expected.spvasm
rename to test/builtins/gen/min/46c5d3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl.expected.wgsl b/test/builtins/gen/min/46c5d3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/46c5d3.wgsl.expected.wgsl
rename to test/builtins/gen/min/46c5d3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/82b28f.wgsl b/test/builtins/gen/min/82b28f.wgsl
new file mode 100644
index 0000000..def0748
--- /dev/null
+++ b/test/builtins/gen/min/82b28f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
+fn min_82b28f() {
+  var res: vec2<u32> = min(vec2<u32>(), vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_82b28f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_82b28f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_82b28f();
+}
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.glsl b/test/builtins/gen/min/82b28f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/82b28f.wgsl.expected.glsl
rename to test/builtins/gen/min/82b28f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.hlsl b/test/builtins/gen/min/82b28f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/82b28f.wgsl.expected.hlsl
rename to test/builtins/gen/min/82b28f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.msl b/test/builtins/gen/min/82b28f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/82b28f.wgsl.expected.msl
rename to test/builtins/gen/min/82b28f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.spvasm b/test/builtins/gen/min/82b28f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/82b28f.wgsl.expected.spvasm
rename to test/builtins/gen/min/82b28f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/82b28f.wgsl.expected.wgsl b/test/builtins/gen/min/82b28f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/82b28f.wgsl.expected.wgsl
rename to test/builtins/gen/min/82b28f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/93cfc4.wgsl b/test/builtins/gen/min/93cfc4.wgsl
new file mode 100644
index 0000000..66c46b7
--- /dev/null
+++ b/test/builtins/gen/min/93cfc4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn min_93cfc4() {
+  var res: vec3<f32> = min(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_93cfc4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_93cfc4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_93cfc4();
+}
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl b/test/builtins/gen/min/93cfc4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/93cfc4.wgsl.expected.glsl
rename to test/builtins/gen/min/93cfc4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.hlsl b/test/builtins/gen/min/93cfc4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/93cfc4.wgsl.expected.hlsl
rename to test/builtins/gen/min/93cfc4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.msl b/test/builtins/gen/min/93cfc4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/93cfc4.wgsl.expected.msl
rename to test/builtins/gen/min/93cfc4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.spvasm b/test/builtins/gen/min/93cfc4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/93cfc4.wgsl.expected.spvasm
rename to test/builtins/gen/min/93cfc4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl.expected.wgsl b/test/builtins/gen/min/93cfc4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/93cfc4.wgsl.expected.wgsl
rename to test/builtins/gen/min/93cfc4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/a45171.wgsl b/test/builtins/gen/min/a45171.wgsl
new file mode 100644
index 0000000..eb640de
--- /dev/null
+++ b/test/builtins/gen/min/a45171.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
+fn min_a45171() {
+  var res: vec3<i32> = min(vec3<i32>(), vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_a45171();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_a45171();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_a45171();
+}
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.glsl b/test/builtins/gen/min/a45171.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/a45171.wgsl.expected.glsl
rename to test/builtins/gen/min/a45171.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.hlsl b/test/builtins/gen/min/a45171.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/a45171.wgsl.expected.hlsl
rename to test/builtins/gen/min/a45171.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.msl b/test/builtins/gen/min/a45171.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/a45171.wgsl.expected.msl
rename to test/builtins/gen/min/a45171.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.spvasm b/test/builtins/gen/min/a45171.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/a45171.wgsl.expected.spvasm
rename to test/builtins/gen/min/a45171.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/a45171.wgsl.expected.wgsl b/test/builtins/gen/min/a45171.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/a45171.wgsl.expected.wgsl
rename to test/builtins/gen/min/a45171.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/aa28ad.wgsl b/test/builtins/gen/min/aa28ad.wgsl
new file mode 100644
index 0000000..9242dec
--- /dev/null
+++ b/test/builtins/gen/min/aa28ad.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn min_aa28ad() {
+  var res: vec2<f32> = min(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_aa28ad();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_aa28ad();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_aa28ad();
+}
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl b/test/builtins/gen/min/aa28ad.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/aa28ad.wgsl.expected.glsl
rename to test/builtins/gen/min/aa28ad.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.hlsl b/test/builtins/gen/min/aa28ad.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/aa28ad.wgsl.expected.hlsl
rename to test/builtins/gen/min/aa28ad.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.msl b/test/builtins/gen/min/aa28ad.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/aa28ad.wgsl.expected.msl
rename to test/builtins/gen/min/aa28ad.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.spvasm b/test/builtins/gen/min/aa28ad.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/aa28ad.wgsl.expected.spvasm
rename to test/builtins/gen/min/aa28ad.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl.expected.wgsl b/test/builtins/gen/min/aa28ad.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/aa28ad.wgsl.expected.wgsl
rename to test/builtins/gen/min/aa28ad.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/af326d.wgsl b/test/builtins/gen/min/af326d.wgsl
new file mode 100644
index 0000000..d603bcb
--- /dev/null
+++ b/test/builtins/gen/min/af326d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(f32, f32) -> f32
+fn min_af326d() {
+  var res: f32 = min(1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_af326d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_af326d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_af326d();
+}
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.glsl b/test/builtins/gen/min/af326d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/af326d.wgsl.expected.glsl
rename to test/builtins/gen/min/af326d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.hlsl b/test/builtins/gen/min/af326d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/af326d.wgsl.expected.hlsl
rename to test/builtins/gen/min/af326d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.msl b/test/builtins/gen/min/af326d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/af326d.wgsl.expected.msl
rename to test/builtins/gen/min/af326d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.spvasm b/test/builtins/gen/min/af326d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/af326d.wgsl.expected.spvasm
rename to test/builtins/gen/min/af326d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/af326d.wgsl.expected.wgsl b/test/builtins/gen/min/af326d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/af326d.wgsl.expected.wgsl
rename to test/builtins/gen/min/af326d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/c70bb7.wgsl b/test/builtins/gen/min/c70bb7.wgsl
new file mode 100644
index 0000000..5440784
--- /dev/null
+++ b/test/builtins/gen/min/c70bb7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
+fn min_c70bb7() {
+  var res: vec3<u32> = min(vec3<u32>(), vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_c70bb7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_c70bb7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_c70bb7();
+}
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl b/test/builtins/gen/min/c70bb7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/c70bb7.wgsl.expected.glsl
rename to test/builtins/gen/min/c70bb7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.hlsl b/test/builtins/gen/min/c70bb7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/c70bb7.wgsl.expected.hlsl
rename to test/builtins/gen/min/c70bb7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.msl b/test/builtins/gen/min/c70bb7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/c70bb7.wgsl.expected.msl
rename to test/builtins/gen/min/c70bb7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.spvasm b/test/builtins/gen/min/c70bb7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/c70bb7.wgsl.expected.spvasm
rename to test/builtins/gen/min/c70bb7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl.expected.wgsl b/test/builtins/gen/min/c70bb7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/c70bb7.wgsl.expected.wgsl
rename to test/builtins/gen/min/c70bb7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/c73147.wgsl b/test/builtins/gen/min/c73147.wgsl
new file mode 100644
index 0000000..bb48303
--- /dev/null
+++ b/test/builtins/gen/min/c73147.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(i32, i32) -> i32
+fn min_c73147() {
+  var res: i32 = min(1, 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_c73147();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_c73147();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_c73147();
+}
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.glsl b/test/builtins/gen/min/c73147.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/c73147.wgsl.expected.glsl
rename to test/builtins/gen/min/c73147.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.hlsl b/test/builtins/gen/min/c73147.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/c73147.wgsl.expected.hlsl
rename to test/builtins/gen/min/c73147.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.msl b/test/builtins/gen/min/c73147.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/c73147.wgsl.expected.msl
rename to test/builtins/gen/min/c73147.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.spvasm b/test/builtins/gen/min/c73147.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/c73147.wgsl.expected.spvasm
rename to test/builtins/gen/min/c73147.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/c73147.wgsl.expected.wgsl b/test/builtins/gen/min/c73147.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/c73147.wgsl.expected.wgsl
rename to test/builtins/gen/min/c73147.wgsl.expected.wgsl
diff --git a/test/builtins/gen/min/c76fa6.wgsl b/test/builtins/gen/min/c76fa6.wgsl
new file mode 100644
index 0000000..d4a831a
--- /dev/null
+++ b/test/builtins/gen/min/c76fa6.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn min(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn min_c76fa6() {
+  var res: vec4<f32> = min(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  min_c76fa6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  min_c76fa6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  min_c76fa6();
+}
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl b/test/builtins/gen/min/c76fa6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/min/c76fa6.wgsl.expected.glsl
rename to test/builtins/gen/min/c76fa6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.hlsl b/test/builtins/gen/min/c76fa6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/min/c76fa6.wgsl.expected.hlsl
rename to test/builtins/gen/min/c76fa6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.msl b/test/builtins/gen/min/c76fa6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/min/c76fa6.wgsl.expected.msl
rename to test/builtins/gen/min/c76fa6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.spvasm b/test/builtins/gen/min/c76fa6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/min/c76fa6.wgsl.expected.spvasm
rename to test/builtins/gen/min/c76fa6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl.expected.wgsl b/test/builtins/gen/min/c76fa6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/min/c76fa6.wgsl.expected.wgsl
rename to test/builtins/gen/min/c76fa6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/mix/0c8c33.wgsl b/test/builtins/gen/mix/0c8c33.wgsl
new file mode 100644
index 0000000..16f9a64
--- /dev/null
+++ b/test/builtins/gen/mix/0c8c33.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn mix(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn mix_0c8c33() {
+  var res: vec3<f32> = mix(vec3<f32>(), vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  mix_0c8c33();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  mix_0c8c33();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  mix_0c8c33();
+}
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl b/test/builtins/gen/mix/0c8c33.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/mix/0c8c33.wgsl.expected.glsl
rename to test/builtins/gen/mix/0c8c33.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.hlsl b/test/builtins/gen/mix/0c8c33.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/mix/0c8c33.wgsl.expected.hlsl
rename to test/builtins/gen/mix/0c8c33.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.msl b/test/builtins/gen/mix/0c8c33.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/mix/0c8c33.wgsl.expected.msl
rename to test/builtins/gen/mix/0c8c33.wgsl.expected.msl
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.spvasm b/test/builtins/gen/mix/0c8c33.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/mix/0c8c33.wgsl.expected.spvasm
rename to test/builtins/gen/mix/0c8c33.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl.expected.wgsl b/test/builtins/gen/mix/0c8c33.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/mix/0c8c33.wgsl.expected.wgsl
rename to test/builtins/gen/mix/0c8c33.wgsl.expected.wgsl
diff --git a/test/builtins/gen/mix/1faeb1.wgsl b/test/builtins/gen/mix/1faeb1.wgsl
new file mode 100644
index 0000000..4777805
--- /dev/null
+++ b/test/builtins/gen/mix/1faeb1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn mix(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
+fn mix_1faeb1() {
+  var res: vec4<f32> = mix(vec4<f32>(), vec4<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  mix_1faeb1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  mix_1faeb1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  mix_1faeb1();
+}
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl b/test/builtins/gen/mix/1faeb1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/mix/1faeb1.wgsl.expected.glsl
rename to test/builtins/gen/mix/1faeb1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.hlsl b/test/builtins/gen/mix/1faeb1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/mix/1faeb1.wgsl.expected.hlsl
rename to test/builtins/gen/mix/1faeb1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.msl b/test/builtins/gen/mix/1faeb1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/mix/1faeb1.wgsl.expected.msl
rename to test/builtins/gen/mix/1faeb1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.spvasm b/test/builtins/gen/mix/1faeb1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/mix/1faeb1.wgsl.expected.spvasm
rename to test/builtins/gen/mix/1faeb1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl.expected.wgsl b/test/builtins/gen/mix/1faeb1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/mix/1faeb1.wgsl.expected.wgsl
rename to test/builtins/gen/mix/1faeb1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/mix/2fadab.wgsl b/test/builtins/gen/mix/2fadab.wgsl
new file mode 100644
index 0000000..a89fb83
--- /dev/null
+++ b/test/builtins/gen/mix/2fadab.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn mix(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
+fn mix_2fadab() {
+  var res: vec2<f32> = mix(vec2<f32>(), vec2<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  mix_2fadab();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  mix_2fadab();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  mix_2fadab();
+}
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl b/test/builtins/gen/mix/2fadab.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/mix/2fadab.wgsl.expected.glsl
rename to test/builtins/gen/mix/2fadab.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.hlsl b/test/builtins/gen/mix/2fadab.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/mix/2fadab.wgsl.expected.hlsl
rename to test/builtins/gen/mix/2fadab.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.msl b/test/builtins/gen/mix/2fadab.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/mix/2fadab.wgsl.expected.msl
rename to test/builtins/gen/mix/2fadab.wgsl.expected.msl
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.spvasm b/test/builtins/gen/mix/2fadab.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/mix/2fadab.wgsl.expected.spvasm
rename to test/builtins/gen/mix/2fadab.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl.expected.wgsl b/test/builtins/gen/mix/2fadab.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/mix/2fadab.wgsl.expected.wgsl
rename to test/builtins/gen/mix/2fadab.wgsl.expected.wgsl
diff --git a/test/builtins/gen/mix/315264.wgsl b/test/builtins/gen/mix/315264.wgsl
new file mode 100644
index 0000000..ae2dca3
--- /dev/null
+++ b/test/builtins/gen/mix/315264.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn mix(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
+fn mix_315264() {
+  var res: vec3<f32> = mix(vec3<f32>(), vec3<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  mix_315264();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  mix_315264();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  mix_315264();
+}
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.glsl b/test/builtins/gen/mix/315264.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/mix/315264.wgsl.expected.glsl
rename to test/builtins/gen/mix/315264.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.hlsl b/test/builtins/gen/mix/315264.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/mix/315264.wgsl.expected.hlsl
rename to test/builtins/gen/mix/315264.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.msl b/test/builtins/gen/mix/315264.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/mix/315264.wgsl.expected.msl
rename to test/builtins/gen/mix/315264.wgsl.expected.msl
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.spvasm b/test/builtins/gen/mix/315264.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/mix/315264.wgsl.expected.spvasm
rename to test/builtins/gen/mix/315264.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/mix/315264.wgsl.expected.wgsl b/test/builtins/gen/mix/315264.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/mix/315264.wgsl.expected.wgsl
rename to test/builtins/gen/mix/315264.wgsl.expected.wgsl
diff --git a/test/builtins/gen/mix/4f0b5e.wgsl b/test/builtins/gen/mix/4f0b5e.wgsl
new file mode 100644
index 0000000..22eea63
--- /dev/null
+++ b/test/builtins/gen/mix/4f0b5e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn mix(f32, f32, f32) -> f32
+fn mix_4f0b5e() {
+  var res: f32 = mix(1.0, 1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  mix_4f0b5e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  mix_4f0b5e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  mix_4f0b5e();
+}
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl b/test/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/mix/4f0b5e.wgsl.expected.glsl
rename to test/builtins/gen/mix/4f0b5e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.hlsl b/test/builtins/gen/mix/4f0b5e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/mix/4f0b5e.wgsl.expected.hlsl
rename to test/builtins/gen/mix/4f0b5e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.msl b/test/builtins/gen/mix/4f0b5e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/mix/4f0b5e.wgsl.expected.msl
rename to test/builtins/gen/mix/4f0b5e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.spvasm b/test/builtins/gen/mix/4f0b5e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/mix/4f0b5e.wgsl.expected.spvasm
rename to test/builtins/gen/mix/4f0b5e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl.expected.wgsl b/test/builtins/gen/mix/4f0b5e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/mix/4f0b5e.wgsl.expected.wgsl
rename to test/builtins/gen/mix/4f0b5e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/mix/6f8adc.wgsl b/test/builtins/gen/mix/6f8adc.wgsl
new file mode 100644
index 0000000..a024424
--- /dev/null
+++ b/test/builtins/gen/mix/6f8adc.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn mix(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn mix_6f8adc() {
+  var res: vec2<f32> = mix(vec2<f32>(), vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  mix_6f8adc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  mix_6f8adc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  mix_6f8adc();
+}
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl b/test/builtins/gen/mix/6f8adc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/mix/6f8adc.wgsl.expected.glsl
rename to test/builtins/gen/mix/6f8adc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.hlsl b/test/builtins/gen/mix/6f8adc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/mix/6f8adc.wgsl.expected.hlsl
rename to test/builtins/gen/mix/6f8adc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.msl b/test/builtins/gen/mix/6f8adc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/mix/6f8adc.wgsl.expected.msl
rename to test/builtins/gen/mix/6f8adc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.spvasm b/test/builtins/gen/mix/6f8adc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/mix/6f8adc.wgsl.expected.spvasm
rename to test/builtins/gen/mix/6f8adc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl.expected.wgsl b/test/builtins/gen/mix/6f8adc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/mix/6f8adc.wgsl.expected.wgsl
rename to test/builtins/gen/mix/6f8adc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/mix/c37ede.wgsl b/test/builtins/gen/mix/c37ede.wgsl
new file mode 100644
index 0000000..47aa83a
--- /dev/null
+++ b/test/builtins/gen/mix/c37ede.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn mix(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn mix_c37ede() {
+  var res: vec4<f32> = mix(vec4<f32>(), vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  mix_c37ede();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  mix_c37ede();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  mix_c37ede();
+}
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl b/test/builtins/gen/mix/c37ede.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/mix/c37ede.wgsl.expected.glsl
rename to test/builtins/gen/mix/c37ede.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.hlsl b/test/builtins/gen/mix/c37ede.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/mix/c37ede.wgsl.expected.hlsl
rename to test/builtins/gen/mix/c37ede.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.msl b/test/builtins/gen/mix/c37ede.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/mix/c37ede.wgsl.expected.msl
rename to test/builtins/gen/mix/c37ede.wgsl.expected.msl
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.spvasm b/test/builtins/gen/mix/c37ede.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/mix/c37ede.wgsl.expected.spvasm
rename to test/builtins/gen/mix/c37ede.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl.expected.wgsl b/test/builtins/gen/mix/c37ede.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/mix/c37ede.wgsl.expected.wgsl
rename to test/builtins/gen/mix/c37ede.wgsl.expected.wgsl
diff --git a/test/builtins/gen/modf/180fed.wgsl b/test/builtins/gen/modf/180fed.wgsl
new file mode 100644
index 0000000..2280611
--- /dev/null
+++ b/test/builtins/gen/modf/180fed.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn modf(f32) -> __modf_result
+fn modf_180fed() {
+  var res = modf(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  modf_180fed();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  modf_180fed();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  modf_180fed();
+}
diff --git a/test/intrinsics/gen/modf/180fed.wgsl.expected.glsl b/test/builtins/gen/modf/180fed.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/modf/180fed.wgsl.expected.glsl
rename to test/builtins/gen/modf/180fed.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/modf/180fed.wgsl.expected.hlsl b/test/builtins/gen/modf/180fed.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/modf/180fed.wgsl.expected.hlsl
rename to test/builtins/gen/modf/180fed.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/modf/180fed.wgsl.expected.msl b/test/builtins/gen/modf/180fed.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/modf/180fed.wgsl.expected.msl
rename to test/builtins/gen/modf/180fed.wgsl.expected.msl
diff --git a/test/intrinsics/gen/modf/180fed.wgsl.expected.spvasm b/test/builtins/gen/modf/180fed.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/modf/180fed.wgsl.expected.spvasm
rename to test/builtins/gen/modf/180fed.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/modf/180fed.wgsl.expected.wgsl b/test/builtins/gen/modf/180fed.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/modf/180fed.wgsl.expected.wgsl
rename to test/builtins/gen/modf/180fed.wgsl.expected.wgsl
diff --git a/test/builtins/gen/modf/9b75f7.wgsl b/test/builtins/gen/modf/9b75f7.wgsl
new file mode 100644
index 0000000..f18546c
--- /dev/null
+++ b/test/builtins/gen/modf/9b75f7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn modf(vec<3, f32>) -> __modf_result_vec<3>
+fn modf_9b75f7() {
+  var res = modf(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  modf_9b75f7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  modf_9b75f7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  modf_9b75f7();
+}
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl b/test/builtins/gen/modf/9b75f7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/modf/9b75f7.wgsl.expected.glsl
rename to test/builtins/gen/modf/9b75f7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.hlsl b/test/builtins/gen/modf/9b75f7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/modf/9b75f7.wgsl.expected.hlsl
rename to test/builtins/gen/modf/9b75f7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.msl b/test/builtins/gen/modf/9b75f7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/modf/9b75f7.wgsl.expected.msl
rename to test/builtins/gen/modf/9b75f7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.spvasm b/test/builtins/gen/modf/9b75f7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/modf/9b75f7.wgsl.expected.spvasm
rename to test/builtins/gen/modf/9b75f7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl.expected.wgsl b/test/builtins/gen/modf/9b75f7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/modf/9b75f7.wgsl.expected.wgsl
rename to test/builtins/gen/modf/9b75f7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/modf/ec2dbc.wgsl b/test/builtins/gen/modf/ec2dbc.wgsl
new file mode 100644
index 0000000..da66827
--- /dev/null
+++ b/test/builtins/gen/modf/ec2dbc.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn modf(vec<4, f32>) -> __modf_result_vec<4>
+fn modf_ec2dbc() {
+  var res = modf(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  modf_ec2dbc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  modf_ec2dbc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  modf_ec2dbc();
+}
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl b/test/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/modf/ec2dbc.wgsl.expected.glsl
rename to test/builtins/gen/modf/ec2dbc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.hlsl b/test/builtins/gen/modf/ec2dbc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/modf/ec2dbc.wgsl.expected.hlsl
rename to test/builtins/gen/modf/ec2dbc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.msl b/test/builtins/gen/modf/ec2dbc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/modf/ec2dbc.wgsl.expected.msl
rename to test/builtins/gen/modf/ec2dbc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.spvasm b/test/builtins/gen/modf/ec2dbc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/modf/ec2dbc.wgsl.expected.spvasm
rename to test/builtins/gen/modf/ec2dbc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl.expected.wgsl b/test/builtins/gen/modf/ec2dbc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/modf/ec2dbc.wgsl.expected.wgsl
rename to test/builtins/gen/modf/ec2dbc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/modf/f5f20d.wgsl b/test/builtins/gen/modf/f5f20d.wgsl
new file mode 100644
index 0000000..1070fb7
--- /dev/null
+++ b/test/builtins/gen/modf/f5f20d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn modf(vec<2, f32>) -> __modf_result_vec<2>
+fn modf_f5f20d() {
+  var res = modf(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  modf_f5f20d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  modf_f5f20d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  modf_f5f20d();
+}
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl b/test/builtins/gen/modf/f5f20d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/modf/f5f20d.wgsl.expected.glsl
rename to test/builtins/gen/modf/f5f20d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.hlsl b/test/builtins/gen/modf/f5f20d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/modf/f5f20d.wgsl.expected.hlsl
rename to test/builtins/gen/modf/f5f20d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.msl b/test/builtins/gen/modf/f5f20d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/modf/f5f20d.wgsl.expected.msl
rename to test/builtins/gen/modf/f5f20d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.spvasm b/test/builtins/gen/modf/f5f20d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/modf/f5f20d.wgsl.expected.spvasm
rename to test/builtins/gen/modf/f5f20d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl.expected.wgsl b/test/builtins/gen/modf/f5f20d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/modf/f5f20d.wgsl.expected.wgsl
rename to test/builtins/gen/modf/f5f20d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/normalize/64d8c0.wgsl b/test/builtins/gen/normalize/64d8c0.wgsl
new file mode 100644
index 0000000..0c32b91
--- /dev/null
+++ b/test/builtins/gen/normalize/64d8c0.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn normalize(vec<3, f32>) -> vec<3, f32>
+fn normalize_64d8c0() {
+  var res: vec3<f32> = normalize(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  normalize_64d8c0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  normalize_64d8c0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  normalize_64d8c0();
+}
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl b/test/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/normalize/64d8c0.wgsl.expected.glsl
rename to test/builtins/gen/normalize/64d8c0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.hlsl b/test/builtins/gen/normalize/64d8c0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/normalize/64d8c0.wgsl.expected.hlsl
rename to test/builtins/gen/normalize/64d8c0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.msl b/test/builtins/gen/normalize/64d8c0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/normalize/64d8c0.wgsl.expected.msl
rename to test/builtins/gen/normalize/64d8c0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.spvasm b/test/builtins/gen/normalize/64d8c0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/normalize/64d8c0.wgsl.expected.spvasm
rename to test/builtins/gen/normalize/64d8c0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl.expected.wgsl b/test/builtins/gen/normalize/64d8c0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/normalize/64d8c0.wgsl.expected.wgsl
rename to test/builtins/gen/normalize/64d8c0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/normalize/9a0aab.wgsl b/test/builtins/gen/normalize/9a0aab.wgsl
new file mode 100644
index 0000000..5560b20
--- /dev/null
+++ b/test/builtins/gen/normalize/9a0aab.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn normalize(vec<4, f32>) -> vec<4, f32>
+fn normalize_9a0aab() {
+  var res: vec4<f32> = normalize(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  normalize_9a0aab();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  normalize_9a0aab();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  normalize_9a0aab();
+}
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl b/test/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/normalize/9a0aab.wgsl.expected.glsl
rename to test/builtins/gen/normalize/9a0aab.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.hlsl b/test/builtins/gen/normalize/9a0aab.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/normalize/9a0aab.wgsl.expected.hlsl
rename to test/builtins/gen/normalize/9a0aab.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.msl b/test/builtins/gen/normalize/9a0aab.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/normalize/9a0aab.wgsl.expected.msl
rename to test/builtins/gen/normalize/9a0aab.wgsl.expected.msl
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.spvasm b/test/builtins/gen/normalize/9a0aab.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/normalize/9a0aab.wgsl.expected.spvasm
rename to test/builtins/gen/normalize/9a0aab.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl.expected.wgsl b/test/builtins/gen/normalize/9a0aab.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/normalize/9a0aab.wgsl.expected.wgsl
rename to test/builtins/gen/normalize/9a0aab.wgsl.expected.wgsl
diff --git a/test/builtins/gen/normalize/fc2ef1.wgsl b/test/builtins/gen/normalize/fc2ef1.wgsl
new file mode 100644
index 0000000..2c70e6d
--- /dev/null
+++ b/test/builtins/gen/normalize/fc2ef1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn normalize(vec<2, f32>) -> vec<2, f32>
+fn normalize_fc2ef1() {
+  var res: vec2<f32> = normalize(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  normalize_fc2ef1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  normalize_fc2ef1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  normalize_fc2ef1();
+}
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.glsl
rename to test/builtins/gen/normalize/fc2ef1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.hlsl b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.hlsl
rename to test/builtins/gen/normalize/fc2ef1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.msl b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.msl
rename to test/builtins/gen/normalize/fc2ef1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.spvasm b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.spvasm
rename to test/builtins/gen/normalize/fc2ef1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.wgsl b/test/builtins/gen/normalize/fc2ef1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/normalize/fc2ef1.wgsl.expected.wgsl
rename to test/builtins/gen/normalize/fc2ef1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pack2x16float/0e97b3.wgsl b/test/builtins/gen/pack2x16float/0e97b3.wgsl
new file mode 100644
index 0000000..92252ef
--- /dev/null
+++ b/test/builtins/gen/pack2x16float/0e97b3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pack2x16float(vec2<f32>) -> u32
+fn pack2x16float_0e97b3() {
+  var res: u32 = pack2x16float(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pack2x16float_0e97b3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pack2x16float_0e97b3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pack2x16float_0e97b3();
+}
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.glsl
rename to test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.hlsl b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.hlsl
rename to test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.msl b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.msl
rename to test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.spvasm b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.spvasm
rename to test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.wgsl b/test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16float/0e97b3.wgsl.expected.wgsl
rename to test/builtins/gen/pack2x16float/0e97b3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pack2x16snorm/6c169b.wgsl b/test/builtins/gen/pack2x16snorm/6c169b.wgsl
new file mode 100644
index 0000000..ce748f8
--- /dev/null
+++ b/test/builtins/gen/pack2x16snorm/6c169b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pack2x16snorm(vec2<f32>) -> u32
+fn pack2x16snorm_6c169b() {
+  var res: u32 = pack2x16snorm(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pack2x16snorm_6c169b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pack2x16snorm_6c169b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pack2x16snorm_6c169b();
+}
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
rename to test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.hlsl b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.hlsl
rename to test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.msl b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.msl
rename to test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm
rename to test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.wgsl b/test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16snorm/6c169b.wgsl.expected.wgsl
rename to test/builtins/gen/pack2x16snorm/6c169b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pack2x16unorm/0f08e4.wgsl b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl
new file mode 100644
index 0000000..9f58257
--- /dev/null
+++ b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pack2x16unorm(vec2<f32>) -> u32
+fn pack2x16unorm_0f08e4() {
+  var res: u32 = pack2x16unorm(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pack2x16unorm_0f08e4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pack2x16unorm_0f08e4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pack2x16unorm_0f08e4();
+}
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
rename to test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.hlsl b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.hlsl
rename to test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.msl b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.msl
rename to test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm
rename to test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.wgsl b/test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl.expected.wgsl
rename to test/builtins/gen/pack2x16unorm/0f08e4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pack4x8snorm/4d22e7.wgsl b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl
new file mode 100644
index 0000000..cebba85
--- /dev/null
+++ b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pack4x8snorm(vec4<f32>) -> u32
+fn pack4x8snorm_4d22e7() {
+  var res: u32 = pack4x8snorm(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pack4x8snorm_4d22e7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pack4x8snorm_4d22e7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pack4x8snorm_4d22e7();
+}
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
rename to test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.hlsl b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.hlsl
rename to test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.msl b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.msl
rename to test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm
rename to test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.wgsl b/test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl.expected.wgsl
rename to test/builtins/gen/pack4x8snorm/4d22e7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pack4x8unorm/95c456.wgsl b/test/builtins/gen/pack4x8unorm/95c456.wgsl
new file mode 100644
index 0000000..f7f20ab
--- /dev/null
+++ b/test/builtins/gen/pack4x8unorm/95c456.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pack4x8unorm(vec4<f32>) -> u32
+fn pack4x8unorm_95c456() {
+  var res: u32 = pack4x8unorm(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pack4x8unorm_95c456();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pack4x8unorm_95c456();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pack4x8unorm_95c456();
+}
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.glsl
rename to test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.hlsl b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.hlsl
rename to test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.msl b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.msl
rename to test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.spvasm b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.spvasm
rename to test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.wgsl b/test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pack4x8unorm/95c456.wgsl.expected.wgsl
rename to test/builtins/gen/pack4x8unorm/95c456.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pow/04a908.wgsl b/test/builtins/gen/pow/04a908.wgsl
new file mode 100644
index 0000000..87e649b
--- /dev/null
+++ b/test/builtins/gen/pow/04a908.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pow(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn pow_04a908() {
+  var res: vec4<f32> = pow(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pow_04a908();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pow_04a908();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pow_04a908();
+}
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.glsl b/test/builtins/gen/pow/04a908.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pow/04a908.wgsl.expected.glsl
rename to test/builtins/gen/pow/04a908.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.hlsl b/test/builtins/gen/pow/04a908.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pow/04a908.wgsl.expected.hlsl
rename to test/builtins/gen/pow/04a908.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.msl b/test/builtins/gen/pow/04a908.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pow/04a908.wgsl.expected.msl
rename to test/builtins/gen/pow/04a908.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.spvasm b/test/builtins/gen/pow/04a908.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pow/04a908.wgsl.expected.spvasm
rename to test/builtins/gen/pow/04a908.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pow/04a908.wgsl.expected.wgsl b/test/builtins/gen/pow/04a908.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pow/04a908.wgsl.expected.wgsl
rename to test/builtins/gen/pow/04a908.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pow/46e029.wgsl b/test/builtins/gen/pow/46e029.wgsl
new file mode 100644
index 0000000..030f087
--- /dev/null
+++ b/test/builtins/gen/pow/46e029.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pow(f32, f32) -> f32
+fn pow_46e029() {
+  var res: f32 = pow(1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pow_46e029();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pow_46e029();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pow_46e029();
+}
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.glsl b/test/builtins/gen/pow/46e029.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pow/46e029.wgsl.expected.glsl
rename to test/builtins/gen/pow/46e029.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.hlsl b/test/builtins/gen/pow/46e029.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pow/46e029.wgsl.expected.hlsl
rename to test/builtins/gen/pow/46e029.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.msl b/test/builtins/gen/pow/46e029.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pow/46e029.wgsl.expected.msl
rename to test/builtins/gen/pow/46e029.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.spvasm b/test/builtins/gen/pow/46e029.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pow/46e029.wgsl.expected.spvasm
rename to test/builtins/gen/pow/46e029.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pow/46e029.wgsl.expected.wgsl b/test/builtins/gen/pow/46e029.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pow/46e029.wgsl.expected.wgsl
rename to test/builtins/gen/pow/46e029.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pow/4a46c9.wgsl b/test/builtins/gen/pow/4a46c9.wgsl
new file mode 100644
index 0000000..8d31659
--- /dev/null
+++ b/test/builtins/gen/pow/4a46c9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pow(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn pow_4a46c9() {
+  var res: vec3<f32> = pow(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pow_4a46c9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pow_4a46c9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pow_4a46c9();
+}
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl b/test/builtins/gen/pow/4a46c9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pow/4a46c9.wgsl.expected.glsl
rename to test/builtins/gen/pow/4a46c9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.hlsl b/test/builtins/gen/pow/4a46c9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pow/4a46c9.wgsl.expected.hlsl
rename to test/builtins/gen/pow/4a46c9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.msl b/test/builtins/gen/pow/4a46c9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pow/4a46c9.wgsl.expected.msl
rename to test/builtins/gen/pow/4a46c9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.spvasm b/test/builtins/gen/pow/4a46c9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pow/4a46c9.wgsl.expected.spvasm
rename to test/builtins/gen/pow/4a46c9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl.expected.wgsl b/test/builtins/gen/pow/4a46c9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pow/4a46c9.wgsl.expected.wgsl
rename to test/builtins/gen/pow/4a46c9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/pow/e60ea5.wgsl b/test/builtins/gen/pow/e60ea5.wgsl
new file mode 100644
index 0000000..266bc05
--- /dev/null
+++ b/test/builtins/gen/pow/e60ea5.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn pow(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn pow_e60ea5() {
+  var res: vec2<f32> = pow(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  pow_e60ea5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  pow_e60ea5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  pow_e60ea5();
+}
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl b/test/builtins/gen/pow/e60ea5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/pow/e60ea5.wgsl.expected.glsl
rename to test/builtins/gen/pow/e60ea5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.hlsl b/test/builtins/gen/pow/e60ea5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/pow/e60ea5.wgsl.expected.hlsl
rename to test/builtins/gen/pow/e60ea5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.msl b/test/builtins/gen/pow/e60ea5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/pow/e60ea5.wgsl.expected.msl
rename to test/builtins/gen/pow/e60ea5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.spvasm b/test/builtins/gen/pow/e60ea5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/pow/e60ea5.wgsl.expected.spvasm
rename to test/builtins/gen/pow/e60ea5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl.expected.wgsl b/test/builtins/gen/pow/e60ea5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/pow/e60ea5.wgsl.expected.wgsl
rename to test/builtins/gen/pow/e60ea5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/radians/09b7fc.wgsl b/test/builtins/gen/radians/09b7fc.wgsl
new file mode 100644
index 0000000..d0617db
--- /dev/null
+++ b/test/builtins/gen/radians/09b7fc.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn radians(vec<4, f32>) -> vec<4, f32>
+fn radians_09b7fc() {
+  var res: vec4<f32> = radians(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  radians_09b7fc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  radians_09b7fc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  radians_09b7fc();
+}
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl b/test/builtins/gen/radians/09b7fc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/radians/09b7fc.wgsl.expected.glsl
rename to test/builtins/gen/radians/09b7fc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.hlsl b/test/builtins/gen/radians/09b7fc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/radians/09b7fc.wgsl.expected.hlsl
rename to test/builtins/gen/radians/09b7fc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.msl b/test/builtins/gen/radians/09b7fc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/radians/09b7fc.wgsl.expected.msl
rename to test/builtins/gen/radians/09b7fc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.spvasm b/test/builtins/gen/radians/09b7fc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/radians/09b7fc.wgsl.expected.spvasm
rename to test/builtins/gen/radians/09b7fc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl.expected.wgsl b/test/builtins/gen/radians/09b7fc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/radians/09b7fc.wgsl.expected.wgsl
rename to test/builtins/gen/radians/09b7fc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/radians/61687a.wgsl b/test/builtins/gen/radians/61687a.wgsl
new file mode 100644
index 0000000..d1e80df
--- /dev/null
+++ b/test/builtins/gen/radians/61687a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn radians(vec<2, f32>) -> vec<2, f32>
+fn radians_61687a() {
+  var res: vec2<f32> = radians(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  radians_61687a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  radians_61687a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  radians_61687a();
+}
diff --git a/test/intrinsics/gen/radians/61687a.wgsl.expected.glsl b/test/builtins/gen/radians/61687a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/radians/61687a.wgsl.expected.glsl
rename to test/builtins/gen/radians/61687a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/radians/61687a.wgsl.expected.hlsl b/test/builtins/gen/radians/61687a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/radians/61687a.wgsl.expected.hlsl
rename to test/builtins/gen/radians/61687a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/radians/61687a.wgsl.expected.msl b/test/builtins/gen/radians/61687a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/radians/61687a.wgsl.expected.msl
rename to test/builtins/gen/radians/61687a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/radians/61687a.wgsl.expected.spvasm b/test/builtins/gen/radians/61687a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/radians/61687a.wgsl.expected.spvasm
rename to test/builtins/gen/radians/61687a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/radians/61687a.wgsl.expected.wgsl b/test/builtins/gen/radians/61687a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/radians/61687a.wgsl.expected.wgsl
rename to test/builtins/gen/radians/61687a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/radians/6b0ff2.wgsl b/test/builtins/gen/radians/6b0ff2.wgsl
new file mode 100644
index 0000000..4ba7942
--- /dev/null
+++ b/test/builtins/gen/radians/6b0ff2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn radians(f32) -> f32
+fn radians_6b0ff2() {
+  var res: f32 = radians(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  radians_6b0ff2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  radians_6b0ff2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  radians_6b0ff2();
+}
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl b/test/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/radians/6b0ff2.wgsl.expected.glsl
rename to test/builtins/gen/radians/6b0ff2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.hlsl b/test/builtins/gen/radians/6b0ff2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/radians/6b0ff2.wgsl.expected.hlsl
rename to test/builtins/gen/radians/6b0ff2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.msl b/test/builtins/gen/radians/6b0ff2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/radians/6b0ff2.wgsl.expected.msl
rename to test/builtins/gen/radians/6b0ff2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.spvasm b/test/builtins/gen/radians/6b0ff2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/radians/6b0ff2.wgsl.expected.spvasm
rename to test/builtins/gen/radians/6b0ff2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl.expected.wgsl b/test/builtins/gen/radians/6b0ff2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/radians/6b0ff2.wgsl.expected.wgsl
rename to test/builtins/gen/radians/6b0ff2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/radians/f96258.wgsl b/test/builtins/gen/radians/f96258.wgsl
new file mode 100644
index 0000000..5f96335
--- /dev/null
+++ b/test/builtins/gen/radians/f96258.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn radians(vec<3, f32>) -> vec<3, f32>
+fn radians_f96258() {
+  var res: vec3<f32> = radians(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  radians_f96258();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  radians_f96258();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  radians_f96258();
+}
diff --git a/test/intrinsics/gen/radians/f96258.wgsl.expected.glsl b/test/builtins/gen/radians/f96258.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/radians/f96258.wgsl.expected.glsl
rename to test/builtins/gen/radians/f96258.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/radians/f96258.wgsl.expected.hlsl b/test/builtins/gen/radians/f96258.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/radians/f96258.wgsl.expected.hlsl
rename to test/builtins/gen/radians/f96258.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/radians/f96258.wgsl.expected.msl b/test/builtins/gen/radians/f96258.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/radians/f96258.wgsl.expected.msl
rename to test/builtins/gen/radians/f96258.wgsl.expected.msl
diff --git a/test/intrinsics/gen/radians/f96258.wgsl.expected.spvasm b/test/builtins/gen/radians/f96258.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/radians/f96258.wgsl.expected.spvasm
rename to test/builtins/gen/radians/f96258.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/radians/f96258.wgsl.expected.wgsl b/test/builtins/gen/radians/f96258.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/radians/f96258.wgsl.expected.wgsl
rename to test/builtins/gen/radians/f96258.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reflect/05357e.wgsl b/test/builtins/gen/reflect/05357e.wgsl
new file mode 100644
index 0000000..cbf045d
--- /dev/null
+++ b/test/builtins/gen/reflect/05357e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reflect(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn reflect_05357e() {
+  var res: vec4<f32> = reflect(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reflect_05357e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reflect_05357e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reflect_05357e();
+}
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl b/test/builtins/gen/reflect/05357e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reflect/05357e.wgsl.expected.glsl
rename to test/builtins/gen/reflect/05357e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.hlsl b/test/builtins/gen/reflect/05357e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reflect/05357e.wgsl.expected.hlsl
rename to test/builtins/gen/reflect/05357e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.msl b/test/builtins/gen/reflect/05357e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reflect/05357e.wgsl.expected.msl
rename to test/builtins/gen/reflect/05357e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.spvasm b/test/builtins/gen/reflect/05357e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reflect/05357e.wgsl.expected.spvasm
rename to test/builtins/gen/reflect/05357e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl.expected.wgsl b/test/builtins/gen/reflect/05357e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reflect/05357e.wgsl.expected.wgsl
rename to test/builtins/gen/reflect/05357e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reflect/b61e10.wgsl b/test/builtins/gen/reflect/b61e10.wgsl
new file mode 100644
index 0000000..15e1ec7
--- /dev/null
+++ b/test/builtins/gen/reflect/b61e10.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reflect(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn reflect_b61e10() {
+  var res: vec2<f32> = reflect(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reflect_b61e10();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reflect_b61e10();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reflect_b61e10();
+}
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl b/test/builtins/gen/reflect/b61e10.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reflect/b61e10.wgsl.expected.glsl
rename to test/builtins/gen/reflect/b61e10.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.hlsl b/test/builtins/gen/reflect/b61e10.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reflect/b61e10.wgsl.expected.hlsl
rename to test/builtins/gen/reflect/b61e10.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.msl b/test/builtins/gen/reflect/b61e10.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reflect/b61e10.wgsl.expected.msl
rename to test/builtins/gen/reflect/b61e10.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.spvasm b/test/builtins/gen/reflect/b61e10.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reflect/b61e10.wgsl.expected.spvasm
rename to test/builtins/gen/reflect/b61e10.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl.expected.wgsl b/test/builtins/gen/reflect/b61e10.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reflect/b61e10.wgsl.expected.wgsl
rename to test/builtins/gen/reflect/b61e10.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reflect/f47fdb.wgsl b/test/builtins/gen/reflect/f47fdb.wgsl
new file mode 100644
index 0000000..86290aa
--- /dev/null
+++ b/test/builtins/gen/reflect/f47fdb.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reflect(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn reflect_f47fdb() {
+  var res: vec3<f32> = reflect(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reflect_f47fdb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reflect_f47fdb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reflect_f47fdb();
+}
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl b/test/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reflect/f47fdb.wgsl.expected.glsl
rename to test/builtins/gen/reflect/f47fdb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.hlsl b/test/builtins/gen/reflect/f47fdb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reflect/f47fdb.wgsl.expected.hlsl
rename to test/builtins/gen/reflect/f47fdb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.msl b/test/builtins/gen/reflect/f47fdb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reflect/f47fdb.wgsl.expected.msl
rename to test/builtins/gen/reflect/f47fdb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.spvasm b/test/builtins/gen/reflect/f47fdb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reflect/f47fdb.wgsl.expected.spvasm
rename to test/builtins/gen/reflect/f47fdb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl.expected.wgsl b/test/builtins/gen/reflect/f47fdb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reflect/f47fdb.wgsl.expected.wgsl
rename to test/builtins/gen/reflect/f47fdb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/refract/7e02e6.wgsl b/test/builtins/gen/refract/7e02e6.wgsl
new file mode 100644
index 0000000..e49ccde
--- /dev/null
+++ b/test/builtins/gen/refract/7e02e6.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn refract(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
+fn refract_7e02e6() {
+  var res: vec4<f32> = refract(vec4<f32>(), vec4<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  refract_7e02e6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  refract_7e02e6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  refract_7e02e6();
+}
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl b/test/builtins/gen/refract/7e02e6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/refract/7e02e6.wgsl.expected.glsl
rename to test/builtins/gen/refract/7e02e6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.hlsl b/test/builtins/gen/refract/7e02e6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/refract/7e02e6.wgsl.expected.hlsl
rename to test/builtins/gen/refract/7e02e6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.msl b/test/builtins/gen/refract/7e02e6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/refract/7e02e6.wgsl.expected.msl
rename to test/builtins/gen/refract/7e02e6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.spvasm b/test/builtins/gen/refract/7e02e6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/refract/7e02e6.wgsl.expected.spvasm
rename to test/builtins/gen/refract/7e02e6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl.expected.wgsl b/test/builtins/gen/refract/7e02e6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/refract/7e02e6.wgsl.expected.wgsl
rename to test/builtins/gen/refract/7e02e6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/refract/cbc1d2.wgsl b/test/builtins/gen/refract/cbc1d2.wgsl
new file mode 100644
index 0000000..6abdc6e
--- /dev/null
+++ b/test/builtins/gen/refract/cbc1d2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn refract(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
+fn refract_cbc1d2() {
+  var res: vec3<f32> = refract(vec3<f32>(), vec3<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  refract_cbc1d2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  refract_cbc1d2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  refract_cbc1d2();
+}
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl b/test/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/refract/cbc1d2.wgsl.expected.glsl
rename to test/builtins/gen/refract/cbc1d2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.hlsl b/test/builtins/gen/refract/cbc1d2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/refract/cbc1d2.wgsl.expected.hlsl
rename to test/builtins/gen/refract/cbc1d2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.msl b/test/builtins/gen/refract/cbc1d2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/refract/cbc1d2.wgsl.expected.msl
rename to test/builtins/gen/refract/cbc1d2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.spvasm b/test/builtins/gen/refract/cbc1d2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/refract/cbc1d2.wgsl.expected.spvasm
rename to test/builtins/gen/refract/cbc1d2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl.expected.wgsl b/test/builtins/gen/refract/cbc1d2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/refract/cbc1d2.wgsl.expected.wgsl
rename to test/builtins/gen/refract/cbc1d2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/refract/cd905f.wgsl b/test/builtins/gen/refract/cd905f.wgsl
new file mode 100644
index 0000000..44d4e1b
--- /dev/null
+++ b/test/builtins/gen/refract/cd905f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn refract(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
+fn refract_cd905f() {
+  var res: vec2<f32> = refract(vec2<f32>(), vec2<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  refract_cd905f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  refract_cd905f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  refract_cd905f();
+}
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl b/test/builtins/gen/refract/cd905f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/refract/cd905f.wgsl.expected.glsl
rename to test/builtins/gen/refract/cd905f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.hlsl b/test/builtins/gen/refract/cd905f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/refract/cd905f.wgsl.expected.hlsl
rename to test/builtins/gen/refract/cd905f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.msl b/test/builtins/gen/refract/cd905f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/refract/cd905f.wgsl.expected.msl
rename to test/builtins/gen/refract/cd905f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.spvasm b/test/builtins/gen/refract/cd905f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/refract/cd905f.wgsl.expected.spvasm
rename to test/builtins/gen/refract/cd905f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl.expected.wgsl b/test/builtins/gen/refract/cd905f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/refract/cd905f.wgsl.expected.wgsl
rename to test/builtins/gen/refract/cd905f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/222177.wgsl b/test/builtins/gen/reverseBits/222177.wgsl
new file mode 100644
index 0000000..467bc9f
--- /dev/null
+++ b/test/builtins/gen/reverseBits/222177.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(vec<2, i32>) -> vec<2, i32>
+fn reverseBits_222177() {
+  var res: vec2<i32> = reverseBits(vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_222177();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_222177();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_222177();
+}
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl b/test/builtins/gen/reverseBits/222177.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/222177.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/222177.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/222177.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/222177.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/222177.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.msl b/test/builtins/gen/reverseBits/222177.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/222177.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/222177.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/222177.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/222177.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/222177.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/222177.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/222177.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/222177.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/35fea9.wgsl b/test/builtins/gen/reverseBits/35fea9.wgsl
new file mode 100644
index 0000000..61ba539
--- /dev/null
+++ b/test/builtins/gen/reverseBits/35fea9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(vec<4, u32>) -> vec<4, u32>
+fn reverseBits_35fea9() {
+  var res: vec4<u32> = reverseBits(vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_35fea9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_35fea9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_35fea9();
+}
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/35fea9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/35fea9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.msl b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/35fea9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/35fea9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/35fea9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/35fea9.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/35fea9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/4dbd6f.wgsl b/test/builtins/gen/reverseBits/4dbd6f.wgsl
new file mode 100644
index 0000000..ff3d4f8
--- /dev/null
+++ b/test/builtins/gen/reverseBits/4dbd6f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(vec<4, i32>) -> vec<4, i32>
+fn reverseBits_4dbd6f() {
+  var res: vec4<i32> = reverseBits(vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_4dbd6f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_4dbd6f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_4dbd6f();
+}
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.msl b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/4dbd6f.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/4dbd6f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/7c4269.wgsl b/test/builtins/gen/reverseBits/7c4269.wgsl
new file mode 100644
index 0000000..699344a
--- /dev/null
+++ b/test/builtins/gen/reverseBits/7c4269.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(i32) -> i32
+fn reverseBits_7c4269() {
+  var res: i32 = reverseBits(1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_7c4269();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_7c4269();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_7c4269();
+}
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/7c4269.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/7c4269.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.msl b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/7c4269.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/7c4269.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/7c4269.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/7c4269.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/7c4269.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/a6ccd4.wgsl b/test/builtins/gen/reverseBits/a6ccd4.wgsl
new file mode 100644
index 0000000..6b1c244
--- /dev/null
+++ b/test/builtins/gen/reverseBits/a6ccd4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(vec<3, u32>) -> vec<3, u32>
+fn reverseBits_a6ccd4() {
+  var res: vec3<u32> = reverseBits(vec3<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_a6ccd4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_a6ccd4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_a6ccd4();
+}
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.msl b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/a6ccd4.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/a6ccd4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/c21bc1.wgsl b/test/builtins/gen/reverseBits/c21bc1.wgsl
new file mode 100644
index 0000000..cb6f8e3
--- /dev/null
+++ b/test/builtins/gen/reverseBits/c21bc1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(vec<3, i32>) -> vec<3, i32>
+fn reverseBits_c21bc1() {
+  var res: vec3<i32> = reverseBits(vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_c21bc1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_c21bc1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_c21bc1();
+}
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/c21bc1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/c21bc1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.msl b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/c21bc1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/c21bc1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/c21bc1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/c21bc1.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/c21bc1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/e1f4c1.wgsl b/test/builtins/gen/reverseBits/e1f4c1.wgsl
new file mode 100644
index 0000000..5076c6f
--- /dev/null
+++ b/test/builtins/gen/reverseBits/e1f4c1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(vec<2, u32>) -> vec<2, u32>
+fn reverseBits_e1f4c1() {
+  var res: vec2<u32> = reverseBits(vec2<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_e1f4c1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_e1f4c1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_e1f4c1();
+}
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.msl b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e1f4c1.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/e1f4c1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/reverseBits/e31adf.wgsl b/test/builtins/gen/reverseBits/e31adf.wgsl
new file mode 100644
index 0000000..3b31bae
--- /dev/null
+++ b/test/builtins/gen/reverseBits/e31adf.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn reverseBits(u32) -> u32
+fn reverseBits_e31adf() {
+  var res: u32 = reverseBits(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  reverseBits_e31adf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  reverseBits_e31adf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  reverseBits_e31adf();
+}
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.glsl
rename to test/builtins/gen/reverseBits/e31adf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.hlsl b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.hlsl
rename to test/builtins/gen/reverseBits/e31adf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.msl b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.msl
rename to test/builtins/gen/reverseBits/e31adf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.spvasm b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.spvasm
rename to test/builtins/gen/reverseBits/e31adf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.wgsl b/test/builtins/gen/reverseBits/e31adf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/reverseBits/e31adf.wgsl.expected.wgsl
rename to test/builtins/gen/reverseBits/e31adf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/round/106c0b.wgsl b/test/builtins/gen/round/106c0b.wgsl
new file mode 100644
index 0000000..5d684ce
--- /dev/null
+++ b/test/builtins/gen/round/106c0b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn round(vec<4, f32>) -> vec<4, f32>
+fn round_106c0b() {
+  var res: vec4<f32> = round(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  round_106c0b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  round_106c0b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  round_106c0b();
+}
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.glsl b/test/builtins/gen/round/106c0b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/round/106c0b.wgsl.expected.glsl
rename to test/builtins/gen/round/106c0b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.hlsl b/test/builtins/gen/round/106c0b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/round/106c0b.wgsl.expected.hlsl
rename to test/builtins/gen/round/106c0b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.msl b/test/builtins/gen/round/106c0b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/round/106c0b.wgsl.expected.msl
rename to test/builtins/gen/round/106c0b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.spvasm b/test/builtins/gen/round/106c0b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/round/106c0b.wgsl.expected.spvasm
rename to test/builtins/gen/round/106c0b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/round/106c0b.wgsl.expected.wgsl b/test/builtins/gen/round/106c0b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/round/106c0b.wgsl.expected.wgsl
rename to test/builtins/gen/round/106c0b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/round/1c7897.wgsl b/test/builtins/gen/round/1c7897.wgsl
new file mode 100644
index 0000000..8e9898b
--- /dev/null
+++ b/test/builtins/gen/round/1c7897.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn round(vec<3, f32>) -> vec<3, f32>
+fn round_1c7897() {
+  var res: vec3<f32> = round(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  round_1c7897();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  round_1c7897();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  round_1c7897();
+}
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.glsl b/test/builtins/gen/round/1c7897.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/round/1c7897.wgsl.expected.glsl
rename to test/builtins/gen/round/1c7897.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.hlsl b/test/builtins/gen/round/1c7897.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/round/1c7897.wgsl.expected.hlsl
rename to test/builtins/gen/round/1c7897.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.msl b/test/builtins/gen/round/1c7897.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/round/1c7897.wgsl.expected.msl
rename to test/builtins/gen/round/1c7897.wgsl.expected.msl
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.spvasm b/test/builtins/gen/round/1c7897.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/round/1c7897.wgsl.expected.spvasm
rename to test/builtins/gen/round/1c7897.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/round/1c7897.wgsl.expected.wgsl b/test/builtins/gen/round/1c7897.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/round/1c7897.wgsl.expected.wgsl
rename to test/builtins/gen/round/1c7897.wgsl.expected.wgsl
diff --git a/test/builtins/gen/round/52c84d.wgsl b/test/builtins/gen/round/52c84d.wgsl
new file mode 100644
index 0000000..f3bc8bf
--- /dev/null
+++ b/test/builtins/gen/round/52c84d.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn round(vec<2, f32>) -> vec<2, f32>
+fn round_52c84d() {
+  var res: vec2<f32> = round(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  round_52c84d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  round_52c84d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  round_52c84d();
+}
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.glsl b/test/builtins/gen/round/52c84d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/round/52c84d.wgsl.expected.glsl
rename to test/builtins/gen/round/52c84d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.hlsl b/test/builtins/gen/round/52c84d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/round/52c84d.wgsl.expected.hlsl
rename to test/builtins/gen/round/52c84d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.msl b/test/builtins/gen/round/52c84d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/round/52c84d.wgsl.expected.msl
rename to test/builtins/gen/round/52c84d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.spvasm b/test/builtins/gen/round/52c84d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/round/52c84d.wgsl.expected.spvasm
rename to test/builtins/gen/round/52c84d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/round/52c84d.wgsl.expected.wgsl b/test/builtins/gen/round/52c84d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/round/52c84d.wgsl.expected.wgsl
rename to test/builtins/gen/round/52c84d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/round/9edc38.wgsl b/test/builtins/gen/round/9edc38.wgsl
new file mode 100644
index 0000000..010071b
--- /dev/null
+++ b/test/builtins/gen/round/9edc38.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn round(f32) -> f32
+fn round_9edc38() {
+  var res: f32 = round(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  round_9edc38();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  round_9edc38();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  round_9edc38();
+}
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.glsl b/test/builtins/gen/round/9edc38.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/round/9edc38.wgsl.expected.glsl
rename to test/builtins/gen/round/9edc38.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.hlsl b/test/builtins/gen/round/9edc38.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/round/9edc38.wgsl.expected.hlsl
rename to test/builtins/gen/round/9edc38.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.msl b/test/builtins/gen/round/9edc38.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/round/9edc38.wgsl.expected.msl
rename to test/builtins/gen/round/9edc38.wgsl.expected.msl
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.spvasm b/test/builtins/gen/round/9edc38.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/round/9edc38.wgsl.expected.spvasm
rename to test/builtins/gen/round/9edc38.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/round/9edc38.wgsl.expected.wgsl b/test/builtins/gen/round/9edc38.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/round/9edc38.wgsl.expected.wgsl
rename to test/builtins/gen/round/9edc38.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/00b848.wgsl b/test/builtins/gen/select/00b848.wgsl
new file mode 100644
index 0000000..32c7ffb
--- /dev/null
+++ b/test/builtins/gen/select/00b848.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, i32>, vec<2, i32>, vec<2, bool>) -> vec<2, i32>
+fn select_00b848() {
+  var res: vec2<i32> = select(vec2<i32>(), vec2<i32>(), vec2<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_00b848();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_00b848();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_00b848();
+}
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.glsl b/test/builtins/gen/select/00b848.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/00b848.wgsl.expected.glsl
rename to test/builtins/gen/select/00b848.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.hlsl b/test/builtins/gen/select/00b848.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/00b848.wgsl.expected.hlsl
rename to test/builtins/gen/select/00b848.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.msl b/test/builtins/gen/select/00b848.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/00b848.wgsl.expected.msl
rename to test/builtins/gen/select/00b848.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.spvasm b/test/builtins/gen/select/00b848.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/00b848.wgsl.expected.spvasm
rename to test/builtins/gen/select/00b848.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/00b848.wgsl.expected.wgsl b/test/builtins/gen/select/00b848.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/00b848.wgsl.expected.wgsl
rename to test/builtins/gen/select/00b848.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/01e2cd.wgsl b/test/builtins/gen/select/01e2cd.wgsl
new file mode 100644
index 0000000..7715860
--- /dev/null
+++ b/test/builtins/gen/select/01e2cd.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, i32>, vec<3, i32>, vec<3, bool>) -> vec<3, i32>
+fn select_01e2cd() {
+  var res: vec3<i32> = select(vec3<i32>(), vec3<i32>(), vec3<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_01e2cd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_01e2cd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_01e2cd();
+}
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl b/test/builtins/gen/select/01e2cd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/01e2cd.wgsl.expected.glsl
rename to test/builtins/gen/select/01e2cd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.hlsl b/test/builtins/gen/select/01e2cd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/01e2cd.wgsl.expected.hlsl
rename to test/builtins/gen/select/01e2cd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.msl b/test/builtins/gen/select/01e2cd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/01e2cd.wgsl.expected.msl
rename to test/builtins/gen/select/01e2cd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.spvasm b/test/builtins/gen/select/01e2cd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/01e2cd.wgsl.expected.spvasm
rename to test/builtins/gen/select/01e2cd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl.expected.wgsl b/test/builtins/gen/select/01e2cd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/01e2cd.wgsl.expected.wgsl
rename to test/builtins/gen/select/01e2cd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/087ea4.wgsl b/test/builtins/gen/select/087ea4.wgsl
new file mode 100644
index 0000000..a2fcf56
--- /dev/null
+++ b/test/builtins/gen/select/087ea4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, u32>, vec<4, u32>, bool) -> vec<4, u32>
+fn select_087ea4() {
+  var res: vec4<u32> = select(vec4<u32>(), vec4<u32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_087ea4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_087ea4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_087ea4();
+}
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.glsl b/test/builtins/gen/select/087ea4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/087ea4.wgsl.expected.glsl
rename to test/builtins/gen/select/087ea4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.hlsl b/test/builtins/gen/select/087ea4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/087ea4.wgsl.expected.hlsl
rename to test/builtins/gen/select/087ea4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.msl b/test/builtins/gen/select/087ea4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/087ea4.wgsl.expected.msl
rename to test/builtins/gen/select/087ea4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.spvasm b/test/builtins/gen/select/087ea4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/087ea4.wgsl.expected.spvasm
rename to test/builtins/gen/select/087ea4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/087ea4.wgsl.expected.wgsl b/test/builtins/gen/select/087ea4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/087ea4.wgsl.expected.wgsl
rename to test/builtins/gen/select/087ea4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/1e960b.wgsl b/test/builtins/gen/select/1e960b.wgsl
new file mode 100644
index 0000000..6594ce1
--- /dev/null
+++ b/test/builtins/gen/select/1e960b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, u32>, vec<2, u32>, vec<2, bool>) -> vec<2, u32>
+fn select_1e960b() {
+  var res: vec2<u32> = select(vec2<u32>(), vec2<u32>(), vec2<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_1e960b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_1e960b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_1e960b();
+}
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.glsl b/test/builtins/gen/select/1e960b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/1e960b.wgsl.expected.glsl
rename to test/builtins/gen/select/1e960b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.hlsl b/test/builtins/gen/select/1e960b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/1e960b.wgsl.expected.hlsl
rename to test/builtins/gen/select/1e960b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.msl b/test/builtins/gen/select/1e960b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/1e960b.wgsl.expected.msl
rename to test/builtins/gen/select/1e960b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.spvasm b/test/builtins/gen/select/1e960b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/1e960b.wgsl.expected.spvasm
rename to test/builtins/gen/select/1e960b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/1e960b.wgsl.expected.wgsl b/test/builtins/gen/select/1e960b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/1e960b.wgsl.expected.wgsl
rename to test/builtins/gen/select/1e960b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/266aff.wgsl b/test/builtins/gen/select/266aff.wgsl
new file mode 100644
index 0000000..56e311a
--- /dev/null
+++ b/test/builtins/gen/select/266aff.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, f32>, vec<2, f32>, vec<2, bool>) -> vec<2, f32>
+fn select_266aff() {
+  var res: vec2<f32> = select(vec2<f32>(), vec2<f32>(), vec2<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_266aff();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_266aff();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_266aff();
+}
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.glsl b/test/builtins/gen/select/266aff.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/266aff.wgsl.expected.glsl
rename to test/builtins/gen/select/266aff.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.hlsl b/test/builtins/gen/select/266aff.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/266aff.wgsl.expected.hlsl
rename to test/builtins/gen/select/266aff.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.msl b/test/builtins/gen/select/266aff.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/266aff.wgsl.expected.msl
rename to test/builtins/gen/select/266aff.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.spvasm b/test/builtins/gen/select/266aff.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/266aff.wgsl.expected.spvasm
rename to test/builtins/gen/select/266aff.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/266aff.wgsl.expected.wgsl b/test/builtins/gen/select/266aff.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/266aff.wgsl.expected.wgsl
rename to test/builtins/gen/select/266aff.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/28a27e.wgsl b/test/builtins/gen/select/28a27e.wgsl
new file mode 100644
index 0000000..42151b5
--- /dev/null
+++ b/test/builtins/gen/select/28a27e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, u32>, vec<3, u32>, vec<3, bool>) -> vec<3, u32>
+fn select_28a27e() {
+  var res: vec3<u32> = select(vec3<u32>(), vec3<u32>(), vec3<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_28a27e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_28a27e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_28a27e();
+}
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.glsl b/test/builtins/gen/select/28a27e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/28a27e.wgsl.expected.glsl
rename to test/builtins/gen/select/28a27e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.hlsl b/test/builtins/gen/select/28a27e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/28a27e.wgsl.expected.hlsl
rename to test/builtins/gen/select/28a27e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.msl b/test/builtins/gen/select/28a27e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/28a27e.wgsl.expected.msl
rename to test/builtins/gen/select/28a27e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.spvasm b/test/builtins/gen/select/28a27e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/28a27e.wgsl.expected.spvasm
rename to test/builtins/gen/select/28a27e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/28a27e.wgsl.expected.wgsl b/test/builtins/gen/select/28a27e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/28a27e.wgsl.expected.wgsl
rename to test/builtins/gen/select/28a27e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/3c25ce.wgsl b/test/builtins/gen/select/3c25ce.wgsl
new file mode 100644
index 0000000..3670bd6
--- /dev/null
+++ b/test/builtins/gen/select/3c25ce.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, bool>, vec<3, bool>, bool) -> vec<3, bool>
+fn select_3c25ce() {
+  var res: vec3<bool> = select(vec3<bool>(), vec3<bool>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_3c25ce();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_3c25ce();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_3c25ce();
+}
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl b/test/builtins/gen/select/3c25ce.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/3c25ce.wgsl.expected.glsl
rename to test/builtins/gen/select/3c25ce.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.hlsl b/test/builtins/gen/select/3c25ce.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/3c25ce.wgsl.expected.hlsl
rename to test/builtins/gen/select/3c25ce.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.msl b/test/builtins/gen/select/3c25ce.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/3c25ce.wgsl.expected.msl
rename to test/builtins/gen/select/3c25ce.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.spvasm b/test/builtins/gen/select/3c25ce.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/3c25ce.wgsl.expected.spvasm
rename to test/builtins/gen/select/3c25ce.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl.expected.wgsl b/test/builtins/gen/select/3c25ce.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/3c25ce.wgsl.expected.wgsl
rename to test/builtins/gen/select/3c25ce.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/416e14.wgsl b/test/builtins/gen/select/416e14.wgsl
new file mode 100644
index 0000000..78d799d
--- /dev/null
+++ b/test/builtins/gen/select/416e14.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(f32, f32, bool) -> f32
+fn select_416e14() {
+  var res: f32 = select(1.0, 1.0, bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_416e14();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_416e14();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_416e14();
+}
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.glsl b/test/builtins/gen/select/416e14.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/416e14.wgsl.expected.glsl
rename to test/builtins/gen/select/416e14.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.hlsl b/test/builtins/gen/select/416e14.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/416e14.wgsl.expected.hlsl
rename to test/builtins/gen/select/416e14.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.msl b/test/builtins/gen/select/416e14.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/416e14.wgsl.expected.msl
rename to test/builtins/gen/select/416e14.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.spvasm b/test/builtins/gen/select/416e14.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/416e14.wgsl.expected.spvasm
rename to test/builtins/gen/select/416e14.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/416e14.wgsl.expected.wgsl b/test/builtins/gen/select/416e14.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/416e14.wgsl.expected.wgsl
rename to test/builtins/gen/select/416e14.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/51b047.wgsl b/test/builtins/gen/select/51b047.wgsl
new file mode 100644
index 0000000..63c6e77
--- /dev/null
+++ b/test/builtins/gen/select/51b047.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, u32>, vec<2, u32>, bool) -> vec<2, u32>
+fn select_51b047() {
+  var res: vec2<u32> = select(vec2<u32>(), vec2<u32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_51b047();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_51b047();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_51b047();
+}
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.glsl b/test/builtins/gen/select/51b047.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/51b047.wgsl.expected.glsl
rename to test/builtins/gen/select/51b047.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.hlsl b/test/builtins/gen/select/51b047.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/51b047.wgsl.expected.hlsl
rename to test/builtins/gen/select/51b047.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.msl b/test/builtins/gen/select/51b047.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/51b047.wgsl.expected.msl
rename to test/builtins/gen/select/51b047.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.spvasm b/test/builtins/gen/select/51b047.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/51b047.wgsl.expected.spvasm
rename to test/builtins/gen/select/51b047.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/51b047.wgsl.expected.wgsl b/test/builtins/gen/select/51b047.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/51b047.wgsl.expected.wgsl
rename to test/builtins/gen/select/51b047.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/713567.wgsl b/test/builtins/gen/select/713567.wgsl
new file mode 100644
index 0000000..1e3b646
--- /dev/null
+++ b/test/builtins/gen/select/713567.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, f32>, vec<4, f32>, bool) -> vec<4, f32>
+fn select_713567() {
+  var res: vec4<f32> = select(vec4<f32>(), vec4<f32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_713567();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_713567();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_713567();
+}
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.glsl b/test/builtins/gen/select/713567.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/713567.wgsl.expected.glsl
rename to test/builtins/gen/select/713567.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.hlsl b/test/builtins/gen/select/713567.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/713567.wgsl.expected.hlsl
rename to test/builtins/gen/select/713567.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.msl b/test/builtins/gen/select/713567.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/713567.wgsl.expected.msl
rename to test/builtins/gen/select/713567.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.spvasm b/test/builtins/gen/select/713567.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/713567.wgsl.expected.spvasm
rename to test/builtins/gen/select/713567.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/713567.wgsl.expected.wgsl b/test/builtins/gen/select/713567.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/713567.wgsl.expected.wgsl
rename to test/builtins/gen/select/713567.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/78be5f.wgsl b/test/builtins/gen/select/78be5f.wgsl
new file mode 100644
index 0000000..59b5f04
--- /dev/null
+++ b/test/builtins/gen/select/78be5f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, f32>, vec<3, f32>, bool) -> vec<3, f32>
+fn select_78be5f() {
+  var res: vec3<f32> = select(vec3<f32>(), vec3<f32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_78be5f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_78be5f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_78be5f();
+}
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.glsl b/test/builtins/gen/select/78be5f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/78be5f.wgsl.expected.glsl
rename to test/builtins/gen/select/78be5f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.hlsl b/test/builtins/gen/select/78be5f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/78be5f.wgsl.expected.hlsl
rename to test/builtins/gen/select/78be5f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.msl b/test/builtins/gen/select/78be5f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/78be5f.wgsl.expected.msl
rename to test/builtins/gen/select/78be5f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.spvasm b/test/builtins/gen/select/78be5f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/78be5f.wgsl.expected.spvasm
rename to test/builtins/gen/select/78be5f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/78be5f.wgsl.expected.wgsl b/test/builtins/gen/select/78be5f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/78be5f.wgsl.expected.wgsl
rename to test/builtins/gen/select/78be5f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/80a9a9.wgsl b/test/builtins/gen/select/80a9a9.wgsl
new file mode 100644
index 0000000..5e1fc6c
--- /dev/null
+++ b/test/builtins/gen/select/80a9a9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, bool>, vec<3, bool>, vec<3, bool>) -> vec<3, bool>
+fn select_80a9a9() {
+  var res: vec3<bool> = select(vec3<bool>(), vec3<bool>(), vec3<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_80a9a9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_80a9a9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_80a9a9();
+}
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl b/test/builtins/gen/select/80a9a9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/80a9a9.wgsl.expected.glsl
rename to test/builtins/gen/select/80a9a9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.hlsl b/test/builtins/gen/select/80a9a9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/80a9a9.wgsl.expected.hlsl
rename to test/builtins/gen/select/80a9a9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.msl b/test/builtins/gen/select/80a9a9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/80a9a9.wgsl.expected.msl
rename to test/builtins/gen/select/80a9a9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.spvasm b/test/builtins/gen/select/80a9a9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/80a9a9.wgsl.expected.spvasm
rename to test/builtins/gen/select/80a9a9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl.expected.wgsl b/test/builtins/gen/select/80a9a9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/80a9a9.wgsl.expected.wgsl
rename to test/builtins/gen/select/80a9a9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/8fa62c.wgsl b/test/builtins/gen/select/8fa62c.wgsl
new file mode 100644
index 0000000..97a8fe7
--- /dev/null
+++ b/test/builtins/gen/select/8fa62c.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, i32>, vec<3, i32>, bool) -> vec<3, i32>
+fn select_8fa62c() {
+  var res: vec3<i32> = select(vec3<i32>(), vec3<i32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_8fa62c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_8fa62c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_8fa62c();
+}
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl b/test/builtins/gen/select/8fa62c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/8fa62c.wgsl.expected.glsl
rename to test/builtins/gen/select/8fa62c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.hlsl b/test/builtins/gen/select/8fa62c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/8fa62c.wgsl.expected.hlsl
rename to test/builtins/gen/select/8fa62c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.msl b/test/builtins/gen/select/8fa62c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/8fa62c.wgsl.expected.msl
rename to test/builtins/gen/select/8fa62c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.spvasm b/test/builtins/gen/select/8fa62c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/8fa62c.wgsl.expected.spvasm
rename to test/builtins/gen/select/8fa62c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl.expected.wgsl b/test/builtins/gen/select/8fa62c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/8fa62c.wgsl.expected.wgsl
rename to test/builtins/gen/select/8fa62c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/99f883.wgsl b/test/builtins/gen/select/99f883.wgsl
new file mode 100644
index 0000000..7fd93b3
--- /dev/null
+++ b/test/builtins/gen/select/99f883.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(u32, u32, bool) -> u32
+fn select_99f883() {
+  var res: u32 = select(1u, 1u, bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_99f883();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_99f883();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_99f883();
+}
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.glsl b/test/builtins/gen/select/99f883.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/99f883.wgsl.expected.glsl
rename to test/builtins/gen/select/99f883.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.hlsl b/test/builtins/gen/select/99f883.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/99f883.wgsl.expected.hlsl
rename to test/builtins/gen/select/99f883.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.msl b/test/builtins/gen/select/99f883.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/99f883.wgsl.expected.msl
rename to test/builtins/gen/select/99f883.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.spvasm b/test/builtins/gen/select/99f883.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/99f883.wgsl.expected.spvasm
rename to test/builtins/gen/select/99f883.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/99f883.wgsl.expected.wgsl b/test/builtins/gen/select/99f883.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/99f883.wgsl.expected.wgsl
rename to test/builtins/gen/select/99f883.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/a2860e.wgsl b/test/builtins/gen/select/a2860e.wgsl
new file mode 100644
index 0000000..f808503
--- /dev/null
+++ b/test/builtins/gen/select/a2860e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, i32>, vec<4, i32>, vec<4, bool>) -> vec<4, i32>
+fn select_a2860e() {
+  var res: vec4<i32> = select(vec4<i32>(), vec4<i32>(), vec4<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_a2860e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_a2860e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_a2860e();
+}
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.glsl b/test/builtins/gen/select/a2860e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/a2860e.wgsl.expected.glsl
rename to test/builtins/gen/select/a2860e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.hlsl b/test/builtins/gen/select/a2860e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/a2860e.wgsl.expected.hlsl
rename to test/builtins/gen/select/a2860e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.msl b/test/builtins/gen/select/a2860e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/a2860e.wgsl.expected.msl
rename to test/builtins/gen/select/a2860e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.spvasm b/test/builtins/gen/select/a2860e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/a2860e.wgsl.expected.spvasm
rename to test/builtins/gen/select/a2860e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/a2860e.wgsl.expected.wgsl b/test/builtins/gen/select/a2860e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/a2860e.wgsl.expected.wgsl
rename to test/builtins/gen/select/a2860e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/ab069f.wgsl b/test/builtins/gen/select/ab069f.wgsl
new file mode 100644
index 0000000..e9d766a
--- /dev/null
+++ b/test/builtins/gen/select/ab069f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, i32>, vec<4, i32>, bool) -> vec<4, i32>
+fn select_ab069f() {
+  var res: vec4<i32> = select(vec4<i32>(), vec4<i32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_ab069f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_ab069f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_ab069f();
+}
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.glsl b/test/builtins/gen/select/ab069f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/ab069f.wgsl.expected.glsl
rename to test/builtins/gen/select/ab069f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.hlsl b/test/builtins/gen/select/ab069f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/ab069f.wgsl.expected.hlsl
rename to test/builtins/gen/select/ab069f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.msl b/test/builtins/gen/select/ab069f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/ab069f.wgsl.expected.msl
rename to test/builtins/gen/select/ab069f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.spvasm b/test/builtins/gen/select/ab069f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/ab069f.wgsl.expected.spvasm
rename to test/builtins/gen/select/ab069f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/ab069f.wgsl.expected.wgsl b/test/builtins/gen/select/ab069f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/ab069f.wgsl.expected.wgsl
rename to test/builtins/gen/select/ab069f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/b04721.wgsl b/test/builtins/gen/select/b04721.wgsl
new file mode 100644
index 0000000..2d3f476
--- /dev/null
+++ b/test/builtins/gen/select/b04721.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, u32>, vec<3, u32>, bool) -> vec<3, u32>
+fn select_b04721() {
+  var res: vec3<u32> = select(vec3<u32>(), vec3<u32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_b04721();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_b04721();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_b04721();
+}
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.glsl b/test/builtins/gen/select/b04721.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/b04721.wgsl.expected.glsl
rename to test/builtins/gen/select/b04721.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.hlsl b/test/builtins/gen/select/b04721.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/b04721.wgsl.expected.hlsl
rename to test/builtins/gen/select/b04721.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.msl b/test/builtins/gen/select/b04721.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/b04721.wgsl.expected.msl
rename to test/builtins/gen/select/b04721.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.spvasm b/test/builtins/gen/select/b04721.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/b04721.wgsl.expected.spvasm
rename to test/builtins/gen/select/b04721.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/b04721.wgsl.expected.wgsl b/test/builtins/gen/select/b04721.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/b04721.wgsl.expected.wgsl
rename to test/builtins/gen/select/b04721.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/bb447f.wgsl b/test/builtins/gen/select/bb447f.wgsl
new file mode 100644
index 0000000..fe72109
--- /dev/null
+++ b/test/builtins/gen/select/bb447f.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, i32>, vec<2, i32>, bool) -> vec<2, i32>
+fn select_bb447f() {
+  var res: vec2<i32> = select(vec2<i32>(), vec2<i32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_bb447f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_bb447f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_bb447f();
+}
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.glsl b/test/builtins/gen/select/bb447f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/bb447f.wgsl.expected.glsl
rename to test/builtins/gen/select/bb447f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.hlsl b/test/builtins/gen/select/bb447f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/bb447f.wgsl.expected.hlsl
rename to test/builtins/gen/select/bb447f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.msl b/test/builtins/gen/select/bb447f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/bb447f.wgsl.expected.msl
rename to test/builtins/gen/select/bb447f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.spvasm b/test/builtins/gen/select/bb447f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/bb447f.wgsl.expected.spvasm
rename to test/builtins/gen/select/bb447f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/bb447f.wgsl.expected.wgsl b/test/builtins/gen/select/bb447f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/bb447f.wgsl.expected.wgsl
rename to test/builtins/gen/select/bb447f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/bb8aae.wgsl b/test/builtins/gen/select/bb8aae.wgsl
new file mode 100644
index 0000000..18b8a09
--- /dev/null
+++ b/test/builtins/gen/select/bb8aae.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, f32>, vec<4, f32>, vec<4, bool>) -> vec<4, f32>
+fn select_bb8aae() {
+  var res: vec4<f32> = select(vec4<f32>(), vec4<f32>(), vec4<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_bb8aae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_bb8aae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_bb8aae();
+}
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl b/test/builtins/gen/select/bb8aae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/bb8aae.wgsl.expected.glsl
rename to test/builtins/gen/select/bb8aae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.hlsl b/test/builtins/gen/select/bb8aae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/bb8aae.wgsl.expected.hlsl
rename to test/builtins/gen/select/bb8aae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.msl b/test/builtins/gen/select/bb8aae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/bb8aae.wgsl.expected.msl
rename to test/builtins/gen/select/bb8aae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.spvasm b/test/builtins/gen/select/bb8aae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/bb8aae.wgsl.expected.spvasm
rename to test/builtins/gen/select/bb8aae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl.expected.wgsl b/test/builtins/gen/select/bb8aae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/bb8aae.wgsl.expected.wgsl
rename to test/builtins/gen/select/bb8aae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/bf3d29.wgsl b/test/builtins/gen/select/bf3d29.wgsl
new file mode 100644
index 0000000..571a586
--- /dev/null
+++ b/test/builtins/gen/select/bf3d29.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, f32>, vec<2, f32>, bool) -> vec<2, f32>
+fn select_bf3d29() {
+  var res: vec2<f32> = select(vec2<f32>(), vec2<f32>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_bf3d29();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_bf3d29();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_bf3d29();
+}
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl b/test/builtins/gen/select/bf3d29.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/bf3d29.wgsl.expected.glsl
rename to test/builtins/gen/select/bf3d29.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.hlsl b/test/builtins/gen/select/bf3d29.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/bf3d29.wgsl.expected.hlsl
rename to test/builtins/gen/select/bf3d29.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.msl b/test/builtins/gen/select/bf3d29.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/bf3d29.wgsl.expected.msl
rename to test/builtins/gen/select/bf3d29.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.spvasm b/test/builtins/gen/select/bf3d29.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/bf3d29.wgsl.expected.spvasm
rename to test/builtins/gen/select/bf3d29.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl.expected.wgsl b/test/builtins/gen/select/bf3d29.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/bf3d29.wgsl.expected.wgsl
rename to test/builtins/gen/select/bf3d29.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/c31f9e.wgsl b/test/builtins/gen/select/c31f9e.wgsl
new file mode 100644
index 0000000..1239a04
--- /dev/null
+++ b/test/builtins/gen/select/c31f9e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(bool, bool, bool) -> bool
+fn select_c31f9e() {
+  var res: bool = select(bool(), bool(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_c31f9e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_c31f9e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_c31f9e();
+}
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl b/test/builtins/gen/select/c31f9e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/c31f9e.wgsl.expected.glsl
rename to test/builtins/gen/select/c31f9e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.hlsl b/test/builtins/gen/select/c31f9e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/c31f9e.wgsl.expected.hlsl
rename to test/builtins/gen/select/c31f9e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.msl b/test/builtins/gen/select/c31f9e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/c31f9e.wgsl.expected.msl
rename to test/builtins/gen/select/c31f9e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.spvasm b/test/builtins/gen/select/c31f9e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/c31f9e.wgsl.expected.spvasm
rename to test/builtins/gen/select/c31f9e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl.expected.wgsl b/test/builtins/gen/select/c31f9e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/c31f9e.wgsl.expected.wgsl
rename to test/builtins/gen/select/c31f9e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/c41bd1.wgsl b/test/builtins/gen/select/c41bd1.wgsl
new file mode 100644
index 0000000..1f5405e
--- /dev/null
+++ b/test/builtins/gen/select/c41bd1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, bool>, vec<4, bool>, bool) -> vec<4, bool>
+fn select_c41bd1() {
+  var res: vec4<bool> = select(vec4<bool>(), vec4<bool>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_c41bd1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_c41bd1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_c41bd1();
+}
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl b/test/builtins/gen/select/c41bd1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/c41bd1.wgsl.expected.glsl
rename to test/builtins/gen/select/c41bd1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.hlsl b/test/builtins/gen/select/c41bd1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/c41bd1.wgsl.expected.hlsl
rename to test/builtins/gen/select/c41bd1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.msl b/test/builtins/gen/select/c41bd1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/c41bd1.wgsl.expected.msl
rename to test/builtins/gen/select/c41bd1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.spvasm b/test/builtins/gen/select/c41bd1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/c41bd1.wgsl.expected.spvasm
rename to test/builtins/gen/select/c41bd1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl.expected.wgsl b/test/builtins/gen/select/c41bd1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/c41bd1.wgsl.expected.wgsl
rename to test/builtins/gen/select/c41bd1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/c4a4ef.wgsl b/test/builtins/gen/select/c4a4ef.wgsl
new file mode 100644
index 0000000..2c79927
--- /dev/null
+++ b/test/builtins/gen/select/c4a4ef.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, u32>, vec<4, u32>, vec<4, bool>) -> vec<4, u32>
+fn select_c4a4ef() {
+  var res: vec4<u32> = select(vec4<u32>(), vec4<u32>(), vec4<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_c4a4ef();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_c4a4ef();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_c4a4ef();
+}
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl b/test/builtins/gen/select/c4a4ef.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/c4a4ef.wgsl.expected.glsl
rename to test/builtins/gen/select/c4a4ef.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.hlsl b/test/builtins/gen/select/c4a4ef.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/c4a4ef.wgsl.expected.hlsl
rename to test/builtins/gen/select/c4a4ef.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.msl b/test/builtins/gen/select/c4a4ef.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/c4a4ef.wgsl.expected.msl
rename to test/builtins/gen/select/c4a4ef.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.spvasm b/test/builtins/gen/select/c4a4ef.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/c4a4ef.wgsl.expected.spvasm
rename to test/builtins/gen/select/c4a4ef.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl.expected.wgsl b/test/builtins/gen/select/c4a4ef.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/c4a4ef.wgsl.expected.wgsl
rename to test/builtins/gen/select/c4a4ef.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/cb9301.wgsl b/test/builtins/gen/select/cb9301.wgsl
new file mode 100644
index 0000000..5f2a238
--- /dev/null
+++ b/test/builtins/gen/select/cb9301.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, bool>, vec<2, bool>, vec<2, bool>) -> vec<2, bool>
+fn select_cb9301() {
+  var res: vec2<bool> = select(vec2<bool>(), vec2<bool>(), vec2<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_cb9301();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_cb9301();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_cb9301();
+}
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.glsl b/test/builtins/gen/select/cb9301.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/cb9301.wgsl.expected.glsl
rename to test/builtins/gen/select/cb9301.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.hlsl b/test/builtins/gen/select/cb9301.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/cb9301.wgsl.expected.hlsl
rename to test/builtins/gen/select/cb9301.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.msl b/test/builtins/gen/select/cb9301.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/cb9301.wgsl.expected.msl
rename to test/builtins/gen/select/cb9301.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.spvasm b/test/builtins/gen/select/cb9301.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/cb9301.wgsl.expected.spvasm
rename to test/builtins/gen/select/cb9301.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/cb9301.wgsl.expected.wgsl b/test/builtins/gen/select/cb9301.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/cb9301.wgsl.expected.wgsl
rename to test/builtins/gen/select/cb9301.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/e3e028.wgsl b/test/builtins/gen/select/e3e028.wgsl
new file mode 100644
index 0000000..157715b
--- /dev/null
+++ b/test/builtins/gen/select/e3e028.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<4, bool>, vec<4, bool>, vec<4, bool>) -> vec<4, bool>
+fn select_e3e028() {
+  var res: vec4<bool> = select(vec4<bool>(), vec4<bool>(), vec4<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_e3e028();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_e3e028();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_e3e028();
+}
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.glsl b/test/builtins/gen/select/e3e028.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/e3e028.wgsl.expected.glsl
rename to test/builtins/gen/select/e3e028.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.hlsl b/test/builtins/gen/select/e3e028.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/e3e028.wgsl.expected.hlsl
rename to test/builtins/gen/select/e3e028.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.msl b/test/builtins/gen/select/e3e028.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/e3e028.wgsl.expected.msl
rename to test/builtins/gen/select/e3e028.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.spvasm b/test/builtins/gen/select/e3e028.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/e3e028.wgsl.expected.spvasm
rename to test/builtins/gen/select/e3e028.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/e3e028.wgsl.expected.wgsl b/test/builtins/gen/select/e3e028.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/e3e028.wgsl.expected.wgsl
rename to test/builtins/gen/select/e3e028.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/ebfea2.wgsl b/test/builtins/gen/select/ebfea2.wgsl
new file mode 100644
index 0000000..a67374c
--- /dev/null
+++ b/test/builtins/gen/select/ebfea2.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<3, f32>, vec<3, f32>, vec<3, bool>) -> vec<3, f32>
+fn select_ebfea2() {
+  var res: vec3<f32> = select(vec3<f32>(), vec3<f32>(), vec3<bool>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_ebfea2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_ebfea2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_ebfea2();
+}
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl b/test/builtins/gen/select/ebfea2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/ebfea2.wgsl.expected.glsl
rename to test/builtins/gen/select/ebfea2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.hlsl b/test/builtins/gen/select/ebfea2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/ebfea2.wgsl.expected.hlsl
rename to test/builtins/gen/select/ebfea2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.msl b/test/builtins/gen/select/ebfea2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/ebfea2.wgsl.expected.msl
rename to test/builtins/gen/select/ebfea2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.spvasm b/test/builtins/gen/select/ebfea2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/ebfea2.wgsl.expected.spvasm
rename to test/builtins/gen/select/ebfea2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl.expected.wgsl b/test/builtins/gen/select/ebfea2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/ebfea2.wgsl.expected.wgsl
rename to test/builtins/gen/select/ebfea2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/ed8a15.wgsl b/test/builtins/gen/select/ed8a15.wgsl
new file mode 100644
index 0000000..4821ffe
--- /dev/null
+++ b/test/builtins/gen/select/ed8a15.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(i32, i32, bool) -> i32
+fn select_ed8a15() {
+  var res: i32 = select(1, 1, bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_ed8a15();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_ed8a15();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_ed8a15();
+}
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl b/test/builtins/gen/select/ed8a15.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/ed8a15.wgsl.expected.glsl
rename to test/builtins/gen/select/ed8a15.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.hlsl b/test/builtins/gen/select/ed8a15.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/ed8a15.wgsl.expected.hlsl
rename to test/builtins/gen/select/ed8a15.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.msl b/test/builtins/gen/select/ed8a15.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/ed8a15.wgsl.expected.msl
rename to test/builtins/gen/select/ed8a15.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.spvasm b/test/builtins/gen/select/ed8a15.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/ed8a15.wgsl.expected.spvasm
rename to test/builtins/gen/select/ed8a15.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl.expected.wgsl b/test/builtins/gen/select/ed8a15.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/ed8a15.wgsl.expected.wgsl
rename to test/builtins/gen/select/ed8a15.wgsl.expected.wgsl
diff --git a/test/builtins/gen/select/fb7e53.wgsl b/test/builtins/gen/select/fb7e53.wgsl
new file mode 100644
index 0000000..de66cf2
--- /dev/null
+++ b/test/builtins/gen/select/fb7e53.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn select(vec<2, bool>, vec<2, bool>, bool) -> vec<2, bool>
+fn select_fb7e53() {
+  var res: vec2<bool> = select(vec2<bool>(), vec2<bool>(), bool());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  select_fb7e53();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  select_fb7e53();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  select_fb7e53();
+}
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl b/test/builtins/gen/select/fb7e53.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/select/fb7e53.wgsl.expected.glsl
rename to test/builtins/gen/select/fb7e53.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.hlsl b/test/builtins/gen/select/fb7e53.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/select/fb7e53.wgsl.expected.hlsl
rename to test/builtins/gen/select/fb7e53.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.msl b/test/builtins/gen/select/fb7e53.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/select/fb7e53.wgsl.expected.msl
rename to test/builtins/gen/select/fb7e53.wgsl.expected.msl
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.spvasm b/test/builtins/gen/select/fb7e53.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/select/fb7e53.wgsl.expected.spvasm
rename to test/builtins/gen/select/fb7e53.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl.expected.wgsl b/test/builtins/gen/select/fb7e53.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/select/fb7e53.wgsl.expected.wgsl
rename to test/builtins/gen/select/fb7e53.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sign/159665.wgsl b/test/builtins/gen/sign/159665.wgsl
new file mode 100644
index 0000000..adb28ab
--- /dev/null
+++ b/test/builtins/gen/sign/159665.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sign(vec<3, f32>) -> vec<3, f32>
+fn sign_159665() {
+  var res: vec3<f32> = sign(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sign_159665();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sign_159665();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sign_159665();
+}
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.glsl b/test/builtins/gen/sign/159665.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sign/159665.wgsl.expected.glsl
rename to test/builtins/gen/sign/159665.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.hlsl b/test/builtins/gen/sign/159665.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sign/159665.wgsl.expected.hlsl
rename to test/builtins/gen/sign/159665.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.msl b/test/builtins/gen/sign/159665.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sign/159665.wgsl.expected.msl
rename to test/builtins/gen/sign/159665.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.spvasm b/test/builtins/gen/sign/159665.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sign/159665.wgsl.expected.spvasm
rename to test/builtins/gen/sign/159665.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sign/159665.wgsl.expected.wgsl b/test/builtins/gen/sign/159665.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sign/159665.wgsl.expected.wgsl
rename to test/builtins/gen/sign/159665.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sign/b8f634.wgsl b/test/builtins/gen/sign/b8f634.wgsl
new file mode 100644
index 0000000..e308a0b
--- /dev/null
+++ b/test/builtins/gen/sign/b8f634.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sign(vec<4, f32>) -> vec<4, f32>
+fn sign_b8f634() {
+  var res: vec4<f32> = sign(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sign_b8f634();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sign_b8f634();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sign_b8f634();
+}
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl b/test/builtins/gen/sign/b8f634.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sign/b8f634.wgsl.expected.glsl
rename to test/builtins/gen/sign/b8f634.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.hlsl b/test/builtins/gen/sign/b8f634.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sign/b8f634.wgsl.expected.hlsl
rename to test/builtins/gen/sign/b8f634.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.msl b/test/builtins/gen/sign/b8f634.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sign/b8f634.wgsl.expected.msl
rename to test/builtins/gen/sign/b8f634.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.spvasm b/test/builtins/gen/sign/b8f634.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sign/b8f634.wgsl.expected.spvasm
rename to test/builtins/gen/sign/b8f634.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl.expected.wgsl b/test/builtins/gen/sign/b8f634.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sign/b8f634.wgsl.expected.wgsl
rename to test/builtins/gen/sign/b8f634.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sign/d065d8.wgsl b/test/builtins/gen/sign/d065d8.wgsl
new file mode 100644
index 0000000..4efd33f
--- /dev/null
+++ b/test/builtins/gen/sign/d065d8.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sign(vec<2, f32>) -> vec<2, f32>
+fn sign_d065d8() {
+  var res: vec2<f32> = sign(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sign_d065d8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sign_d065d8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sign_d065d8();
+}
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl b/test/builtins/gen/sign/d065d8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sign/d065d8.wgsl.expected.glsl
rename to test/builtins/gen/sign/d065d8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.hlsl b/test/builtins/gen/sign/d065d8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sign/d065d8.wgsl.expected.hlsl
rename to test/builtins/gen/sign/d065d8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.msl b/test/builtins/gen/sign/d065d8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sign/d065d8.wgsl.expected.msl
rename to test/builtins/gen/sign/d065d8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.spvasm b/test/builtins/gen/sign/d065d8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sign/d065d8.wgsl.expected.spvasm
rename to test/builtins/gen/sign/d065d8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl.expected.wgsl b/test/builtins/gen/sign/d065d8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sign/d065d8.wgsl.expected.wgsl
rename to test/builtins/gen/sign/d065d8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sign/dd790e.wgsl b/test/builtins/gen/sign/dd790e.wgsl
new file mode 100644
index 0000000..6a065f3
--- /dev/null
+++ b/test/builtins/gen/sign/dd790e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sign(f32) -> f32
+fn sign_dd790e() {
+  var res: f32 = sign(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sign_dd790e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sign_dd790e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sign_dd790e();
+}
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl b/test/builtins/gen/sign/dd790e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sign/dd790e.wgsl.expected.glsl
rename to test/builtins/gen/sign/dd790e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.hlsl b/test/builtins/gen/sign/dd790e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sign/dd790e.wgsl.expected.hlsl
rename to test/builtins/gen/sign/dd790e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.msl b/test/builtins/gen/sign/dd790e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sign/dd790e.wgsl.expected.msl
rename to test/builtins/gen/sign/dd790e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.spvasm b/test/builtins/gen/sign/dd790e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sign/dd790e.wgsl.expected.spvasm
rename to test/builtins/gen/sign/dd790e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl.expected.wgsl b/test/builtins/gen/sign/dd790e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sign/dd790e.wgsl.expected.wgsl
rename to test/builtins/gen/sign/dd790e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sin/01f241.wgsl b/test/builtins/gen/sin/01f241.wgsl
new file mode 100644
index 0000000..4d78c4a
--- /dev/null
+++ b/test/builtins/gen/sin/01f241.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sin(vec<3, f32>) -> vec<3, f32>
+fn sin_01f241() {
+  var res: vec3<f32> = sin(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sin_01f241();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sin_01f241();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sin_01f241();
+}
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.glsl b/test/builtins/gen/sin/01f241.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sin/01f241.wgsl.expected.glsl
rename to test/builtins/gen/sin/01f241.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.hlsl b/test/builtins/gen/sin/01f241.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sin/01f241.wgsl.expected.hlsl
rename to test/builtins/gen/sin/01f241.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.msl b/test/builtins/gen/sin/01f241.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sin/01f241.wgsl.expected.msl
rename to test/builtins/gen/sin/01f241.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.spvasm b/test/builtins/gen/sin/01f241.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sin/01f241.wgsl.expected.spvasm
rename to test/builtins/gen/sin/01f241.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sin/01f241.wgsl.expected.wgsl b/test/builtins/gen/sin/01f241.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sin/01f241.wgsl.expected.wgsl
rename to test/builtins/gen/sin/01f241.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sin/4e3979.wgsl b/test/builtins/gen/sin/4e3979.wgsl
new file mode 100644
index 0000000..4bfeed5
--- /dev/null
+++ b/test/builtins/gen/sin/4e3979.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sin(vec<4, f32>) -> vec<4, f32>
+fn sin_4e3979() {
+  var res: vec4<f32> = sin(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sin_4e3979();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sin_4e3979();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sin_4e3979();
+}
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl b/test/builtins/gen/sin/4e3979.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sin/4e3979.wgsl.expected.glsl
rename to test/builtins/gen/sin/4e3979.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.hlsl b/test/builtins/gen/sin/4e3979.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sin/4e3979.wgsl.expected.hlsl
rename to test/builtins/gen/sin/4e3979.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.msl b/test/builtins/gen/sin/4e3979.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sin/4e3979.wgsl.expected.msl
rename to test/builtins/gen/sin/4e3979.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.spvasm b/test/builtins/gen/sin/4e3979.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sin/4e3979.wgsl.expected.spvasm
rename to test/builtins/gen/sin/4e3979.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl.expected.wgsl b/test/builtins/gen/sin/4e3979.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sin/4e3979.wgsl.expected.wgsl
rename to test/builtins/gen/sin/4e3979.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sin/b78c91.wgsl b/test/builtins/gen/sin/b78c91.wgsl
new file mode 100644
index 0000000..83d02dd
--- /dev/null
+++ b/test/builtins/gen/sin/b78c91.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sin(f32) -> f32
+fn sin_b78c91() {
+  var res: f32 = sin(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sin_b78c91();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sin_b78c91();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sin_b78c91();
+}
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl b/test/builtins/gen/sin/b78c91.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sin/b78c91.wgsl.expected.glsl
rename to test/builtins/gen/sin/b78c91.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.hlsl b/test/builtins/gen/sin/b78c91.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sin/b78c91.wgsl.expected.hlsl
rename to test/builtins/gen/sin/b78c91.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.msl b/test/builtins/gen/sin/b78c91.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sin/b78c91.wgsl.expected.msl
rename to test/builtins/gen/sin/b78c91.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.spvasm b/test/builtins/gen/sin/b78c91.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sin/b78c91.wgsl.expected.spvasm
rename to test/builtins/gen/sin/b78c91.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl.expected.wgsl b/test/builtins/gen/sin/b78c91.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sin/b78c91.wgsl.expected.wgsl
rename to test/builtins/gen/sin/b78c91.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sin/fc8bc4.wgsl b/test/builtins/gen/sin/fc8bc4.wgsl
new file mode 100644
index 0000000..154c7d0
--- /dev/null
+++ b/test/builtins/gen/sin/fc8bc4.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sin(vec<2, f32>) -> vec<2, f32>
+fn sin_fc8bc4() {
+  var res: vec2<f32> = sin(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sin_fc8bc4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sin_fc8bc4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sin_fc8bc4();
+}
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl b/test/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sin/fc8bc4.wgsl.expected.glsl
rename to test/builtins/gen/sin/fc8bc4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.hlsl b/test/builtins/gen/sin/fc8bc4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sin/fc8bc4.wgsl.expected.hlsl
rename to test/builtins/gen/sin/fc8bc4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.msl b/test/builtins/gen/sin/fc8bc4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sin/fc8bc4.wgsl.expected.msl
rename to test/builtins/gen/sin/fc8bc4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.spvasm b/test/builtins/gen/sin/fc8bc4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sin/fc8bc4.wgsl.expected.spvasm
rename to test/builtins/gen/sin/fc8bc4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl.expected.wgsl b/test/builtins/gen/sin/fc8bc4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sin/fc8bc4.wgsl.expected.wgsl
rename to test/builtins/gen/sin/fc8bc4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sinh/445e33.wgsl b/test/builtins/gen/sinh/445e33.wgsl
new file mode 100644
index 0000000..21c0c8f
--- /dev/null
+++ b/test/builtins/gen/sinh/445e33.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sinh(vec<4, f32>) -> vec<4, f32>
+fn sinh_445e33() {
+  var res: vec4<f32> = sinh(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sinh_445e33();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sinh_445e33();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sinh_445e33();
+}
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl b/test/builtins/gen/sinh/445e33.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sinh/445e33.wgsl.expected.glsl
rename to test/builtins/gen/sinh/445e33.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.hlsl b/test/builtins/gen/sinh/445e33.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sinh/445e33.wgsl.expected.hlsl
rename to test/builtins/gen/sinh/445e33.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.msl b/test/builtins/gen/sinh/445e33.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sinh/445e33.wgsl.expected.msl
rename to test/builtins/gen/sinh/445e33.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.spvasm b/test/builtins/gen/sinh/445e33.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sinh/445e33.wgsl.expected.spvasm
rename to test/builtins/gen/sinh/445e33.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl.expected.wgsl b/test/builtins/gen/sinh/445e33.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sinh/445e33.wgsl.expected.wgsl
rename to test/builtins/gen/sinh/445e33.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sinh/7bb598.wgsl b/test/builtins/gen/sinh/7bb598.wgsl
new file mode 100644
index 0000000..b0dc762
--- /dev/null
+++ b/test/builtins/gen/sinh/7bb598.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sinh(f32) -> f32
+fn sinh_7bb598() {
+  var res: f32 = sinh(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sinh_7bb598();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sinh_7bb598();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sinh_7bb598();
+}
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl b/test/builtins/gen/sinh/7bb598.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sinh/7bb598.wgsl.expected.glsl
rename to test/builtins/gen/sinh/7bb598.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.hlsl b/test/builtins/gen/sinh/7bb598.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sinh/7bb598.wgsl.expected.hlsl
rename to test/builtins/gen/sinh/7bb598.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.msl b/test/builtins/gen/sinh/7bb598.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sinh/7bb598.wgsl.expected.msl
rename to test/builtins/gen/sinh/7bb598.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.spvasm b/test/builtins/gen/sinh/7bb598.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sinh/7bb598.wgsl.expected.spvasm
rename to test/builtins/gen/sinh/7bb598.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl.expected.wgsl b/test/builtins/gen/sinh/7bb598.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sinh/7bb598.wgsl.expected.wgsl
rename to test/builtins/gen/sinh/7bb598.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sinh/b9860e.wgsl b/test/builtins/gen/sinh/b9860e.wgsl
new file mode 100644
index 0000000..11bf85b
--- /dev/null
+++ b/test/builtins/gen/sinh/b9860e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sinh(vec<2, f32>) -> vec<2, f32>
+fn sinh_b9860e() {
+  var res: vec2<f32> = sinh(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sinh_b9860e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sinh_b9860e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sinh_b9860e();
+}
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl b/test/builtins/gen/sinh/b9860e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sinh/b9860e.wgsl.expected.glsl
rename to test/builtins/gen/sinh/b9860e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.hlsl b/test/builtins/gen/sinh/b9860e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sinh/b9860e.wgsl.expected.hlsl
rename to test/builtins/gen/sinh/b9860e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.msl b/test/builtins/gen/sinh/b9860e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sinh/b9860e.wgsl.expected.msl
rename to test/builtins/gen/sinh/b9860e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.spvasm b/test/builtins/gen/sinh/b9860e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sinh/b9860e.wgsl.expected.spvasm
rename to test/builtins/gen/sinh/b9860e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl.expected.wgsl b/test/builtins/gen/sinh/b9860e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sinh/b9860e.wgsl.expected.wgsl
rename to test/builtins/gen/sinh/b9860e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sinh/c9a5eb.wgsl b/test/builtins/gen/sinh/c9a5eb.wgsl
new file mode 100644
index 0000000..ada4792
--- /dev/null
+++ b/test/builtins/gen/sinh/c9a5eb.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sinh(vec<3, f32>) -> vec<3, f32>
+fn sinh_c9a5eb() {
+  var res: vec3<f32> = sinh(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sinh_c9a5eb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sinh_c9a5eb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sinh_c9a5eb();
+}
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.glsl
rename to test/builtins/gen/sinh/c9a5eb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.hlsl b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.hlsl
rename to test/builtins/gen/sinh/c9a5eb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.msl b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.msl
rename to test/builtins/gen/sinh/c9a5eb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.spvasm b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.spvasm
rename to test/builtins/gen/sinh/c9a5eb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.wgsl b/test/builtins/gen/sinh/c9a5eb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sinh/c9a5eb.wgsl.expected.wgsl
rename to test/builtins/gen/sinh/c9a5eb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/smoothStep/5f615b.wgsl b/test/builtins/gen/smoothStep/5f615b.wgsl
new file mode 100644
index 0000000..2a74908
--- /dev/null
+++ b/test/builtins/gen/smoothStep/5f615b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn smoothStep(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn smoothStep_5f615b() {
+  var res: vec4<f32> = smoothStep(vec4<f32>(), vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  smoothStep_5f615b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  smoothStep_5f615b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  smoothStep_5f615b();
+}
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.glsl
rename to test/builtins/gen/smoothStep/5f615b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.hlsl b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.hlsl
rename to test/builtins/gen/smoothStep/5f615b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.msl b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.msl
rename to test/builtins/gen/smoothStep/5f615b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.spvasm b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.spvasm
rename to test/builtins/gen/smoothStep/5f615b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.wgsl b/test/builtins/gen/smoothStep/5f615b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/5f615b.wgsl.expected.wgsl
rename to test/builtins/gen/smoothStep/5f615b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/smoothStep/658be3.wgsl b/test/builtins/gen/smoothStep/658be3.wgsl
new file mode 100644
index 0000000..65f4011
--- /dev/null
+++ b/test/builtins/gen/smoothStep/658be3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn smoothStep(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn smoothStep_658be3() {
+  var res: vec3<f32> = smoothStep(vec3<f32>(), vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  smoothStep_658be3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  smoothStep_658be3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  smoothStep_658be3();
+}
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl b/test/builtins/gen/smoothStep/658be3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/658be3.wgsl.expected.glsl
rename to test/builtins/gen/smoothStep/658be3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.hlsl b/test/builtins/gen/smoothStep/658be3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/658be3.wgsl.expected.hlsl
rename to test/builtins/gen/smoothStep/658be3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.msl b/test/builtins/gen/smoothStep/658be3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/658be3.wgsl.expected.msl
rename to test/builtins/gen/smoothStep/658be3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.spvasm b/test/builtins/gen/smoothStep/658be3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/smoothStep/658be3.wgsl.expected.spvasm
rename to test/builtins/gen/smoothStep/658be3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl.expected.wgsl b/test/builtins/gen/smoothStep/658be3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/658be3.wgsl.expected.wgsl
rename to test/builtins/gen/smoothStep/658be3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/smoothStep/c11eef.wgsl b/test/builtins/gen/smoothStep/c11eef.wgsl
new file mode 100644
index 0000000..3953e37
--- /dev/null
+++ b/test/builtins/gen/smoothStep/c11eef.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn smoothStep(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn smoothStep_c11eef() {
+  var res: vec2<f32> = smoothStep(vec2<f32>(), vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  smoothStep_c11eef();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  smoothStep_c11eef();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  smoothStep_c11eef();
+}
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.glsl
rename to test/builtins/gen/smoothStep/c11eef.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.hlsl b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.hlsl
rename to test/builtins/gen/smoothStep/c11eef.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.msl b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.msl
rename to test/builtins/gen/smoothStep/c11eef.wgsl.expected.msl
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.spvasm b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.spvasm
rename to test/builtins/gen/smoothStep/c11eef.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.wgsl b/test/builtins/gen/smoothStep/c11eef.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/c11eef.wgsl.expected.wgsl
rename to test/builtins/gen/smoothStep/c11eef.wgsl.expected.wgsl
diff --git a/test/builtins/gen/smoothStep/cb0bfb.wgsl b/test/builtins/gen/smoothStep/cb0bfb.wgsl
new file mode 100644
index 0000000..ff81a88
--- /dev/null
+++ b/test/builtins/gen/smoothStep/cb0bfb.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn smoothStep(f32, f32, f32) -> f32
+fn smoothStep_cb0bfb() {
+  var res: f32 = smoothStep(1.0, 1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  smoothStep_cb0bfb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  smoothStep_cb0bfb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  smoothStep_cb0bfb();
+}
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.glsl
rename to test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.hlsl b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.hlsl
rename to test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.msl b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.msl
rename to test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.spvasm b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.spvasm
rename to test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.wgsl b/test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/smoothStep/cb0bfb.wgsl.expected.wgsl
rename to test/builtins/gen/smoothStep/cb0bfb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sqrt/20c74e.wgsl b/test/builtins/gen/sqrt/20c74e.wgsl
new file mode 100644
index 0000000..b4ce20f
--- /dev/null
+++ b/test/builtins/gen/sqrt/20c74e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sqrt(f32) -> f32
+fn sqrt_20c74e() {
+  var res: f32 = sqrt(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sqrt_20c74e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sqrt_20c74e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sqrt_20c74e();
+}
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl b/test/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/20c74e.wgsl.expected.glsl
rename to test/builtins/gen/sqrt/20c74e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.hlsl b/test/builtins/gen/sqrt/20c74e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/20c74e.wgsl.expected.hlsl
rename to test/builtins/gen/sqrt/20c74e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.msl b/test/builtins/gen/sqrt/20c74e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sqrt/20c74e.wgsl.expected.msl
rename to test/builtins/gen/sqrt/20c74e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.spvasm b/test/builtins/gen/sqrt/20c74e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sqrt/20c74e.wgsl.expected.spvasm
rename to test/builtins/gen/sqrt/20c74e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl.expected.wgsl b/test/builtins/gen/sqrt/20c74e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/20c74e.wgsl.expected.wgsl
rename to test/builtins/gen/sqrt/20c74e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sqrt/8c7024.wgsl b/test/builtins/gen/sqrt/8c7024.wgsl
new file mode 100644
index 0000000..96bea10
--- /dev/null
+++ b/test/builtins/gen/sqrt/8c7024.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sqrt(vec<2, f32>) -> vec<2, f32>
+fn sqrt_8c7024() {
+  var res: vec2<f32> = sqrt(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sqrt_8c7024();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sqrt_8c7024();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sqrt_8c7024();
+}
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl b/test/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/8c7024.wgsl.expected.glsl
rename to test/builtins/gen/sqrt/8c7024.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.hlsl b/test/builtins/gen/sqrt/8c7024.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/8c7024.wgsl.expected.hlsl
rename to test/builtins/gen/sqrt/8c7024.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.msl b/test/builtins/gen/sqrt/8c7024.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sqrt/8c7024.wgsl.expected.msl
rename to test/builtins/gen/sqrt/8c7024.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.spvasm b/test/builtins/gen/sqrt/8c7024.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sqrt/8c7024.wgsl.expected.spvasm
rename to test/builtins/gen/sqrt/8c7024.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl.expected.wgsl b/test/builtins/gen/sqrt/8c7024.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/8c7024.wgsl.expected.wgsl
rename to test/builtins/gen/sqrt/8c7024.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sqrt/aa0d7a.wgsl b/test/builtins/gen/sqrt/aa0d7a.wgsl
new file mode 100644
index 0000000..4848c54
--- /dev/null
+++ b/test/builtins/gen/sqrt/aa0d7a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sqrt(vec<4, f32>) -> vec<4, f32>
+fn sqrt_aa0d7a() {
+  var res: vec4<f32> = sqrt(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sqrt_aa0d7a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sqrt_aa0d7a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sqrt_aa0d7a();
+}
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.glsl
rename to test/builtins/gen/sqrt/aa0d7a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.hlsl b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.hlsl
rename to test/builtins/gen/sqrt/aa0d7a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.msl b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.msl
rename to test/builtins/gen/sqrt/aa0d7a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.spvasm b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.spvasm
rename to test/builtins/gen/sqrt/aa0d7a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.wgsl b/test/builtins/gen/sqrt/aa0d7a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/aa0d7a.wgsl.expected.wgsl
rename to test/builtins/gen/sqrt/aa0d7a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/sqrt/f8c59a.wgsl b/test/builtins/gen/sqrt/f8c59a.wgsl
new file mode 100644
index 0000000..b4aeefd
--- /dev/null
+++ b/test/builtins/gen/sqrt/f8c59a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn sqrt(vec<3, f32>) -> vec<3, f32>
+fn sqrt_f8c59a() {
+  var res: vec3<f32> = sqrt(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  sqrt_f8c59a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  sqrt_f8c59a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  sqrt_f8c59a();
+}
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.glsl
rename to test/builtins/gen/sqrt/f8c59a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.hlsl b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.hlsl
rename to test/builtins/gen/sqrt/f8c59a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.msl b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.msl
rename to test/builtins/gen/sqrt/f8c59a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.spvasm b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.spvasm
rename to test/builtins/gen/sqrt/f8c59a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.wgsl b/test/builtins/gen/sqrt/f8c59a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/sqrt/f8c59a.wgsl.expected.wgsl
rename to test/builtins/gen/sqrt/f8c59a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/step/0b073b.wgsl b/test/builtins/gen/step/0b073b.wgsl
new file mode 100644
index 0000000..f1006d6
--- /dev/null
+++ b/test/builtins/gen/step/0b073b.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn step(f32, f32) -> f32
+fn step_0b073b() {
+  var res: f32 = step(1.0, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  step_0b073b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  step_0b073b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  step_0b073b();
+}
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.glsl b/test/builtins/gen/step/0b073b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/step/0b073b.wgsl.expected.glsl
rename to test/builtins/gen/step/0b073b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.hlsl b/test/builtins/gen/step/0b073b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/step/0b073b.wgsl.expected.hlsl
rename to test/builtins/gen/step/0b073b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.msl b/test/builtins/gen/step/0b073b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/step/0b073b.wgsl.expected.msl
rename to test/builtins/gen/step/0b073b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.spvasm b/test/builtins/gen/step/0b073b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/step/0b073b.wgsl.expected.spvasm
rename to test/builtins/gen/step/0b073b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/step/0b073b.wgsl.expected.wgsl b/test/builtins/gen/step/0b073b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/step/0b073b.wgsl.expected.wgsl
rename to test/builtins/gen/step/0b073b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/step/19accd.wgsl b/test/builtins/gen/step/19accd.wgsl
new file mode 100644
index 0000000..5e6276d
--- /dev/null
+++ b/test/builtins/gen/step/19accd.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn step(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
+fn step_19accd() {
+  var res: vec2<f32> = step(vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  step_19accd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  step_19accd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  step_19accd();
+}
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.glsl b/test/builtins/gen/step/19accd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/step/19accd.wgsl.expected.glsl
rename to test/builtins/gen/step/19accd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.hlsl b/test/builtins/gen/step/19accd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/step/19accd.wgsl.expected.hlsl
rename to test/builtins/gen/step/19accd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.msl b/test/builtins/gen/step/19accd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/step/19accd.wgsl.expected.msl
rename to test/builtins/gen/step/19accd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.spvasm b/test/builtins/gen/step/19accd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/step/19accd.wgsl.expected.spvasm
rename to test/builtins/gen/step/19accd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/step/19accd.wgsl.expected.wgsl b/test/builtins/gen/step/19accd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/step/19accd.wgsl.expected.wgsl
rename to test/builtins/gen/step/19accd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/step/334303.wgsl b/test/builtins/gen/step/334303.wgsl
new file mode 100644
index 0000000..3b53ace
--- /dev/null
+++ b/test/builtins/gen/step/334303.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn step(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
+fn step_334303() {
+  var res: vec3<f32> = step(vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  step_334303();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  step_334303();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  step_334303();
+}
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.glsl b/test/builtins/gen/step/334303.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/step/334303.wgsl.expected.glsl
rename to test/builtins/gen/step/334303.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.hlsl b/test/builtins/gen/step/334303.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/step/334303.wgsl.expected.hlsl
rename to test/builtins/gen/step/334303.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.msl b/test/builtins/gen/step/334303.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/step/334303.wgsl.expected.msl
rename to test/builtins/gen/step/334303.wgsl.expected.msl
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.spvasm b/test/builtins/gen/step/334303.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/step/334303.wgsl.expected.spvasm
rename to test/builtins/gen/step/334303.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/step/334303.wgsl.expected.wgsl b/test/builtins/gen/step/334303.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/step/334303.wgsl.expected.wgsl
rename to test/builtins/gen/step/334303.wgsl.expected.wgsl
diff --git a/test/builtins/gen/step/e2b337.wgsl b/test/builtins/gen/step/e2b337.wgsl
new file mode 100644
index 0000000..bf13f3c
--- /dev/null
+++ b/test/builtins/gen/step/e2b337.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn step(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
+fn step_e2b337() {
+  var res: vec4<f32> = step(vec4<f32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  step_e2b337();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  step_e2b337();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  step_e2b337();
+}
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.glsl b/test/builtins/gen/step/e2b337.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/step/e2b337.wgsl.expected.glsl
rename to test/builtins/gen/step/e2b337.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.hlsl b/test/builtins/gen/step/e2b337.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/step/e2b337.wgsl.expected.hlsl
rename to test/builtins/gen/step/e2b337.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.msl b/test/builtins/gen/step/e2b337.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/step/e2b337.wgsl.expected.msl
rename to test/builtins/gen/step/e2b337.wgsl.expected.msl
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.spvasm b/test/builtins/gen/step/e2b337.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/step/e2b337.wgsl.expected.spvasm
rename to test/builtins/gen/step/e2b337.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/step/e2b337.wgsl.expected.wgsl b/test/builtins/gen/step/e2b337.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/step/e2b337.wgsl.expected.wgsl
rename to test/builtins/gen/step/e2b337.wgsl.expected.wgsl
diff --git a/test/builtins/gen/storageBarrier/d87211.wgsl b/test/builtins/gen/storageBarrier/d87211.wgsl
new file mode 100644
index 0000000..2620443
--- /dev/null
+++ b/test/builtins/gen/storageBarrier/d87211.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn storageBarrier()
+fn storageBarrier_d87211() {
+  storageBarrier();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  storageBarrier_d87211();
+}
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl b/test/builtins/gen/storageBarrier/d87211.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.glsl
rename to test/builtins/gen/storageBarrier/d87211.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.hlsl b/test/builtins/gen/storageBarrier/d87211.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.hlsl
rename to test/builtins/gen/storageBarrier/d87211.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.msl b/test/builtins/gen/storageBarrier/d87211.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.msl
rename to test/builtins/gen/storageBarrier/d87211.wgsl.expected.msl
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.spvasm b/test/builtins/gen/storageBarrier/d87211.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.spvasm
rename to test/builtins/gen/storageBarrier/d87211.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.wgsl b/test/builtins/gen/storageBarrier/d87211.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/storageBarrier/d87211.wgsl.expected.wgsl
rename to test/builtins/gen/storageBarrier/d87211.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tan/244e2a.wgsl b/test/builtins/gen/tan/244e2a.wgsl
new file mode 100644
index 0000000..24eed7b
--- /dev/null
+++ b/test/builtins/gen/tan/244e2a.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tan(vec<4, f32>) -> vec<4, f32>
+fn tan_244e2a() {
+  var res: vec4<f32> = tan(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tan_244e2a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tan_244e2a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tan_244e2a();
+}
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl b/test/builtins/gen/tan/244e2a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tan/244e2a.wgsl.expected.glsl
rename to test/builtins/gen/tan/244e2a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.hlsl b/test/builtins/gen/tan/244e2a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tan/244e2a.wgsl.expected.hlsl
rename to test/builtins/gen/tan/244e2a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.msl b/test/builtins/gen/tan/244e2a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tan/244e2a.wgsl.expected.msl
rename to test/builtins/gen/tan/244e2a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.spvasm b/test/builtins/gen/tan/244e2a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tan/244e2a.wgsl.expected.spvasm
rename to test/builtins/gen/tan/244e2a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl.expected.wgsl b/test/builtins/gen/tan/244e2a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tan/244e2a.wgsl.expected.wgsl
rename to test/builtins/gen/tan/244e2a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tan/2f030e.wgsl b/test/builtins/gen/tan/2f030e.wgsl
new file mode 100644
index 0000000..cb7ecc9
--- /dev/null
+++ b/test/builtins/gen/tan/2f030e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tan(f32) -> f32
+fn tan_2f030e() {
+  var res: f32 = tan(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tan_2f030e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tan_2f030e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tan_2f030e();
+}
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl b/test/builtins/gen/tan/2f030e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tan/2f030e.wgsl.expected.glsl
rename to test/builtins/gen/tan/2f030e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.hlsl b/test/builtins/gen/tan/2f030e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tan/2f030e.wgsl.expected.hlsl
rename to test/builtins/gen/tan/2f030e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.msl b/test/builtins/gen/tan/2f030e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tan/2f030e.wgsl.expected.msl
rename to test/builtins/gen/tan/2f030e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.spvasm b/test/builtins/gen/tan/2f030e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tan/2f030e.wgsl.expected.spvasm
rename to test/builtins/gen/tan/2f030e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl.expected.wgsl b/test/builtins/gen/tan/2f030e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tan/2f030e.wgsl.expected.wgsl
rename to test/builtins/gen/tan/2f030e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tan/7ea104.wgsl b/test/builtins/gen/tan/7ea104.wgsl
new file mode 100644
index 0000000..caf5f99
--- /dev/null
+++ b/test/builtins/gen/tan/7ea104.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tan(vec<3, f32>) -> vec<3, f32>
+fn tan_7ea104() {
+  var res: vec3<f32> = tan(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tan_7ea104();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tan_7ea104();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tan_7ea104();
+}
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl b/test/builtins/gen/tan/7ea104.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tan/7ea104.wgsl.expected.glsl
rename to test/builtins/gen/tan/7ea104.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.hlsl b/test/builtins/gen/tan/7ea104.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tan/7ea104.wgsl.expected.hlsl
rename to test/builtins/gen/tan/7ea104.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.msl b/test/builtins/gen/tan/7ea104.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tan/7ea104.wgsl.expected.msl
rename to test/builtins/gen/tan/7ea104.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.spvasm b/test/builtins/gen/tan/7ea104.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tan/7ea104.wgsl.expected.spvasm
rename to test/builtins/gen/tan/7ea104.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl.expected.wgsl b/test/builtins/gen/tan/7ea104.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tan/7ea104.wgsl.expected.wgsl
rename to test/builtins/gen/tan/7ea104.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tan/8ce3e9.wgsl b/test/builtins/gen/tan/8ce3e9.wgsl
new file mode 100644
index 0000000..d4a3663
--- /dev/null
+++ b/test/builtins/gen/tan/8ce3e9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tan(vec<2, f32>) -> vec<2, f32>
+fn tan_8ce3e9() {
+  var res: vec2<f32> = tan(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tan_8ce3e9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tan_8ce3e9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tan_8ce3e9();
+}
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl b/test/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tan/8ce3e9.wgsl.expected.glsl
rename to test/builtins/gen/tan/8ce3e9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.hlsl b/test/builtins/gen/tan/8ce3e9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tan/8ce3e9.wgsl.expected.hlsl
rename to test/builtins/gen/tan/8ce3e9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.msl b/test/builtins/gen/tan/8ce3e9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tan/8ce3e9.wgsl.expected.msl
rename to test/builtins/gen/tan/8ce3e9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.spvasm b/test/builtins/gen/tan/8ce3e9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tan/8ce3e9.wgsl.expected.spvasm
rename to test/builtins/gen/tan/8ce3e9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl.expected.wgsl b/test/builtins/gen/tan/8ce3e9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tan/8ce3e9.wgsl.expected.wgsl
rename to test/builtins/gen/tan/8ce3e9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tanh/5663c5.wgsl b/test/builtins/gen/tanh/5663c5.wgsl
new file mode 100644
index 0000000..f752060
--- /dev/null
+++ b/test/builtins/gen/tanh/5663c5.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tanh(vec<4, f32>) -> vec<4, f32>
+fn tanh_5663c5() {
+  var res: vec4<f32> = tanh(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tanh_5663c5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tanh_5663c5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tanh_5663c5();
+}
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl b/test/builtins/gen/tanh/5663c5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tanh/5663c5.wgsl.expected.glsl
rename to test/builtins/gen/tanh/5663c5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.hlsl b/test/builtins/gen/tanh/5663c5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tanh/5663c5.wgsl.expected.hlsl
rename to test/builtins/gen/tanh/5663c5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.msl b/test/builtins/gen/tanh/5663c5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tanh/5663c5.wgsl.expected.msl
rename to test/builtins/gen/tanh/5663c5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.spvasm b/test/builtins/gen/tanh/5663c5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tanh/5663c5.wgsl.expected.spvasm
rename to test/builtins/gen/tanh/5663c5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl.expected.wgsl b/test/builtins/gen/tanh/5663c5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tanh/5663c5.wgsl.expected.wgsl
rename to test/builtins/gen/tanh/5663c5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tanh/5724b3.wgsl b/test/builtins/gen/tanh/5724b3.wgsl
new file mode 100644
index 0000000..95f5807
--- /dev/null
+++ b/test/builtins/gen/tanh/5724b3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tanh(vec<2, f32>) -> vec<2, f32>
+fn tanh_5724b3() {
+  var res: vec2<f32> = tanh(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tanh_5724b3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tanh_5724b3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tanh_5724b3();
+}
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl b/test/builtins/gen/tanh/5724b3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tanh/5724b3.wgsl.expected.glsl
rename to test/builtins/gen/tanh/5724b3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.hlsl b/test/builtins/gen/tanh/5724b3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tanh/5724b3.wgsl.expected.hlsl
rename to test/builtins/gen/tanh/5724b3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.msl b/test/builtins/gen/tanh/5724b3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tanh/5724b3.wgsl.expected.msl
rename to test/builtins/gen/tanh/5724b3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.spvasm b/test/builtins/gen/tanh/5724b3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tanh/5724b3.wgsl.expected.spvasm
rename to test/builtins/gen/tanh/5724b3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl.expected.wgsl b/test/builtins/gen/tanh/5724b3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tanh/5724b3.wgsl.expected.wgsl
rename to test/builtins/gen/tanh/5724b3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tanh/9f9fb9.wgsl b/test/builtins/gen/tanh/9f9fb9.wgsl
new file mode 100644
index 0000000..d8530dc
--- /dev/null
+++ b/test/builtins/gen/tanh/9f9fb9.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tanh(vec<3, f32>) -> vec<3, f32>
+fn tanh_9f9fb9() {
+  var res: vec3<f32> = tanh(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tanh_9f9fb9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tanh_9f9fb9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tanh_9f9fb9();
+}
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.glsl
rename to test/builtins/gen/tanh/9f9fb9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.hlsl b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.hlsl
rename to test/builtins/gen/tanh/9f9fb9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.msl b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.msl
rename to test/builtins/gen/tanh/9f9fb9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.spvasm b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.spvasm
rename to test/builtins/gen/tanh/9f9fb9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.wgsl b/test/builtins/gen/tanh/9f9fb9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tanh/9f9fb9.wgsl.expected.wgsl
rename to test/builtins/gen/tanh/9f9fb9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/tanh/c15fdb.wgsl b/test/builtins/gen/tanh/c15fdb.wgsl
new file mode 100644
index 0000000..e9b0c19
--- /dev/null
+++ b/test/builtins/gen/tanh/c15fdb.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn tanh(f32) -> f32
+fn tanh_c15fdb() {
+  var res: f32 = tanh(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  tanh_c15fdb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  tanh_c15fdb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  tanh_c15fdb();
+}
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl b/test/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/tanh/c15fdb.wgsl.expected.glsl
rename to test/builtins/gen/tanh/c15fdb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.hlsl b/test/builtins/gen/tanh/c15fdb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/tanh/c15fdb.wgsl.expected.hlsl
rename to test/builtins/gen/tanh/c15fdb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.msl b/test/builtins/gen/tanh/c15fdb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/tanh/c15fdb.wgsl.expected.msl
rename to test/builtins/gen/tanh/c15fdb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.spvasm b/test/builtins/gen/tanh/c15fdb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/tanh/c15fdb.wgsl.expected.spvasm
rename to test/builtins/gen/tanh/c15fdb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl.expected.wgsl b/test/builtins/gen/tanh/c15fdb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/tanh/c15fdb.wgsl.expected.wgsl
rename to test/builtins/gen/tanh/c15fdb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/002b2a.wgsl b/test/builtins/gen/textureDimensions/002b2a.wgsl
new file mode 100644
index 0000000..abdf125
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/002b2a.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<f32>;
+
+// fn textureDimensions(texture: texture_1d<f32>) -> i32
+fn textureDimensions_002b2a() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_002b2a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_002b2a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_002b2a();
+}
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/002b2a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/002b2a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.msl b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/002b2a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/002b2a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/002b2a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/002b2a.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/002b2a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/012b82.wgsl b/test/builtins/gen/textureDimensions/012b82.wgsl
new file mode 100644
index 0000000..92bdad0
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/012b82.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<r32sint, write>) -> vec2<i32>
+fn textureDimensions_012b82() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_012b82();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_012b82();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_012b82();
+}
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/012b82.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/012b82.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.msl b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/012b82.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/012b82.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/012b82.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/012b82.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/012b82.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/08753d.wgsl b/test/builtins/gen/textureDimensions/08753d.wgsl
new file mode 100644
index 0000000..08e10f1
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/08753d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba16sint, write>) -> i32
+fn textureDimensions_08753d() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_08753d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_08753d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_08753d();
+}
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/08753d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/08753d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/08753d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/08753d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/08753d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/08753d.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/08753d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/0c4772.wgsl b/test/builtins/gen/textureDimensions/0c4772.wgsl
new file mode 100644
index 0000000..8e2fdc5
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/0c4772.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba16float, write>) -> vec3<i32>
+fn textureDimensions_0c4772() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_0c4772();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_0c4772();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_0c4772();
+}
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/0c4772.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/0c4772.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/0c4772.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/0c4772.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/0c4772.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0c4772.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/0c4772.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/0cce40.wgsl b/test/builtins/gen/textureDimensions/0cce40.wgsl
new file mode 100644
index 0000000..f3718fc
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/0cce40.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<r32sint, write>) -> i32
+fn textureDimensions_0cce40() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_0cce40();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_0cce40();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_0cce40();
+}
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/0cce40.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/0cce40.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/0cce40.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/0cce40.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/0cce40.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cce40.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/0cce40.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/0cf2ff.wgsl b/test/builtins/gen/textureDimensions/0cf2ff.wgsl
new file mode 100644
index 0000000..2cd31ca
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/0cf2ff.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba16uint, write>) -> vec2<i32>
+fn textureDimensions_0cf2ff() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_0cf2ff();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_0cf2ff();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_0cf2ff();
+}
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0cf2ff.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/0cf2ff.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/0d8b7e.wgsl b/test/builtins/gen/textureDimensions/0d8b7e.wgsl
new file mode 100644
index 0000000..c287d5c
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/0d8b7e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<r32uint, write>) -> vec2<i32>
+fn textureDimensions_0d8b7e() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_0d8b7e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_0d8b7e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_0d8b7e();
+}
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0d8b7e.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/0d8b7e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/0e32ee.wgsl b/test/builtins/gen/textureDimensions/0e32ee.wgsl
new file mode 100644
index 0000000..b0bd534
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/0e32ee.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba16uint, write>) -> vec3<i32>
+fn textureDimensions_0e32ee() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_0e32ee();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_0e32ee();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_0e32ee();
+}
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0e32ee.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/0e32ee.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/0f3c50.wgsl b/test/builtins/gen/textureDimensions/0f3c50.wgsl
new file mode 100644
index 0000000..c5c653b
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/0f3c50.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
+
+// fn textureDimensions(texture: texture_2d_array<i32>) -> vec2<i32>
+fn textureDimensions_0f3c50() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_0f3c50();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_0f3c50();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_0f3c50();
+}
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.msl b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/0f3c50.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/0f3c50.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/1191a5.wgsl b/test/builtins/gen/textureDimensions/1191a5.wgsl
new file mode 100644
index 0000000..8b27fb3
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/1191a5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<u32>;
+
+// fn textureDimensions(texture: texture_2d<u32>) -> vec2<i32>
+fn textureDimensions_1191a5() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_1191a5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_1191a5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_1191a5();
+}
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/1191a5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/1191a5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/1191a5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/1191a5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/1191a5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1191a5.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/1191a5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/12c9bb.wgsl b/test/builtins/gen/textureDimensions/12c9bb.wgsl
new file mode 100644
index 0000000..78ced16
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/12c9bb.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+
+// fn textureDimensions(texture: texture_depth_2d, level: i32) -> vec2<i32>
+fn textureDimensions_12c9bb() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_12c9bb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_12c9bb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_12c9bb();
+}
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.msl b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/12c9bb.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/12c9bb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/147998.wgsl b/test/builtins/gen/textureDimensions/147998.wgsl
new file mode 100644
index 0000000..8b386d9
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/147998.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rg32float, write>) -> vec2<i32>
+fn textureDimensions_147998() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_147998();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_147998();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_147998();
+}
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/147998.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/147998.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/147998.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/147998.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/147998.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/147998.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.msl b/test/builtins/gen/textureDimensions/147998.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/147998.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/147998.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/147998.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/147998.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/147998.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/147998.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/147998.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/147998.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/16036c.wgsl b/test/builtins/gen/textureDimensions/16036c.wgsl
new file mode 100644
index 0000000..44057b8
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/16036c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, write>) -> vec2<i32>
+fn textureDimensions_16036c() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_16036c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_16036c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_16036c();
+}
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/16036c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/16036c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/16036c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/16036c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/16036c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/16036c.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/16036c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/1b71f0.wgsl b/test/builtins/gen/textureDimensions/1b71f0.wgsl
new file mode 100644
index 0000000..f7a1e04
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/1b71f0.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba16sint, write>) -> vec3<i32>
+fn textureDimensions_1b71f0() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_1b71f0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_1b71f0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_1b71f0();
+}
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1b71f0.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/1b71f0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/1d6c26.wgsl b/test/builtins/gen/textureDimensions/1d6c26.wgsl
new file mode 100644
index 0000000..592b9ea
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/1d6c26.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, write>) -> vec2<i32>
+fn textureDimensions_1d6c26() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_1d6c26();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_1d6c26();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_1d6c26();
+}
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1d6c26.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/1d6c26.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/1e9e39.wgsl b/test/builtins/gen/textureDimensions/1e9e39.wgsl
new file mode 100644
index 0000000..e848f69
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/1e9e39.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba16float, write>) -> i32
+fn textureDimensions_1e9e39() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_1e9e39();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_1e9e39();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_1e9e39();
+}
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1e9e39.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/1e9e39.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/1f20c5.wgsl b/test/builtins/gen/textureDimensions/1f20c5.wgsl
new file mode 100644
index 0000000..57dc1ee
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/1f20c5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
+
+// fn textureDimensions(texture: texture_2d_array<u32>) -> vec2<i32>
+fn textureDimensions_1f20c5() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_1f20c5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_1f20c5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_1f20c5();
+}
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.msl b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/1f20c5.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/1f20c5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/214dd4.wgsl b/test/builtins/gen/textureDimensions/214dd4.wgsl
new file mode 100644
index 0000000..ac2815d
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/214dd4.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba8sint, write>) -> vec3<i32>
+fn textureDimensions_214dd4() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_214dd4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_214dd4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_214dd4();
+}
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/214dd4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/214dd4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/214dd4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/214dd4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/214dd4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/214dd4.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/214dd4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/221f22.wgsl b/test/builtins/gen/textureDimensions/221f22.wgsl
new file mode 100644
index 0000000..14d0237
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/221f22.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
+
+// fn textureDimensions(texture: texture_cube_array<i32>, level: i32) -> vec2<i32>
+fn textureDimensions_221f22() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_221f22();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_221f22();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_221f22();
+}
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/221f22.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/221f22.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.msl b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/221f22.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/221f22.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/221f22.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/221f22.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/221f22.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/267788.wgsl b/test/builtins/gen/textureDimensions/267788.wgsl
new file mode 100644
index 0000000..373e44e
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/267788.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
+
+// fn textureDimensions(texture: texture_2d_array<u32>, level: i32) -> vec2<i32>
+fn textureDimensions_267788() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_267788();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_267788();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_267788();
+}
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/267788.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/267788.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/267788.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/267788.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/267788.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.msl b/test/builtins/gen/textureDimensions/267788.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/267788.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/267788.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/267788.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/267788.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/267788.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/267788.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/267788.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/267788.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/26bdfa.wgsl b/test/builtins/gen/textureDimensions/26bdfa.wgsl
new file mode 100644
index 0000000..7921095
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/26bdfa.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+
+// fn textureDimensions(texture: texture_3d<f32>, level: i32) -> vec3<i32>
+fn textureDimensions_26bdfa() {
+  var res: vec3<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_26bdfa();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_26bdfa();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_26bdfa();
+}
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.msl b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26bdfa.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/26bdfa.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/26ef6c.wgsl b/test/builtins/gen/textureDimensions/26ef6c.wgsl
new file mode 100644
index 0000000..a09c30b
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/26ef6c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, write>) -> vec2<i32>
+fn textureDimensions_26ef6c() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_26ef6c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_26ef6c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_26ef6c();
+}
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/26ef6c.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/26ef6c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/2ad087.wgsl b/test/builtins/gen/textureDimensions/2ad087.wgsl
new file mode 100644
index 0000000..fe036cd
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/2ad087.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba16sint, write>) -> vec2<i32>
+fn textureDimensions_2ad087() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_2ad087();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_2ad087();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_2ad087();
+}
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/2ad087.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/2ad087.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/2ad087.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/2ad087.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/2ad087.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2ad087.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/2ad087.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/2efa05.wgsl b/test/builtins/gen/textureDimensions/2efa05.wgsl
new file mode 100644
index 0000000..ad39eb2
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/2efa05.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<u32>;
+
+// fn textureDimensions(texture: texture_3d<u32>, level: i32) -> vec3<i32>
+fn textureDimensions_2efa05() {
+  var res: vec3<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_2efa05();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_2efa05();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_2efa05();
+}
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/2efa05.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/2efa05.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/2efa05.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/2efa05.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/2efa05.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2efa05.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/2efa05.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/2f289f.wgsl b/test/builtins/gen/textureDimensions/2f289f.wgsl
new file mode 100644
index 0000000..b7bd4c9
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/2f289f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<r32sint, write>) -> vec3<i32>
+fn textureDimensions_2f289f() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_2f289f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_2f289f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_2f289f();
+}
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/2f289f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/2f289f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/2f289f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/2f289f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/2f289f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2f289f.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/2f289f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/2fe1cc.wgsl b/test/builtins/gen/textureDimensions/2fe1cc.wgsl
new file mode 100644
index 0000000..b069814
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/2fe1cc.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+
+// fn textureDimensions(texture: texture_2d<f32>, level: i32) -> vec2<i32>
+fn textureDimensions_2fe1cc() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_2fe1cc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_2fe1cc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_2fe1cc();
+}
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.msl b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/2fe1cc.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/2fe1cc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/318ecc.wgsl b/test/builtins/gen/textureDimensions/318ecc.wgsl
new file mode 100644
index 0000000..94f6e05
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/318ecc.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba16uint, write>) -> i32
+fn textureDimensions_318ecc() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_318ecc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_318ecc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_318ecc();
+}
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/318ecc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/318ecc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.msl b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/318ecc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/318ecc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/318ecc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/318ecc.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/318ecc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/340d06.wgsl b/test/builtins/gen/textureDimensions/340d06.wgsl
new file mode 100644
index 0000000..96fb75c
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/340d06.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<r32uint, write>) -> vec3<i32>
+fn textureDimensions_340d06() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_340d06();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_340d06();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_340d06();
+}
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/340d06.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/340d06.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.msl b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/340d06.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/340d06.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/340d06.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/340d06.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/340d06.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/398e30.wgsl b/test/builtins/gen/textureDimensions/398e30.wgsl
new file mode 100644
index 0000000..578d684
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/398e30.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, write>) -> vec2<i32>
+fn textureDimensions_398e30() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_398e30();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_398e30();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_398e30();
+}
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/398e30.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/398e30.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.msl b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/398e30.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/398e30.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/398e30.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/398e30.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/398e30.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/3a94ea.wgsl b/test/builtins/gen/textureDimensions/3a94ea.wgsl
new file mode 100644
index 0000000..a55d872
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/3a94ea.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rg32uint, write>) -> vec2<i32>
+fn textureDimensions_3a94ea() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_3a94ea();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_3a94ea();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_3a94ea();
+}
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.msl b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3a94ea.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/3a94ea.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/3aca08.wgsl b/test/builtins/gen/textureDimensions/3aca08.wgsl
new file mode 100644
index 0000000..015a10d
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/3aca08.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba32float, write>) -> i32
+fn textureDimensions_3aca08() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_3aca08();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_3aca08();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_3aca08();
+}
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/3aca08.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/3aca08.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.msl b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/3aca08.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/3aca08.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/3aca08.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3aca08.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/3aca08.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/3c5ad8.wgsl b/test/builtins/gen/textureDimensions/3c5ad8.wgsl
new file mode 100644
index 0000000..4c83496
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/3c5ad8.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba8sint, write>) -> vec2<i32>
+fn textureDimensions_3c5ad8() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_3c5ad8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_3c5ad8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_3c5ad8();
+}
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.msl b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/3c5ad8.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/3c5ad8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/4152a6.wgsl b/test/builtins/gen/textureDimensions/4152a6.wgsl
new file mode 100644
index 0000000..cdb0684
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/4152a6.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
+
+// fn textureDimensions(texture: texture_cube_array<u32>) -> vec2<i32>
+fn textureDimensions_4152a6() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_4152a6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_4152a6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_4152a6();
+}
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/4152a6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/4152a6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/4152a6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/4152a6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/4152a6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4152a6.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/4152a6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/423f99.wgsl b/test/builtins/gen/textureDimensions/423f99.wgsl
new file mode 100644
index 0000000..b2534a3
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/423f99.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<i32>;
+
+// fn textureDimensions(texture: texture_1d<i32>) -> i32
+fn textureDimensions_423f99() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_423f99();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_423f99();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_423f99();
+}
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/423f99.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/423f99.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.msl b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/423f99.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/423f99.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/423f99.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/423f99.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/423f99.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/4267ee.wgsl b/test/builtins/gen/textureDimensions/4267ee.wgsl
new file mode 100644
index 0000000..0039183
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/4267ee.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba32float, write>) -> vec2<i32>
+fn textureDimensions_4267ee() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_4267ee();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_4267ee();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_4267ee();
+}
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/4267ee.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/4267ee.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.msl b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/4267ee.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/4267ee.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/4267ee.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4267ee.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/4267ee.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/42d4e6.wgsl b/test/builtins/gen/textureDimensions/42d4e6.wgsl
new file mode 100644
index 0000000..9db52bc
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/42d4e6.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba8unorm, write>) -> i32
+fn textureDimensions_42d4e6() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_42d4e6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_42d4e6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_42d4e6();
+}
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/42d4e6.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/42d4e6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/48cb89.wgsl b/test/builtins/gen/textureDimensions/48cb89.wgsl
new file mode 100644
index 0000000..d6b5e93
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/48cb89.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba16float, write>) -> vec2<i32>
+fn textureDimensions_48cb89() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_48cb89();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_48cb89();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_48cb89();
+}
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/48cb89.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/48cb89.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.msl b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/48cb89.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/48cb89.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/48cb89.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/48cb89.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/48cb89.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/49d274.wgsl b/test/builtins/gen/textureDimensions/49d274.wgsl
new file mode 100644
index 0000000..365b4d9
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/49d274.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rg32sint, write>) -> vec2<i32>
+fn textureDimensions_49d274() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_49d274();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_49d274();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_49d274();
+}
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/49d274.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/49d274.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.msl b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/49d274.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/49d274.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/49d274.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/49d274.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/49d274.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/4df9a8.wgsl b/test/builtins/gen/textureDimensions/4df9a8.wgsl
new file mode 100644
index 0000000..0d57047
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/4df9a8.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rg32uint, write>) -> i32
+fn textureDimensions_4df9a8() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_4df9a8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_4df9a8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_4df9a8();
+}
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.msl b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/4df9a8.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/4df9a8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/50a9ee.wgsl b/test/builtins/gen/textureDimensions/50a9ee.wgsl
new file mode 100644
index 0000000..eb49af8
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/50a9ee.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+
+// fn textureDimensions(texture: texture_cube_array<f32>, level: i32) -> vec2<i32>
+fn textureDimensions_50a9ee() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_50a9ee();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_50a9ee();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_50a9ee();
+}
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.msl b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/50a9ee.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/50a9ee.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/52045c.wgsl b/test/builtins/gen/textureDimensions/52045c.wgsl
new file mode 100644
index 0000000..4bcfa46
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/52045c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<i32>;
+
+// fn textureDimensions(texture: texture_1d<i32>, level: i32) -> i32
+fn textureDimensions_52045c() {
+  var res: i32 = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_52045c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_52045c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_52045c();
+}
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/52045c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/52045c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/52045c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/52045c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/52045c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/52045c.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/52045c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/55b23e.wgsl b/test/builtins/gen/textureDimensions/55b23e.wgsl
new file mode 100644
index 0000000..f8365a7
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/55b23e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rg32float, write>) -> i32
+fn textureDimensions_55b23e() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_55b23e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_55b23e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_55b23e();
+}
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/55b23e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/55b23e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/55b23e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/55b23e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/55b23e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/55b23e.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/55b23e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/579629.wgsl b/test/builtins/gen/textureDimensions/579629.wgsl
new file mode 100644
index 0000000..307a03a
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/579629.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
+
+// fn textureDimensions(texture: texture_multisampled_2d<u32>) -> vec2<i32>
+fn textureDimensions_579629() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_579629();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_579629();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_579629();
+}
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/579629.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/579629.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/579629.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/579629.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/579629.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.msl b/test/builtins/gen/textureDimensions/579629.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/579629.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/579629.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/579629.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/579629.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/579629.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/579629.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/579629.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/579629.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/57da0b.wgsl b/test/builtins/gen/textureDimensions/57da0b.wgsl
new file mode 100644
index 0000000..b0f707a
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/57da0b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<r32uint, write>) -> i32
+fn textureDimensions_57da0b() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_57da0b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_57da0b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_57da0b();
+}
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/57da0b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/57da0b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.msl b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/57da0b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/57da0b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/57da0b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57da0b.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/57da0b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/57e28f.wgsl b/test/builtins/gen/textureDimensions/57e28f.wgsl
new file mode 100644
index 0000000..7e40bd0
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/57e28f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+
+// fn textureDimensions(texture: texture_depth_cube) -> vec2<i32>
+fn textureDimensions_57e28f() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_57e28f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_57e28f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_57e28f();
+}
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/57e28f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/57e28f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/57e28f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/57e28f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/57e28f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/57e28f.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/57e28f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/58a515.wgsl b/test/builtins/gen/textureDimensions/58a515.wgsl
new file mode 100644
index 0000000..02ecaea
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/58a515.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba16float, write>) -> vec2<i32>
+fn textureDimensions_58a515() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_58a515();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_58a515();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_58a515();
+}
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/58a515.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/58a515.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.msl b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/58a515.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/58a515.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/58a515.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/58a515.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/58a515.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/5985f3.wgsl b/test/builtins/gen/textureDimensions/5985f3.wgsl
new file mode 100644
index 0000000..b181622
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/5985f3.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, write>) -> vec2<i32>
+fn textureDimensions_5985f3() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_5985f3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_5985f3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_5985f3();
+}
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/5985f3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/5985f3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.msl b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/5985f3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/5985f3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/5985f3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5985f3.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/5985f3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/5caa5e.wgsl b/test/builtins/gen/textureDimensions/5caa5e.wgsl
new file mode 100644
index 0000000..8541575
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/5caa5e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba32uint, write>) -> i32
+fn textureDimensions_5caa5e() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_5caa5e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_5caa5e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_5caa5e();
+}
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5caa5e.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/5caa5e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/5e295d.wgsl b/test/builtins/gen/textureDimensions/5e295d.wgsl
new file mode 100644
index 0000000..62b1c79
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/5e295d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, write>) -> vec2<i32>
+fn textureDimensions_5e295d() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_5e295d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_5e295d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_5e295d();
+}
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/5e295d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/5e295d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/5e295d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/5e295d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/5e295d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/5e295d.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/5e295d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/60bf54.wgsl b/test/builtins/gen/textureDimensions/60bf54.wgsl
new file mode 100644
index 0000000..6eb6787
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/60bf54.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rg32sint, write>) -> vec3<i32>
+fn textureDimensions_60bf54() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_60bf54();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_60bf54();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_60bf54();
+}
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/60bf54.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/60bf54.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.msl b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/60bf54.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/60bf54.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/60bf54.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/60bf54.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/60bf54.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/63f3cf.wgsl b/test/builtins/gen/textureDimensions/63f3cf.wgsl
new file mode 100644
index 0000000..c104a38
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/63f3cf.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rg32float, write>) -> vec3<i32>
+fn textureDimensions_63f3cf() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_63f3cf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_63f3cf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_63f3cf();
+}
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.msl b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/63f3cf.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/63f3cf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/68105c.wgsl b/test/builtins/gen/textureDimensions/68105c.wgsl
new file mode 100644
index 0000000..4e457db
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/68105c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba32uint, write>) -> vec2<i32>
+fn textureDimensions_68105c() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_68105c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_68105c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_68105c();
+}
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/68105c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/68105c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/68105c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/68105c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/68105c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/68105c.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/68105c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/686ef2.wgsl b/test/builtins/gen/textureDimensions/686ef2.wgsl
new file mode 100644
index 0000000..b05f0c5
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/686ef2.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<i32>;
+
+// fn textureDimensions(texture: texture_cube<i32>, level: i32) -> vec2<i32>
+fn textureDimensions_686ef2() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_686ef2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_686ef2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_686ef2();
+}
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/686ef2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/686ef2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.msl b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/686ef2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/686ef2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/686ef2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/686ef2.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/686ef2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/6adac6.wgsl b/test/builtins/gen/textureDimensions/6adac6.wgsl
new file mode 100644
index 0000000..1474994
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/6adac6.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba32sint, write>) -> i32
+fn textureDimensions_6adac6() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_6adac6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_6adac6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_6adac6();
+}
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/6adac6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/6adac6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/6adac6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/6adac6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/6adac6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6adac6.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/6adac6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/6ec1b4.wgsl b/test/builtins/gen/textureDimensions/6ec1b4.wgsl
new file mode 100644
index 0000000..652a4e1
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/6ec1b4.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<u32>;
+
+// fn textureDimensions(texture: texture_3d<u32>) -> vec3<i32>
+fn textureDimensions_6ec1b4() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_6ec1b4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_6ec1b4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_6ec1b4();
+}
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6ec1b4.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/6ec1b4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/6f0d79.wgsl b/test/builtins/gen/textureDimensions/6f0d79.wgsl
new file mode 100644
index 0000000..51b2d16
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/6f0d79.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, write>) -> vec2<i32>
+fn textureDimensions_6f0d79() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_6f0d79();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_6f0d79();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_6f0d79();
+}
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.msl b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/6f0d79.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/6f0d79.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/702c53.wgsl b/test/builtins/gen/textureDimensions/702c53.wgsl
new file mode 100644
index 0000000..aa809aa
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/702c53.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba8unorm, write>) -> vec2<i32>
+fn textureDimensions_702c53() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_702c53();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_702c53();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_702c53();
+}
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/702c53.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/702c53.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.msl b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/702c53.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/702c53.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/702c53.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/702c53.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/702c53.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/72e5d6.wgsl b/test/builtins/gen/textureDimensions/72e5d6.wgsl
new file mode 100644
index 0000000..3527443
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/72e5d6.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+
+// fn textureDimensions(texture: texture_depth_2d_array, level: i32) -> vec2<i32>
+fn textureDimensions_72e5d6() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_72e5d6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_72e5d6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_72e5d6();
+}
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.msl b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/72e5d6.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/72e5d6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/79df87.wgsl b/test/builtins/gen/textureDimensions/79df87.wgsl
new file mode 100644
index 0000000..a4402f3
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/79df87.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<u32>;
+
+// fn textureDimensions(texture: texture_1d<u32>, level: i32) -> i32
+fn textureDimensions_79df87() {
+  var res: i32 = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_79df87();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_79df87();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_79df87();
+}
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/79df87.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/79df87.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.msl b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/79df87.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/79df87.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/79df87.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/79df87.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/79df87.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/7bf826.wgsl b/test/builtins/gen/textureDimensions/7bf826.wgsl
new file mode 100644
index 0000000..ae9fb9e
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/7bf826.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+
+// fn textureDimensions(texture: texture_depth_2d_array) -> vec2<i32>
+fn textureDimensions_7bf826() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_7bf826();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_7bf826();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_7bf826();
+}
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/7bf826.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/7bf826.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.msl b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/7bf826.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/7bf826.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/7bf826.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7bf826.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/7bf826.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/7f5c2e.wgsl b/test/builtins/gen/textureDimensions/7f5c2e.wgsl
new file mode 100644
index 0000000..b1434fb
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/7f5c2e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rg32sint, write>) -> vec2<i32>
+fn textureDimensions_7f5c2e() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_7f5c2e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_7f5c2e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_7f5c2e();
+}
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/7f5c2e.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/7f5c2e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/8028f3.wgsl b/test/builtins/gen/textureDimensions/8028f3.wgsl
new file mode 100644
index 0000000..c50ad78
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/8028f3.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<r32float, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<r32float, write>) -> vec3<i32>
+fn textureDimensions_8028f3() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_8028f3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_8028f3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_8028f3();
+}
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/8028f3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/8028f3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/8028f3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/8028f3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/8028f3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8028f3.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/8028f3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/811679.wgsl b/test/builtins/gen/textureDimensions/811679.wgsl
new file mode 100644
index 0000000..efc5213
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/811679.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba32uint, write>) -> vec3<i32>
+fn textureDimensions_811679() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_811679();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_811679();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_811679();
+}
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/811679.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/811679.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/811679.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/811679.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/811679.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.msl b/test/builtins/gen/textureDimensions/811679.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/811679.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/811679.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/811679.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/811679.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/811679.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/811679.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/811679.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/811679.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/820596.wgsl b/test/builtins/gen/textureDimensions/820596.wgsl
new file mode 100644
index 0000000..8a900d4
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/820596.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rg32uint, write>) -> vec3<i32>
+fn textureDimensions_820596() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_820596();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_820596();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_820596();
+}
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/820596.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/820596.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/820596.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/820596.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/820596.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/820596.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.msl b/test/builtins/gen/textureDimensions/820596.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/820596.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/820596.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/820596.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/820596.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/820596.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/820596.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/820596.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/820596.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/83ee5a.wgsl b/test/builtins/gen/textureDimensions/83ee5a.wgsl
new file mode 100644
index 0000000..b2b2e7b
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/83ee5a.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba32sint, write>) -> vec2<i32>
+fn textureDimensions_83ee5a() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_83ee5a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_83ee5a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_83ee5a();
+}
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.msl b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/83ee5a.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/83ee5a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/85d556.wgsl b/test/builtins/gen/textureDimensions/85d556.wgsl
new file mode 100644
index 0000000..4c98522
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/85d556.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+
+// fn textureDimensions(texture: texture_2d_array<f32>, level: i32) -> vec2<i32>
+fn textureDimensions_85d556() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_85d556();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_85d556();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_85d556();
+}
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/85d556.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/85d556.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.msl b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/85d556.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/85d556.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/85d556.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/85d556.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/85d556.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/88ad17.wgsl b/test/builtins/gen/textureDimensions/88ad17.wgsl
new file mode 100644
index 0000000..c4354f9
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/88ad17.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<u32>;
+
+// fn textureDimensions(texture: texture_cube<u32>, level: i32) -> vec2<i32>
+fn textureDimensions_88ad17() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_88ad17();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_88ad17();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_88ad17();
+}
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/88ad17.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/88ad17.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.msl b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/88ad17.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/88ad17.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/88ad17.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/88ad17.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/88ad17.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/8aa4c4.wgsl b/test/builtins/gen/textureDimensions/8aa4c4.wgsl
new file mode 100644
index 0000000..08f144d
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/8aa4c4.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+
+// fn textureDimensions(texture: texture_3d<f32>) -> vec3<i32>
+fn textureDimensions_8aa4c4() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_8aa4c4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_8aa4c4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_8aa4c4();
+}
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8aa4c4.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/8aa4c4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/8deb5e.wgsl b/test/builtins/gen/textureDimensions/8deb5e.wgsl
new file mode 100644
index 0000000..580b23d
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/8deb5e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<i32>;
+
+// fn textureDimensions(texture: texture_3d<i32>) -> vec3<i32>
+fn textureDimensions_8deb5e() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_8deb5e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_8deb5e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_8deb5e();
+}
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8deb5e.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/8deb5e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/8f20bf.wgsl b/test/builtins/gen/textureDimensions/8f20bf.wgsl
new file mode 100644
index 0000000..f4b74a79
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/8f20bf.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+
+// fn textureDimensions(texture: texture_cube_array<f32>) -> vec2<i32>
+fn textureDimensions_8f20bf() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_8f20bf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_8f20bf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_8f20bf();
+}
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8f20bf.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/8f20bf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/8fca0f.wgsl b/test/builtins/gen/textureDimensions/8fca0f.wgsl
new file mode 100644
index 0000000..f7eda13
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/8fca0f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba32float, write>) -> vec3<i32>
+fn textureDimensions_8fca0f() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_8fca0f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_8fca0f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_8fca0f();
+}
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/8fca0f.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/8fca0f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/90340b.wgsl b/test/builtins/gen/textureDimensions/90340b.wgsl
new file mode 100644
index 0000000..fdc2d1f
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/90340b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+
+// fn textureDimensions(texture: texture_depth_cube_array) -> vec2<i32>
+fn textureDimensions_90340b() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_90340b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_90340b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_90340b();
+}
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/90340b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/90340b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.msl b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/90340b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/90340b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/90340b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/90340b.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/90340b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/9042ab.wgsl b/test/builtins/gen/textureDimensions/9042ab.wgsl
new file mode 100644
index 0000000..44a55b9
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/9042ab.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rg32uint, write>) -> vec2<i32>
+fn textureDimensions_9042ab() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_9042ab();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_9042ab();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_9042ab();
+}
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/9042ab.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/9042ab.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/9042ab.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/9042ab.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/9042ab.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9042ab.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/9042ab.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/9393b0.wgsl b/test/builtins/gen/textureDimensions/9393b0.wgsl
new file mode 100644
index 0000000..f9d4901
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/9393b0.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+
+// fn textureDimensions(texture: texture_depth_cube, level: i32) -> vec2<i32>
+fn textureDimensions_9393b0() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_9393b0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_9393b0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_9393b0();
+}
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/9393b0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/9393b0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/9393b0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/9393b0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/9393b0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9393b0.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/9393b0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/939fdb.wgsl b/test/builtins/gen/textureDimensions/939fdb.wgsl
new file mode 100644
index 0000000..bd19de4
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/939fdb.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+
+// fn textureDimensions(texture: texture_depth_2d) -> vec2<i32>
+fn textureDimensions_939fdb() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_939fdb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_939fdb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_939fdb();
+}
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/939fdb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/939fdb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.msl b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/939fdb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/939fdb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/939fdb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/939fdb.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/939fdb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/962dcd.wgsl b/test/builtins/gen/textureDimensions/962dcd.wgsl
new file mode 100644
index 0000000..68269ee
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/962dcd.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<i32>;
+
+// fn textureDimensions(texture: texture_cube<i32>) -> vec2<i32>
+fn textureDimensions_962dcd() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_962dcd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_962dcd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_962dcd();
+}
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/962dcd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/962dcd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.msl b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/962dcd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/962dcd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/962dcd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/962dcd.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/962dcd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/9abfe5.wgsl b/test/builtins/gen/textureDimensions/9abfe5.wgsl
new file mode 100644
index 0000000..9cb143c
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/9abfe5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba32float, write>) -> vec2<i32>
+fn textureDimensions_9abfe5() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_9abfe5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_9abfe5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_9abfe5();
+}
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9abfe5.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/9abfe5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/9c9c57.wgsl b/test/builtins/gen/textureDimensions/9c9c57.wgsl
new file mode 100644
index 0000000..cd7870c
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/9c9c57.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
+
+// fn textureDimensions(texture: texture_2d_array<i32>, level: i32) -> vec2<i32>
+fn textureDimensions_9c9c57() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_9c9c57();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_9c9c57();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_9c9c57();
+}
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9c9c57.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/9c9c57.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/9da9e2.wgsl b/test/builtins/gen/textureDimensions/9da9e2.wgsl
new file mode 100644
index 0000000..832f406
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/9da9e2.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba8sint, write>) -> i32
+fn textureDimensions_9da9e2() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_9da9e2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_9da9e2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_9da9e2();
+}
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9da9e2.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/9da9e2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/9eb8d8.wgsl b/test/builtins/gen/textureDimensions/9eb8d8.wgsl
new file mode 100644
index 0000000..20884ff
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/9eb8d8.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<r32uint, write>) -> vec2<i32>
+fn textureDimensions_9eb8d8() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_9eb8d8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_9eb8d8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_9eb8d8();
+}
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9eb8d8.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/9eb8d8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/9f8e46.wgsl b/test/builtins/gen/textureDimensions/9f8e46.wgsl
new file mode 100644
index 0000000..b6f4be2
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/9f8e46.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+
+// fn textureDimensions(texture: texture_2d<f32>) -> vec2<i32>
+fn textureDimensions_9f8e46() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_9f8e46();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_9f8e46();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_9f8e46();
+}
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.msl b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/9f8e46.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/9f8e46.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/a01845.wgsl b/test/builtins/gen/textureDimensions/a01845.wgsl
new file mode 100644
index 0000000..86c1911
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/a01845.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+
+// fn textureDimensions(texture: texture_depth_cube_array, level: i32) -> vec2<i32>
+fn textureDimensions_a01845() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_a01845();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_a01845();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_a01845();
+}
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/a01845.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/a01845.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/a01845.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/a01845.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/a01845.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a01845.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/a01845.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/a7d565.wgsl b/test/builtins/gen/textureDimensions/a7d565.wgsl
new file mode 100644
index 0000000..457d50c
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/a7d565.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<u32>;
+
+// fn textureDimensions(texture: texture_1d<u32>) -> i32
+fn textureDimensions_a7d565() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_a7d565();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_a7d565();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_a7d565();
+}
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/a7d565.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/a7d565.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/a7d565.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/a7d565.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/a7d565.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a7d565.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/a7d565.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/a863f2.wgsl b/test/builtins/gen/textureDimensions/a863f2.wgsl
new file mode 100644
index 0000000..94c32bc
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/a863f2.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<r32float, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<r32float, write>) -> i32
+fn textureDimensions_a863f2() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_a863f2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_a863f2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_a863f2();
+}
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/a863f2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/a863f2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/a863f2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/a863f2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/a863f2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a863f2.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/a863f2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/a9c9c1.wgsl b/test/builtins/gen/textureDimensions/a9c9c1.wgsl
new file mode 100644
index 0000000..83639dc
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/a9c9c1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<f32>;
+
+// fn textureDimensions(texture: texture_cube<f32>, level: i32) -> vec2<i32>
+fn textureDimensions_a9c9c1() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_a9c9c1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_a9c9c1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_a9c9c1();
+}
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.msl b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/a9c9c1.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/a9c9c1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/b0e16d.wgsl b/test/builtins/gen/textureDimensions/b0e16d.wgsl
new file mode 100644
index 0000000..2f55df0
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/b0e16d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<i32>;
+
+// fn textureDimensions(texture: texture_2d<i32>, level: i32) -> vec2<i32>
+fn textureDimensions_b0e16d() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_b0e16d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_b0e16d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_b0e16d();
+}
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b0e16d.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/b0e16d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/b3c954.wgsl b/test/builtins/gen/textureDimensions/b3c954.wgsl
new file mode 100644
index 0000000..46c2786
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/b3c954.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<u32>;
+
+// fn textureDimensions(texture: texture_cube<u32>) -> vec2<i32>
+fn textureDimensions_b3c954() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_b3c954();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_b3c954();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_b3c954();
+}
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/b3c954.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/b3c954.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/b3c954.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/b3c954.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/b3c954.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3c954.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/b3c954.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/b3e407.wgsl b/test/builtins/gen/textureDimensions/b3e407.wgsl
new file mode 100644
index 0000000..f5e1391
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/b3e407.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<f32>;
+
+// fn textureDimensions(texture: texture_1d<f32>, level: i32) -> i32
+fn textureDimensions_b3e407() {
+  var res: i32 = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_b3e407();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_b3e407();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_b3e407();
+}
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/b3e407.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/b3e407.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/b3e407.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/b3e407.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/b3e407.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b3e407.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/b3e407.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/b91240.wgsl b/test/builtins/gen/textureDimensions/b91240.wgsl
new file mode 100644
index 0000000..e7aba5a
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/b91240.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba8snorm, write>) -> vec2<i32>
+fn textureDimensions_b91240() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_b91240();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_b91240();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_b91240();
+}
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/b91240.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/b91240.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.msl b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/b91240.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/b91240.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/b91240.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/b91240.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/b91240.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/ba1481.wgsl b/test/builtins/gen/textureDimensions/ba1481.wgsl
new file mode 100644
index 0000000..b9f20b8
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/ba1481.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_external;
+
+// fn textureDimensions(texture: texture_external) -> vec2<i32>
+fn textureDimensions_ba1481() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_ba1481();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_ba1481();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_ba1481();
+}
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/ba1481.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.msl b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/ba1481.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/ba1481.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ba1481.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/ba1481.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/bb3dde.wgsl b/test/builtins/gen/textureDimensions/bb3dde.wgsl
new file mode 100644
index 0000000..dfab743
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/bb3dde.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba32sint, write>) -> vec3<i32>
+fn textureDimensions_bb3dde() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_bb3dde();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_bb3dde();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_bb3dde();
+}
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.msl b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/bb3dde.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/bb3dde.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/c30e75.wgsl b/test/builtins/gen/textureDimensions/c30e75.wgsl
new file mode 100644
index 0000000..b8a1e10
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/c30e75.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<r32sint, write>) -> vec2<i32>
+fn textureDimensions_c30e75() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_c30e75();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_c30e75();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_c30e75();
+}
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/c30e75.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/c30e75.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.msl b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/c30e75.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/c30e75.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/c30e75.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c30e75.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/c30e75.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/c7943d.wgsl b/test/builtins/gen/textureDimensions/c7943d.wgsl
new file mode 100644
index 0000000..6da3f5a
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/c7943d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<rgba8uint, write>) -> vec2<i32>
+fn textureDimensions_c7943d() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_c7943d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_c7943d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_c7943d();
+}
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/c7943d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/c7943d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.msl b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/c7943d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/c7943d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/c7943d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/c7943d.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/c7943d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/cc968c.wgsl b/test/builtins/gen/textureDimensions/cc968c.wgsl
new file mode 100644
index 0000000..f001aa6
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/cc968c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rg32sint, write>) -> i32
+fn textureDimensions_cc968c() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cc968c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_cc968c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cc968c();
+}
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/cc968c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/cc968c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/cc968c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/cc968c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/cc968c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cc968c.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/cc968c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/cccc8f.wgsl b/test/builtins/gen/textureDimensions/cccc8f.wgsl
new file mode 100644
index 0000000..d990bc6
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/cccc8f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba8snorm, write>) -> i32
+fn textureDimensions_cccc8f() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cccc8f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_cccc8f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cccc8f();
+}
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cccc8f.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/cccc8f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/cd76a7.wgsl b/test/builtins/gen/textureDimensions/cd76a7.wgsl
new file mode 100644
index 0000000..bcf3f8f
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/cd76a7.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba8unorm, write>) -> vec3<i32>
+fn textureDimensions_cd76a7() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cd76a7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_cd76a7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cd76a7();
+}
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cd76a7.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/cd76a7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/cdf473.wgsl b/test/builtins/gen/textureDimensions/cdf473.wgsl
new file mode 100644
index 0000000..04b17c9
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/cdf473.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, write>) -> vec2<i32>
+fn textureDimensions_cdf473() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cdf473();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_cdf473();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cdf473();
+}
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/cdf473.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/cdf473.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/cdf473.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/cdf473.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/cdf473.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cdf473.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/cdf473.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/cec841.wgsl b/test/builtins/gen/textureDimensions/cec841.wgsl
new file mode 100644
index 0000000..21c773a
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/cec841.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+
+// fn textureDimensions(texture: texture_2d_array<f32>) -> vec2<i32>
+fn textureDimensions_cec841() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cec841();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_cec841();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cec841();
+}
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/cec841.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/cec841.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/cec841.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/cec841.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/cec841.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cec841.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/cec841.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/cf7e43.wgsl b/test/builtins/gen/textureDimensions/cf7e43.wgsl
new file mode 100644
index 0000000..76495cd
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/cf7e43.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba8snorm, write>) -> vec3<i32>
+fn textureDimensions_cf7e43() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cf7e43();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_cf7e43();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cf7e43();
+}
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.msl b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/cf7e43.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/cf7e43.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/d125bc.wgsl b/test/builtins/gen/textureDimensions/d125bc.wgsl
new file mode 100644
index 0000000..0e3d559
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/d125bc.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<f32>;
+
+// fn textureDimensions(texture: texture_cube<f32>) -> vec2<i32>
+fn textureDimensions_d125bc() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_d125bc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_d125bc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_d125bc();
+}
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/d125bc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/d125bc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.msl b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/d125bc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/d125bc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/d125bc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d125bc.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/d125bc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/d83c45.wgsl b/test/builtins/gen/textureDimensions/d83c45.wgsl
new file mode 100644
index 0000000..6e9f883
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/d83c45.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
+
+// fn textureDimensions(texture: texture_cube_array<u32>, level: i32) -> vec2<i32>
+fn textureDimensions_d83c45() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_d83c45();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_d83c45();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_d83c45();
+}
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/d83c45.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/d83c45.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.msl b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/d83c45.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/d83c45.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/d83c45.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/d83c45.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/d83c45.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/daf7c0.wgsl b/test/builtins/gen/textureDimensions/daf7c0.wgsl
new file mode 100644
index 0000000..1615d62
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/daf7c0.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
+
+// fn textureDimensions(texture: texture_multisampled_2d<i32>) -> vec2<i32>
+fn textureDimensions_daf7c0() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_daf7c0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_daf7c0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_daf7c0();
+}
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/daf7c0.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/daf7c0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/dc2dd0.wgsl b/test/builtins/gen/textureDimensions/dc2dd0.wgsl
new file mode 100644
index 0000000..4836b46
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/dc2dd0.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, write>;
+
+// fn textureDimensions(texture: texture_storage_1d<rgba8uint, write>) -> i32
+fn textureDimensions_dc2dd0() {
+  var res: i32 = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_dc2dd0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_dc2dd0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_dc2dd0();
+}
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.msl b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/dc2dd0.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/dc2dd0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/e927be.wgsl b/test/builtins/gen/textureDimensions/e927be.wgsl
new file mode 100644
index 0000000..a4ebee5
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/e927be.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
+
+// fn textureDimensions(texture: texture_cube_array<i32>) -> vec2<i32>
+fn textureDimensions_e927be() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_e927be();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_e927be();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_e927be();
+}
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/e927be.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/e927be.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.msl b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/e927be.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/e927be.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/e927be.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e927be.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/e927be.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/e9e96c.wgsl b/test/builtins/gen/textureDimensions/e9e96c.wgsl
new file mode 100644
index 0000000..49c2b15
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/e9e96c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<r32float, write>) -> vec2<i32>
+fn textureDimensions_e9e96c() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_e9e96c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_e9e96c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_e9e96c();
+}
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.msl b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/e9e96c.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/e9e96c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/ef5b89.wgsl b/test/builtins/gen/textureDimensions/ef5b89.wgsl
new file mode 100644
index 0000000..58838e2
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/ef5b89.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
+
+// fn textureDimensions(texture: texture_multisampled_2d<f32>) -> vec2<i32>
+fn textureDimensions_ef5b89() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_ef5b89();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_ef5b89();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_ef5b89();
+}
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.msl b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/ef5b89.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/ef5b89.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/efc8a4.wgsl b/test/builtins/gen/textureDimensions/efc8a4.wgsl
new file mode 100644
index 0000000..843c647
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/efc8a4.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<i32>;
+
+// fn textureDimensions(texture: texture_3d<i32>, level: i32) -> vec3<i32>
+fn textureDimensions_efc8a4() {
+  var res: vec3<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_efc8a4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_efc8a4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_efc8a4();
+}
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.msl b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/efc8a4.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/efc8a4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/f60bdb.wgsl b/test/builtins/gen/textureDimensions/f60bdb.wgsl
new file mode 100644
index 0000000..ad2bb47
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/f60bdb.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
+
+// fn textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<i32>
+fn textureDimensions_f60bdb() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_f60bdb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_f60bdb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_f60bdb();
+}
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.msl b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f60bdb.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/f60bdb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/f7145b.wgsl b/test/builtins/gen/textureDimensions/f7145b.wgsl
new file mode 100644
index 0000000..02b68c1
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/f7145b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<u32>;
+
+// fn textureDimensions(texture: texture_2d<u32>, level: i32) -> vec2<i32>
+fn textureDimensions_f7145b() {
+  var res: vec2<i32> = textureDimensions(arg_0, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_f7145b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_f7145b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_f7145b();
+}
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/f7145b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/f7145b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.msl b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/f7145b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/f7145b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/f7145b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f7145b.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/f7145b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/f931c7.wgsl b/test/builtins/gen/textureDimensions/f931c7.wgsl
new file mode 100644
index 0000000..0270f12
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/f931c7.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<r32float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d<r32float, write>) -> vec2<i32>
+fn textureDimensions_f931c7() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_f931c7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_f931c7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_f931c7();
+}
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/f931c7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/f931c7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.msl b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/f931c7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/f931c7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/f931c7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/f931c7.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/f931c7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/fa9859.wgsl b/test/builtins/gen/textureDimensions/fa9859.wgsl
new file mode 100644
index 0000000..0035510
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/fa9859.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<i32>;
+
+// fn textureDimensions(texture: texture_2d<i32>) -> vec2<i32>
+fn textureDimensions_fa9859() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_fa9859();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_fa9859();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_fa9859();
+}
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/fa9859.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/fa9859.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.msl b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/fa9859.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/fa9859.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/fa9859.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fa9859.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/fa9859.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/fb5670.wgsl b/test/builtins/gen/textureDimensions/fb5670.wgsl
new file mode 100644
index 0000000..1ac4723
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/fb5670.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
+
+// fn textureDimensions(texture: texture_storage_2d_array<rg32float, write>) -> vec2<i32>
+fn textureDimensions_fb5670() {
+  var res: vec2<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_fb5670();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_fb5670();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_fb5670();
+}
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/fb5670.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/fb5670.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.msl b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/fb5670.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/fb5670.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/fb5670.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fb5670.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/fb5670.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureDimensions/fcac78.wgsl b/test/builtins/gen/textureDimensions/fcac78.wgsl
new file mode 100644
index 0000000..3b2121e
--- /dev/null
+++ b/test/builtins/gen/textureDimensions/fcac78.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, write>;
+
+// fn textureDimensions(texture: texture_storage_3d<rgba8uint, write>) -> vec3<i32>
+fn textureDimensions_fcac78() {
+  var res: vec3<i32> = textureDimensions(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_fcac78();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureDimensions_fcac78();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_fcac78();
+}
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.glsl
rename to test/builtins/gen/textureDimensions/fcac78.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.hlsl b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.hlsl
rename to test/builtins/gen/textureDimensions/fcac78.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.msl b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.msl
rename to test/builtins/gen/textureDimensions/fcac78.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.spvasm b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.spvasm
rename to test/builtins/gen/textureDimensions/fcac78.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.wgsl b/test/builtins/gen/textureDimensions/fcac78.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureDimensions/fcac78.wgsl.expected.wgsl
rename to test/builtins/gen/textureDimensions/fcac78.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/01305f.wgsl b/test/builtins/gen/textureGather/01305f.wgsl
new file mode 100644
index 0000000..8c521bf
--- /dev/null
+++ b/test/builtins/gen/textureGather/01305f.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d_array<u32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<u32>
+fn textureGather_01305f() {
+  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_01305f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_01305f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_01305f();
+}
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl b/test/builtins/gen/textureGather/01305f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/01305f.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/01305f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.hlsl b/test/builtins/gen/textureGather/01305f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/01305f.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/01305f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.msl b/test/builtins/gen/textureGather/01305f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/01305f.wgsl.expected.msl
rename to test/builtins/gen/textureGather/01305f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.spvasm b/test/builtins/gen/textureGather/01305f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/01305f.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/01305f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl.expected.wgsl b/test/builtins/gen/textureGather/01305f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/01305f.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/01305f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/06030a.wgsl b/test/builtins/gen/textureGather/06030a.wgsl
new file mode 100644
index 0000000..c3cfc07
--- /dev/null
+++ b/test/builtins/gen/textureGather/06030a.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d_array<f32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32>
+fn textureGather_06030a() {
+  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_06030a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_06030a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_06030a();
+}
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl b/test/builtins/gen/textureGather/06030a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/06030a.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/06030a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.hlsl b/test/builtins/gen/textureGather/06030a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/06030a.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/06030a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.msl b/test/builtins/gen/textureGather/06030a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/06030a.wgsl.expected.msl
rename to test/builtins/gen/textureGather/06030a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.spvasm b/test/builtins/gen/textureGather/06030a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/06030a.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/06030a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl.expected.wgsl b/test/builtins/gen/textureGather/06030a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/06030a.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/06030a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/10c554.wgsl b/test/builtins/gen/textureGather/10c554.wgsl
new file mode 100644
index 0000000..e240c55
--- /dev/null
+++ b/test/builtins/gen/textureGather/10c554.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureGather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
+fn textureGather_10c554() {
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_10c554();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_10c554();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_10c554();
+}
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl b/test/builtins/gen/textureGather/10c554.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/10c554.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/10c554.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.hlsl b/test/builtins/gen/textureGather/10c554.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/10c554.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/10c554.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.msl b/test/builtins/gen/textureGather/10c554.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/10c554.wgsl.expected.msl
rename to test/builtins/gen/textureGather/10c554.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.spvasm b/test/builtins/gen/textureGather/10c554.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/10c554.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/10c554.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl.expected.wgsl b/test/builtins/gen/textureGather/10c554.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/10c554.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/10c554.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/15d79c.wgsl b/test/builtins/gen/textureGather/15d79c.wgsl
new file mode 100644
index 0000000..830c832
--- /dev/null
+++ b/test/builtins/gen/textureGather/15d79c.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d<f32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
+fn textureGather_15d79c() {
+  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_15d79c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_15d79c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_15d79c();
+}
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl b/test/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/15d79c.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/15d79c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.hlsl b/test/builtins/gen/textureGather/15d79c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/15d79c.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/15d79c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.msl b/test/builtins/gen/textureGather/15d79c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/15d79c.wgsl.expected.msl
rename to test/builtins/gen/textureGather/15d79c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.spvasm b/test/builtins/gen/textureGather/15d79c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/15d79c.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/15d79c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl.expected.wgsl b/test/builtins/gen/textureGather/15d79c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/15d79c.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/15d79c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/2e0ed5.wgsl b/test/builtins/gen/textureGather/2e0ed5.wgsl
new file mode 100644
index 0000000..39b32d1
--- /dev/null
+++ b/test/builtins/gen/textureGather/2e0ed5.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
+fn textureGather_2e0ed5() {
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_2e0ed5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_2e0ed5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_2e0ed5();
+}
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/2e0ed5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.hlsl b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/2e0ed5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.msl b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.msl
rename to test/builtins/gen/textureGather/2e0ed5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.spvasm b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/2e0ed5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.wgsl b/test/builtins/gen/textureGather/2e0ed5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/2e0ed5.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/2e0ed5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/3112e8.wgsl b/test/builtins/gen/textureGather/3112e8.wgsl
new file mode 100644
index 0000000..90210b61
--- /dev/null
+++ b/test/builtins/gen/textureGather/3112e8.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_cube_array<f32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
+fn textureGather_3112e8() {
+  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec3<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_3112e8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_3112e8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_3112e8();
+}
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl b/test/builtins/gen/textureGather/3112e8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3112e8.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/3112e8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.hlsl b/test/builtins/gen/textureGather/3112e8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3112e8.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/3112e8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.msl b/test/builtins/gen/textureGather/3112e8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3112e8.wgsl.expected.msl
rename to test/builtins/gen/textureGather/3112e8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.spvasm b/test/builtins/gen/textureGather/3112e8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/3112e8.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/3112e8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl.expected.wgsl b/test/builtins/gen/textureGather/3112e8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3112e8.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/3112e8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/3c527e.wgsl b/test/builtins/gen/textureGather/3c527e.wgsl
new file mode 100644
index 0000000..9a90afe
--- /dev/null
+++ b/test/builtins/gen/textureGather/3c527e.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_cube_array<u32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<u32>
+fn textureGather_3c527e() {
+  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec3<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_3c527e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_3c527e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_3c527e();
+}
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl b/test/builtins/gen/textureGather/3c527e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3c527e.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/3c527e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.hlsl b/test/builtins/gen/textureGather/3c527e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3c527e.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/3c527e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.msl b/test/builtins/gen/textureGather/3c527e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3c527e.wgsl.expected.msl
rename to test/builtins/gen/textureGather/3c527e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.spvasm b/test/builtins/gen/textureGather/3c527e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/3c527e.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/3c527e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl.expected.wgsl b/test/builtins/gen/textureGather/3c527e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/3c527e.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/3c527e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/43025d.wgsl b/test/builtins/gen/textureGather/43025d.wgsl
new file mode 100644
index 0000000..c96d1c4
--- /dev/null
+++ b/test/builtins/gen/textureGather/43025d.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
+fn textureGather_43025d() {
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_43025d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_43025d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_43025d();
+}
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl b/test/builtins/gen/textureGather/43025d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/43025d.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/43025d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.hlsl b/test/builtins/gen/textureGather/43025d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/43025d.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/43025d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.msl b/test/builtins/gen/textureGather/43025d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/43025d.wgsl.expected.msl
rename to test/builtins/gen/textureGather/43025d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.spvasm b/test/builtins/gen/textureGather/43025d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/43025d.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/43025d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl.expected.wgsl b/test/builtins/gen/textureGather/43025d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/43025d.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/43025d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/4f2350.wgsl b/test/builtins/gen/textureGather/4f2350.wgsl
new file mode 100644
index 0000000..29250e9
--- /dev/null
+++ b/test/builtins/gen/textureGather/4f2350.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d_array<i32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<i32>
+fn textureGather_4f2350() {
+  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_4f2350();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_4f2350();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_4f2350();
+}
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl b/test/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/4f2350.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/4f2350.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.hlsl b/test/builtins/gen/textureGather/4f2350.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/4f2350.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/4f2350.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.msl b/test/builtins/gen/textureGather/4f2350.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/4f2350.wgsl.expected.msl
rename to test/builtins/gen/textureGather/4f2350.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.spvasm b/test/builtins/gen/textureGather/4f2350.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/4f2350.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/4f2350.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl.expected.wgsl b/test/builtins/gen/textureGather/4f2350.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/4f2350.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/4f2350.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/51cf0b.wgsl b/test/builtins/gen/textureGather/51cf0b.wgsl
new file mode 100644
index 0000000..f27f6b5
--- /dev/null
+++ b/test/builtins/gen/textureGather/51cf0b.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d_array<i32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<i32>
+fn textureGather_51cf0b() {
+  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_51cf0b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_51cf0b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_51cf0b();
+}
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/51cf0b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.hlsl b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/51cf0b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.msl b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.msl
rename to test/builtins/gen/textureGather/51cf0b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.spvasm b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/51cf0b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.wgsl b/test/builtins/gen/textureGather/51cf0b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/51cf0b.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/51cf0b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/53ece6.wgsl b/test/builtins/gen/textureGather/53ece6.wgsl
new file mode 100644
index 0000000..2f4e0b4
--- /dev/null
+++ b/test/builtins/gen/textureGather/53ece6.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32>
+fn textureGather_53ece6() {
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_53ece6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_53ece6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_53ece6();
+}
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl b/test/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/53ece6.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/53ece6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.hlsl b/test/builtins/gen/textureGather/53ece6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/53ece6.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/53ece6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.msl b/test/builtins/gen/textureGather/53ece6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/53ece6.wgsl.expected.msl
rename to test/builtins/gen/textureGather/53ece6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.spvasm b/test/builtins/gen/textureGather/53ece6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/53ece6.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/53ece6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl.expected.wgsl b/test/builtins/gen/textureGather/53ece6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/53ece6.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/53ece6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/57bfc6.wgsl b/test/builtins/gen/textureGather/57bfc6.wgsl
new file mode 100644
index 0000000..0fc0b73
--- /dev/null
+++ b/test/builtins/gen/textureGather/57bfc6.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_cube<f32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
+fn textureGather_57bfc6() {
+  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_57bfc6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_57bfc6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_57bfc6();
+}
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/57bfc6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.hlsl b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/57bfc6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.msl b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.msl
rename to test/builtins/gen/textureGather/57bfc6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.spvasm b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/57bfc6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.wgsl b/test/builtins/gen/textureGather/57bfc6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/57bfc6.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/57bfc6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/587ba3.wgsl b/test/builtins/gen/textureGather/587ba3.wgsl
new file mode 100644
index 0000000..3f1e1e7
--- /dev/null
+++ b/test/builtins/gen/textureGather/587ba3.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d<i32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>) -> vec4<i32>
+fn textureGather_587ba3() {
+  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_587ba3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_587ba3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_587ba3();
+}
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl b/test/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/587ba3.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/587ba3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.hlsl b/test/builtins/gen/textureGather/587ba3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/587ba3.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/587ba3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.msl b/test/builtins/gen/textureGather/587ba3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/587ba3.wgsl.expected.msl
rename to test/builtins/gen/textureGather/587ba3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.spvasm b/test/builtins/gen/textureGather/587ba3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/587ba3.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/587ba3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl.expected.wgsl b/test/builtins/gen/textureGather/587ba3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/587ba3.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/587ba3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/69e0fb.wgsl b/test/builtins/gen/textureGather/69e0fb.wgsl
new file mode 100644
index 0000000..8d09197
--- /dev/null
+++ b/test/builtins/gen/textureGather/69e0fb.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d<i32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<i32>
+fn textureGather_69e0fb() {
+  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_69e0fb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_69e0fb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_69e0fb();
+}
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/69e0fb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.hlsl b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/69e0fb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.msl b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.msl
rename to test/builtins/gen/textureGather/69e0fb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.spvasm b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/69e0fb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.wgsl b/test/builtins/gen/textureGather/69e0fb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/69e0fb.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/69e0fb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/93003d.wgsl b/test/builtins/gen/textureGather/93003d.wgsl
new file mode 100644
index 0000000..5fda02b
--- /dev/null
+++ b/test/builtins/gen/textureGather/93003d.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d<u32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<u32>
+fn textureGather_93003d() {
+  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_93003d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_93003d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_93003d();
+}
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl b/test/builtins/gen/textureGather/93003d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/93003d.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/93003d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.hlsl b/test/builtins/gen/textureGather/93003d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/93003d.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/93003d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.msl b/test/builtins/gen/textureGather/93003d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/93003d.wgsl.expected.msl
rename to test/builtins/gen/textureGather/93003d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.spvasm b/test/builtins/gen/textureGather/93003d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/93003d.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/93003d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl.expected.wgsl b/test/builtins/gen/textureGather/93003d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/93003d.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/93003d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/9a6358.wgsl b/test/builtins/gen/textureGather/9a6358.wgsl
new file mode 100644
index 0000000..2159a40
--- /dev/null
+++ b/test/builtins/gen/textureGather/9a6358.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
+fn textureGather_9a6358() {
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_9a6358();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_9a6358();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_9a6358();
+}
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl b/test/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9a6358.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/9a6358.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.hlsl b/test/builtins/gen/textureGather/9a6358.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9a6358.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/9a6358.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.msl b/test/builtins/gen/textureGather/9a6358.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9a6358.wgsl.expected.msl
rename to test/builtins/gen/textureGather/9a6358.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.spvasm b/test/builtins/gen/textureGather/9a6358.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/9a6358.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/9a6358.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl.expected.wgsl b/test/builtins/gen/textureGather/9a6358.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9a6358.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/9a6358.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/9efca2.wgsl b/test/builtins/gen/textureGather/9efca2.wgsl
new file mode 100644
index 0000000..8b48e61
--- /dev/null
+++ b/test/builtins/gen/textureGather/9efca2.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d_array<f32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
+fn textureGather_9efca2() {
+  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_9efca2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_9efca2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_9efca2();
+}
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl b/test/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9efca2.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/9efca2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.hlsl b/test/builtins/gen/textureGather/9efca2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9efca2.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/9efca2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.msl b/test/builtins/gen/textureGather/9efca2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9efca2.wgsl.expected.msl
rename to test/builtins/gen/textureGather/9efca2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.spvasm b/test/builtins/gen/textureGather/9efca2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/9efca2.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/9efca2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl.expected.wgsl b/test/builtins/gen/textureGather/9efca2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/9efca2.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/9efca2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/bd0b1e.wgsl b/test/builtins/gen/textureGather/bd0b1e.wgsl
new file mode 100644
index 0000000..892c997
--- /dev/null
+++ b/test/builtins/gen/textureGather/bd0b1e.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d<f32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
+fn textureGather_bd0b1e() {
+  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_bd0b1e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_bd0b1e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_bd0b1e();
+}
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/bd0b1e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.hlsl b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/bd0b1e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.msl b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.msl
rename to test/builtins/gen/textureGather/bd0b1e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.spvasm b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/bd0b1e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.wgsl b/test/builtins/gen/textureGather/bd0b1e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/bd0b1e.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/bd0b1e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/c409ae.wgsl b/test/builtins/gen/textureGather/c409ae.wgsl
new file mode 100644
index 0000000..d37b2a4
--- /dev/null
+++ b/test/builtins/gen/textureGather/c409ae.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
+fn textureGather_c409ae() {
+  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_c409ae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_c409ae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_c409ae();
+}
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl b/test/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c409ae.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/c409ae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.hlsl b/test/builtins/gen/textureGather/c409ae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c409ae.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/c409ae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.msl b/test/builtins/gen/textureGather/c409ae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c409ae.wgsl.expected.msl
rename to test/builtins/gen/textureGather/c409ae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.spvasm b/test/builtins/gen/textureGather/c409ae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/c409ae.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/c409ae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl.expected.wgsl b/test/builtins/gen/textureGather/c409ae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c409ae.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/c409ae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/c55822.wgsl b/test/builtins/gen/textureGather/c55822.wgsl
new file mode 100644
index 0000000..2cebaac
--- /dev/null
+++ b/test/builtins/gen/textureGather/c55822.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_cube_array<i32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<i32>
+fn textureGather_c55822() {
+  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec3<f32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_c55822();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_c55822();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_c55822();
+}
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl b/test/builtins/gen/textureGather/c55822.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c55822.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/c55822.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.hlsl b/test/builtins/gen/textureGather/c55822.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c55822.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/c55822.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.msl b/test/builtins/gen/textureGather/c55822.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c55822.wgsl.expected.msl
rename to test/builtins/gen/textureGather/c55822.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.spvasm b/test/builtins/gen/textureGather/c55822.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/c55822.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/c55822.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl.expected.wgsl b/test/builtins/gen/textureGather/c55822.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/c55822.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/c55822.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/e1b67d.wgsl b/test/builtins/gen/textureGather/e1b67d.wgsl
new file mode 100644
index 0000000..9341319
--- /dev/null
+++ b/test/builtins/gen/textureGather/e1b67d.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_cube<u32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_cube<u32>, sampler: sampler, coords: vec3<f32>) -> vec4<u32>
+fn textureGather_e1b67d() {
+  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_e1b67d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_e1b67d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_e1b67d();
+}
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/e1b67d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.hlsl b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/e1b67d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.msl b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.msl
rename to test/builtins/gen/textureGather/e1b67d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.spvasm b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/e1b67d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.wgsl b/test/builtins/gen/textureGather/e1b67d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e1b67d.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/e1b67d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/e9eff6.wgsl b/test/builtins/gen/textureGather/e9eff6.wgsl
new file mode 100644
index 0000000..bccabe3
--- /dev/null
+++ b/test/builtins/gen/textureGather/e9eff6.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d<u32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>) -> vec4<u32>
+fn textureGather_e9eff6() {
+  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_e9eff6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_e9eff6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_e9eff6();
+}
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/e9eff6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.hlsl b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/e9eff6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.msl b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.msl
rename to test/builtins/gen/textureGather/e9eff6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.spvasm b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/e9eff6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.wgsl b/test/builtins/gen/textureGather/e9eff6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/e9eff6.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/e9eff6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/f5f3ba.wgsl b/test/builtins/gen/textureGather/f5f3ba.wgsl
new file mode 100644
index 0000000..1d83ce1
--- /dev/null
+++ b/test/builtins/gen/textureGather/f5f3ba.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_2d_array<u32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<u32>
+fn textureGather_f5f3ba() {
+  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_f5f3ba();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_f5f3ba();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_f5f3ba();
+}
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/f5f3ba.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.hlsl b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/f5f3ba.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.msl b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.msl
rename to test/builtins/gen/textureGather/f5f3ba.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.spvasm b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/f5f3ba.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.wgsl b/test/builtins/gen/textureGather/f5f3ba.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f5f3ba.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/f5f3ba.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGather/f7995a.wgsl b/test/builtins/gen/textureGather/f7995a.wgsl
new file mode 100644
index 0000000..2960054
--- /dev/null
+++ b/test/builtins/gen/textureGather/f7995a.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(1) var arg_1: texture_cube<i32>;
+@group(1) @binding(2) var arg_2: sampler;
+
+// fn textureGather(component: i32, texture: texture_cube<i32>, sampler: sampler, coords: vec3<f32>) -> vec4<i32>
+fn textureGather_f7995a() {
+  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGather_f7995a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGather_f7995a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGather_f7995a();
+}
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl b/test/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f7995a.wgsl.expected.glsl
rename to test/builtins/gen/textureGather/f7995a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.hlsl b/test/builtins/gen/textureGather/f7995a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f7995a.wgsl.expected.hlsl
rename to test/builtins/gen/textureGather/f7995a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.msl b/test/builtins/gen/textureGather/f7995a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f7995a.wgsl.expected.msl
rename to test/builtins/gen/textureGather/f7995a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.spvasm b/test/builtins/gen/textureGather/f7995a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGather/f7995a.wgsl.expected.spvasm
rename to test/builtins/gen/textureGather/f7995a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl.expected.wgsl b/test/builtins/gen/textureGather/f7995a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGather/f7995a.wgsl.expected.wgsl
rename to test/builtins/gen/textureGather/f7995a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGatherCompare/182fd4.wgsl b/test/builtins/gen/textureGatherCompare/182fd4.wgsl
new file mode 100644
index 0000000..c62de56
--- /dev/null
+++ b/test/builtins/gen/textureGatherCompare/182fd4.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32>
+fn textureGatherCompare_182fd4() {
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGatherCompare_182fd4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGatherCompare_182fd4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGatherCompare_182fd4();
+}
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
rename to test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.hlsl b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.hlsl
rename to test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.msl
rename to test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.spvasm b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.spvasm
rename to test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.wgsl b/test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/182fd4.wgsl.expected.wgsl
rename to test/builtins/gen/textureGatherCompare/182fd4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGatherCompare/60d2d1.wgsl b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl
new file mode 100644
index 0000000..5baa378
--- /dev/null
+++ b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
+fn textureGatherCompare_60d2d1() {
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGatherCompare_60d2d1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGatherCompare_60d2d1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGatherCompare_60d2d1();
+}
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
rename to test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.hlsl b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.hlsl
rename to test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.msl
rename to test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.spvasm b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.spvasm
rename to test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.wgsl b/test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl.expected.wgsl
rename to test/builtins/gen/textureGatherCompare/60d2d1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGatherCompare/6d9352.wgsl b/test/builtins/gen/textureGatherCompare/6d9352.wgsl
new file mode 100644
index 0000000..e9edc14
--- /dev/null
+++ b/test/builtins/gen/textureGatherCompare/6d9352.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32>
+fn textureGatherCompare_6d9352() {
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGatherCompare_6d9352();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGatherCompare_6d9352();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGatherCompare_6d9352();
+}
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
rename to test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.hlsl b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.hlsl
rename to test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.msl
rename to test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.spvasm b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.spvasm
rename to test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.wgsl b/test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6d9352.wgsl.expected.wgsl
rename to test/builtins/gen/textureGatherCompare/6d9352.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGatherCompare/6f1267.wgsl b/test/builtins/gen/textureGatherCompare/6f1267.wgsl
new file mode 100644
index 0000000..19e744d
--- /dev/null
+++ b/test/builtins/gen/textureGatherCompare/6f1267.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> vec4<f32>
+fn textureGatherCompare_6f1267() {
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGatherCompare_6f1267();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGatherCompare_6f1267();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGatherCompare_6f1267();
+}
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
rename to test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.hlsl b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.hlsl
rename to test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.msl
rename to test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.spvasm b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.spvasm
rename to test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.wgsl b/test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/6f1267.wgsl.expected.wgsl
rename to test/builtins/gen/textureGatherCompare/6f1267.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGatherCompare/783e65.wgsl b/test/builtins/gen/textureGatherCompare/783e65.wgsl
new file mode 100644
index 0000000..7801019
--- /dev/null
+++ b/test/builtins/gen/textureGatherCompare/783e65.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
+fn textureGatherCompare_783e65() {
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGatherCompare_783e65();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGatherCompare_783e65();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGatherCompare_783e65();
+}
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.glsl
rename to test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.hlsl b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.hlsl
rename to test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.msl
rename to test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.spvasm b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.spvasm
rename to test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.wgsl b/test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/783e65.wgsl.expected.wgsl
rename to test/builtins/gen/textureGatherCompare/783e65.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureGatherCompare/a5f587.wgsl b/test/builtins/gen/textureGatherCompare/a5f587.wgsl
new file mode 100644
index 0000000..fe285c7
--- /dev/null
+++ b/test/builtins/gen/textureGatherCompare/a5f587.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> vec4<f32>
+fn textureGatherCompare_a5f587() {
+  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureGatherCompare_a5f587();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureGatherCompare_a5f587();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureGatherCompare_a5f587();
+}
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
rename to test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.hlsl b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.hlsl
rename to test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.msl b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.msl
rename to test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.spvasm b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.spvasm
rename to test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.wgsl b/test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureGatherCompare/a5f587.wgsl.expected.wgsl
rename to test/builtins/gen/textureGatherCompare/a5f587.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/19cf87.wgsl b/test/builtins/gen/textureLoad/19cf87.wgsl
new file mode 100644
index 0000000..9d91de0
--- /dev/null
+++ b/test/builtins/gen/textureLoad/19cf87.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+
+// fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32
+fn textureLoad_19cf87() {
+  var res: f32 = textureLoad(arg_0, vec2<i32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_19cf87();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_19cf87();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_19cf87();
+}
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/19cf87.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/19cf87.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.msl b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/19cf87.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/19cf87.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/19cf87.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/19cf87.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/19cf87.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/1b8588.wgsl b/test/builtins/gen/textureLoad/1b8588.wgsl
new file mode 100644
index 0000000..ba23838
--- /dev/null
+++ b/test/builtins/gen/textureLoad/1b8588.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<u32>;
+
+// fn textureLoad(texture: texture_1d<u32>, coords: i32, level: i32) -> vec4<u32>
+fn textureLoad_1b8588() {
+  var res: vec4<u32> = textureLoad(arg_0, 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_1b8588();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_1b8588();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_1b8588();
+}
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/1b8588.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/1b8588.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.msl b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/1b8588.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/1b8588.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/1b8588.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1b8588.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/1b8588.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/1f2016.wgsl b/test/builtins/gen/textureLoad/1f2016.wgsl
new file mode 100644
index 0000000..64354c3
--- /dev/null
+++ b/test/builtins/gen/textureLoad/1f2016.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+
+// fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: i32) -> vec4<f32>
+fn textureLoad_1f2016() {
+  var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_1f2016();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_1f2016();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_1f2016();
+}
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/1f2016.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/1f2016.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.msl b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/1f2016.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/1f2016.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/1f2016.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/1f2016.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/1f2016.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/484344.wgsl b/test/builtins/gen/textureLoad/484344.wgsl
new file mode 100644
index 0000000..b82bb67
--- /dev/null
+++ b/test/builtins/gen/textureLoad/484344.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+
+// fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: i32) -> vec4<f32>
+fn textureLoad_484344() {
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_484344();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_484344();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_484344();
+}
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl b/test/builtins/gen/textureLoad/484344.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/484344.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/484344.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/484344.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/484344.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/484344.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.msl b/test/builtins/gen/textureLoad/484344.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/484344.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/484344.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/484344.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/484344.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/484344.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/484344.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/484344.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/484344.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/4fd803.wgsl b/test/builtins/gen/textureLoad/4fd803.wgsl
new file mode 100644
index 0000000..34fac87
--- /dev/null
+++ b/test/builtins/gen/textureLoad/4fd803.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<i32>;
+
+// fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: i32) -> vec4<i32>
+fn textureLoad_4fd803() {
+  var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_4fd803();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_4fd803();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_4fd803();
+}
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/4fd803.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/4fd803.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.msl b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/4fd803.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/4fd803.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/4fd803.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/4fd803.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/4fd803.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/5a2f9d.wgsl b/test/builtins/gen/textureLoad/5a2f9d.wgsl
new file mode 100644
index 0000000..f03d92c
--- /dev/null
+++ b/test/builtins/gen/textureLoad/5a2f9d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<i32>;
+
+// fn textureLoad(texture: texture_1d<i32>, coords: i32, level: i32) -> vec4<i32>
+fn textureLoad_5a2f9d() {
+  var res: vec4<i32> = textureLoad(arg_0, 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_5a2f9d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_5a2f9d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_5a2f9d();
+}
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.msl b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/5a2f9d.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/5a2f9d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/6154d4.wgsl b/test/builtins/gen/textureLoad/6154d4.wgsl
new file mode 100644
index 0000000..1d4e4b1
--- /dev/null
+++ b/test/builtins/gen/textureLoad/6154d4.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<u32>;
+
+// fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: i32) -> vec4<u32>
+fn textureLoad_6154d4() {
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_6154d4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_6154d4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_6154d4();
+}
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/6154d4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/6154d4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.msl b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/6154d4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/6154d4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/6154d4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6154d4.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/6154d4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/6273b1.wgsl b/test/builtins/gen/textureLoad/6273b1.wgsl
new file mode 100644
index 0000000..0ae2f4e
--- /dev/null
+++ b/test/builtins/gen/textureLoad/6273b1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
+
+// fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32
+fn textureLoad_6273b1() {
+  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_6273b1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_6273b1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_6273b1();
+}
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/6273b1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/6273b1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.msl b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/6273b1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/6273b1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/6273b1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/6273b1.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/6273b1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/79e697.wgsl b/test/builtins/gen/textureLoad/79e697.wgsl
new file mode 100644
index 0000000..3104323
--- /dev/null
+++ b/test/builtins/gen/textureLoad/79e697.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
+
+// fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<i32>
+fn textureLoad_79e697() {
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_79e697();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_79e697();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_79e697();
+}
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl b/test/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/79e697.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/79e697.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/79e697.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/79e697.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/79e697.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.msl b/test/builtins/gen/textureLoad/79e697.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/79e697.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/79e697.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/79e697.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/79e697.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/79e697.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/79e697.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/79e697.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/79e697.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/7c90e5.wgsl b/test/builtins/gen/textureLoad/7c90e5.wgsl
new file mode 100644
index 0000000..54a7a17
--- /dev/null
+++ b/test/builtins/gen/textureLoad/7c90e5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
+
+// fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<u32>
+fn textureLoad_7c90e5() {
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_7c90e5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_7c90e5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_7c90e5();
+}
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/7c90e5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/7c90e5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.msl b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/7c90e5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/7c90e5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/7c90e5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/7c90e5.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/7c90e5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/81c381.wgsl b/test/builtins/gen/textureLoad/81c381.wgsl
new file mode 100644
index 0000000..7bcc8cd
--- /dev/null
+++ b/test/builtins/gen/textureLoad/81c381.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<f32>;
+
+// fn textureLoad(texture: texture_1d<f32>, coords: i32, level: i32) -> vec4<f32>
+fn textureLoad_81c381() {
+  var res: vec4<f32> = textureLoad(arg_0, 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_81c381();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_81c381();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_81c381();
+}
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl b/test/builtins/gen/textureLoad/81c381.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/81c381.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/81c381.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/81c381.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/81c381.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/81c381.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.msl b/test/builtins/gen/textureLoad/81c381.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/81c381.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/81c381.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/81c381.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/81c381.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/81c381.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/81c381.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/81c381.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/81c381.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/87be85.wgsl b/test/builtins/gen/textureLoad/87be85.wgsl
new file mode 100644
index 0000000..5317dab
--- /dev/null
+++ b/test/builtins/gen/textureLoad/87be85.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+
+// fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<f32>
+fn textureLoad_87be85() {
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_87be85();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_87be85();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_87be85();
+}
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl b/test/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/87be85.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/87be85.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/87be85.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/87be85.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/87be85.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.msl b/test/builtins/gen/textureLoad/87be85.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/87be85.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/87be85.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/87be85.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/87be85.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/87be85.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/87be85.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/87be85.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/87be85.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/8acf41.wgsl b/test/builtins/gen/textureLoad/8acf41.wgsl
new file mode 100644
index 0000000..02bcc10
--- /dev/null
+++ b/test/builtins/gen/textureLoad/8acf41.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_external;
+
+// fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32>
+fn textureLoad_8acf41() {
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_8acf41();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_8acf41();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_8acf41();
+}
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/8acf41.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.msl b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/8acf41.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/8acf41.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/8acf41.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/8acf41.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/8acf41.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/9b2667.wgsl b/test/builtins/gen/textureLoad/9b2667.wgsl
new file mode 100644
index 0000000..df70318
--- /dev/null
+++ b/test/builtins/gen/textureLoad/9b2667.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+
+// fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32
+fn textureLoad_9b2667() {
+  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_9b2667();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_9b2667();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_9b2667();
+}
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/9b2667.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/9b2667.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.msl b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/9b2667.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/9b2667.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/9b2667.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/9b2667.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/9b2667.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/a583c9.wgsl b/test/builtins/gen/textureLoad/a583c9.wgsl
new file mode 100644
index 0000000..1c8e21d
--- /dev/null
+++ b/test/builtins/gen/textureLoad/a583c9.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
+
+// fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: i32) -> vec4<f32>
+fn textureLoad_a583c9() {
+  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_a583c9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_a583c9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_a583c9();
+}
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/a583c9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/a583c9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.msl b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/a583c9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/a583c9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/a583c9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a583c9.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/a583c9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/a9a9f5.wgsl b/test/builtins/gen/textureLoad/a9a9f5.wgsl
new file mode 100644
index 0000000..83d4755
--- /dev/null
+++ b/test/builtins/gen/textureLoad/a9a9f5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<u32>;
+
+// fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: i32) -> vec4<u32>
+fn textureLoad_a9a9f5() {
+  var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_a9a9f5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_a9a9f5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_a9a9f5();
+}
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.msl b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/a9a9f5.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/a9a9f5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/c2a480.wgsl b/test/builtins/gen/textureLoad/c2a480.wgsl
new file mode 100644
index 0000000..cc70b1a
--- /dev/null
+++ b/test/builtins/gen/textureLoad/c2a480.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<i32>;
+
+// fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: i32) -> vec4<i32>
+fn textureLoad_c2a480() {
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_c2a480();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_c2a480();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_c2a480();
+}
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/c2a480.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/c2a480.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.msl b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/c2a480.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/c2a480.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/c2a480.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c2a480.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/c2a480.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/c378ee.wgsl b/test/builtins/gen/textureLoad/c378ee.wgsl
new file mode 100644
index 0000000..3c34a60
--- /dev/null
+++ b/test/builtins/gen/textureLoad/c378ee.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
+
+// fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: i32) -> vec4<u32>
+fn textureLoad_c378ee() {
+  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_c378ee();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_c378ee();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_c378ee();
+}
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/c378ee.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/c378ee.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.msl b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/c378ee.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/c378ee.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/c378ee.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/c378ee.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/c378ee.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureLoad/e3d2cc.wgsl b/test/builtins/gen/textureLoad/e3d2cc.wgsl
new file mode 100644
index 0000000..bc5ddf7
--- /dev/null
+++ b/test/builtins/gen/textureLoad/e3d2cc.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
+
+// fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: i32) -> vec4<i32>
+fn textureLoad_e3d2cc() {
+  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_e3d2cc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureLoad_e3d2cc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureLoad_e3d2cc();
+}
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.glsl
rename to test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.hlsl b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.hlsl
rename to test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.msl b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.msl
rename to test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.spvasm b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.spvasm
rename to test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.wgsl b/test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureLoad/e3d2cc.wgsl.expected.wgsl
rename to test/builtins/gen/textureLoad/e3d2cc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/024820.wgsl b/test/builtins/gen/textureNumLayers/024820.wgsl
new file mode 100644
index 0000000..c812b9d
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/024820.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+
+// fn textureNumLayers(texture: texture_2d_array<f32>) -> i32
+fn textureNumLayers_024820() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_024820();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_024820();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_024820();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/024820.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/024820.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/024820.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/024820.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/024820.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/024820.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/024820.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/053df7.wgsl b/test/builtins/gen/textureNumLayers/053df7.wgsl
new file mode 100644
index 0000000..1322b40
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/053df7.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
+
+// fn textureNumLayers(texture: texture_cube_array<u32>) -> i32
+fn textureNumLayers_053df7() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_053df7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_053df7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_053df7();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/053df7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/053df7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/053df7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/053df7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/053df7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/053df7.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/053df7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/058cc3.wgsl b/test/builtins/gen/textureNumLayers/058cc3.wgsl
new file mode 100644
index 0000000..30263b7
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/058cc3.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, write>) -> i32
+fn textureNumLayers_058cc3() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_058cc3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_058cc3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_058cc3();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/058cc3.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/058cc3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/09d05d.wgsl b/test/builtins/gen/textureNumLayers/09d05d.wgsl
new file mode 100644
index 0000000..d3d8aef
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/09d05d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, write>) -> i32
+fn textureNumLayers_09d05d() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_09d05d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_09d05d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_09d05d();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/09d05d.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/09d05d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/13b4ce.wgsl b/test/builtins/gen/textureNumLayers/13b4ce.wgsl
new file mode 100644
index 0000000..ced8911
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/13b4ce.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, write>) -> i32
+fn textureNumLayers_13b4ce() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_13b4ce();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_13b4ce();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_13b4ce();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/13b4ce.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/13b4ce.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/22e53b.wgsl b/test/builtins/gen/textureNumLayers/22e53b.wgsl
new file mode 100644
index 0000000..fee9bca
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/22e53b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<r32sint, write>) -> i32
+fn textureNumLayers_22e53b() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_22e53b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_22e53b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_22e53b();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/22e53b.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/22e53b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/562013.wgsl b/test/builtins/gen/textureNumLayers/562013.wgsl
new file mode 100644
index 0000000..df02d84
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/562013.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, write>) -> i32
+fn textureNumLayers_562013() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_562013();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_562013();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_562013();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/562013.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/562013.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/562013.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/562013.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/562013.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/562013.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/562013.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/5d59cd.wgsl b/test/builtins/gen/textureNumLayers/5d59cd.wgsl
new file mode 100644
index 0000000..339d2f0
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/5d59cd.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+
+// fn textureNumLayers(texture: texture_cube_array<f32>) -> i32
+fn textureNumLayers_5d59cd() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_5d59cd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_5d59cd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_5d59cd();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/5d59cd.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/5d59cd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/68a65b.wgsl b/test/builtins/gen/textureNumLayers/68a65b.wgsl
new file mode 100644
index 0000000..fdaf92b
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/68a65b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, write>) -> i32
+fn textureNumLayers_68a65b() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_68a65b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_68a65b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_68a65b();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/68a65b.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/68a65b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/778bd1.wgsl b/test/builtins/gen/textureNumLayers/778bd1.wgsl
new file mode 100644
index 0000000..a3c4ddc
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/778bd1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+
+// fn textureNumLayers(texture: texture_depth_cube_array) -> i32
+fn textureNumLayers_778bd1() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_778bd1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_778bd1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_778bd1();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/778bd1.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/778bd1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/7f1937.wgsl b/test/builtins/gen/textureNumLayers/7f1937.wgsl
new file mode 100644
index 0000000..1cbfaff
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/7f1937.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rg32float, write>) -> i32
+fn textureNumLayers_7f1937() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_7f1937();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_7f1937();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_7f1937();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/7f1937.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/7f1937.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/85f980.wgsl b/test/builtins/gen/textureNumLayers/85f980.wgsl
new file mode 100644
index 0000000..83d405a
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/85f980.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
+
+// fn textureNumLayers(texture: texture_cube_array<i32>) -> i32
+fn textureNumLayers_85f980() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_85f980();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_85f980();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_85f980();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/85f980.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/85f980.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/85f980.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/85f980.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/85f980.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/85f980.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/85f980.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/87953e.wgsl b/test/builtins/gen/textureNumLayers/87953e.wgsl
new file mode 100644
index 0000000..8fcd190
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/87953e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
+
+// fn textureNumLayers(texture: texture_2d_array<u32>) -> i32
+fn textureNumLayers_87953e() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_87953e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_87953e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_87953e();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/87953e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/87953e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/87953e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/87953e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/87953e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/87953e.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/87953e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/893e7c.wgsl b/test/builtins/gen/textureNumLayers/893e7c.wgsl
new file mode 100644
index 0000000..f583a9f
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/893e7c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
+
+// fn textureNumLayers(texture: texture_2d_array<i32>) -> i32
+fn textureNumLayers_893e7c() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_893e7c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_893e7c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_893e7c();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/893e7c.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/893e7c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/9700fb.wgsl b/test/builtins/gen/textureNumLayers/9700fb.wgsl
new file mode 100644
index 0000000..07d1e40
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/9700fb.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, write>) -> i32
+fn textureNumLayers_9700fb() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_9700fb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_9700fb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_9700fb();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/9700fb.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/9700fb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/a216d2.wgsl b/test/builtins/gen/textureNumLayers/a216d2.wgsl
new file mode 100644
index 0000000..991471e
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/a216d2.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, write>) -> i32
+fn textureNumLayers_a216d2() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_a216d2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_a216d2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_a216d2();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/a216d2.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/a216d2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/cd5dc8.wgsl b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl
new file mode 100644
index 0000000..8351f88
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, write>) -> i32
+fn textureNumLayers_cd5dc8() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_cd5dc8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_cd5dc8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_cd5dc8();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/cd5dc8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/d5b228.wgsl b/test/builtins/gen/textureNumLayers/d5b228.wgsl
new file mode 100644
index 0000000..ee873c1
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/d5b228.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<r32float, write>) -> i32
+fn textureNumLayers_d5b228() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_d5b228();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_d5b228();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_d5b228();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/d5b228.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/d5b228.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/e31be1.wgsl b/test/builtins/gen/textureNumLayers/e31be1.wgsl
new file mode 100644
index 0000000..4c3a5ee
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/e31be1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, write>) -> i32
+fn textureNumLayers_e31be1() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_e31be1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_e31be1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_e31be1();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e31be1.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/e31be1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/e653c0.wgsl b/test/builtins/gen/textureNumLayers/e653c0.wgsl
new file mode 100644
index 0000000..d033b73
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/e653c0.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+
+// fn textureNumLayers(texture: texture_depth_2d_array) -> i32
+fn textureNumLayers_e653c0() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_e653c0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_e653c0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_e653c0();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/e653c0.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/e653c0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/ee942f.wgsl b/test/builtins/gen/textureNumLayers/ee942f.wgsl
new file mode 100644
index 0000000..b995bd8
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/ee942f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<r32uint, write>) -> i32
+fn textureNumLayers_ee942f() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_ee942f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_ee942f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_ee942f();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ee942f.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/ee942f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/f33005.wgsl b/test/builtins/gen/textureNumLayers/f33005.wgsl
new file mode 100644
index 0000000..38c5eff
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/f33005.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, write>) -> i32
+fn textureNumLayers_f33005() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_f33005();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_f33005();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_f33005();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/f33005.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/f33005.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/f33005.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/f33005.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/f33005.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/f33005.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/f33005.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/fcec98.wgsl b/test/builtins/gen/textureNumLayers/fcec98.wgsl
new file mode 100644
index 0000000..845f7cb
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/fcec98.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, write>) -> i32
+fn textureNumLayers_fcec98() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_fcec98();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_fcec98();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_fcec98();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/fcec98.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/fcec98.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLayers/ff5e89.wgsl b/test/builtins/gen/textureNumLayers/ff5e89.wgsl
new file mode 100644
index 0000000..a641eed
--- /dev/null
+++ b/test/builtins/gen/textureNumLayers/ff5e89.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
+
+// fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, write>) -> i32
+fn textureNumLayers_ff5e89() {
+  var res: i32 = textureNumLayers(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLayers_ff5e89();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLayers_ff5e89();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLayers_ff5e89();
+}
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.hlsl b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.msl b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.msl
rename to test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.wgsl b/test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLayers/ff5e89.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLayers/ff5e89.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/076cb5.wgsl b/test/builtins/gen/textureNumLevels/076cb5.wgsl
new file mode 100644
index 0000000..574393a
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/076cb5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+
+// fn textureNumLevels(texture: texture_depth_cube) -> i32
+fn textureNumLevels_076cb5() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_076cb5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_076cb5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_076cb5();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/076cb5.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/076cb5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/080d95.wgsl b/test/builtins/gen/textureNumLevels/080d95.wgsl
new file mode 100644
index 0000000..31a1cc0
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/080d95.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<i32>;
+
+// fn textureNumLevels(texture: texture_cube<i32>) -> i32
+fn textureNumLevels_080d95() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_080d95();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_080d95();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_080d95();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/080d95.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/080d95.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/080d95.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/080d95.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/080d95.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/080d95.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/080d95.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/09ddd0.wgsl b/test/builtins/gen/textureNumLevels/09ddd0.wgsl
new file mode 100644
index 0000000..90e763b
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/09ddd0.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<u32>;
+
+// fn textureNumLevels(texture: texture_2d<u32>) -> i32
+fn textureNumLevels_09ddd0() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_09ddd0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_09ddd0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_09ddd0();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/09ddd0.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/09ddd0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/105988.wgsl b/test/builtins/gen/textureNumLevels/105988.wgsl
new file mode 100644
index 0000000..1bc80d2
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/105988.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+
+// fn textureNumLevels(texture: texture_2d_array<f32>) -> i32
+fn textureNumLevels_105988() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_105988();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_105988();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_105988();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/105988.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/105988.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/105988.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/105988.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/105988.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/105988.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/105988.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/1e6f3b.wgsl b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl
new file mode 100644
index 0000000..b053b55
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<u32>;
+
+// fn textureNumLevels(texture: texture_1d<u32>) -> i32
+fn textureNumLevels_1e6f3b() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_1e6f3b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_1e6f3b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_1e6f3b();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/1e6f3b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/23f750.wgsl b/test/builtins/gen/textureNumLevels/23f750.wgsl
new file mode 100644
index 0000000..8b1d5a0
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/23f750.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<i32>;
+
+// fn textureNumLevels(texture: texture_2d<i32>) -> i32
+fn textureNumLevels_23f750() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_23f750();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_23f750();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_23f750();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/23f750.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/23f750.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/23f750.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/23f750.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/23f750.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/23f750.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/23f750.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/2c3575.wgsl b/test/builtins/gen/textureNumLevels/2c3575.wgsl
new file mode 100644
index 0000000..1b4e271
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/2c3575.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+
+// fn textureNumLevels(texture: texture_depth_cube_array) -> i32
+fn textureNumLevels_2c3575() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_2c3575();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_2c3575();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_2c3575();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/2c3575.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/2c3575.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/32a0ae.wgsl b/test/builtins/gen/textureNumLevels/32a0ae.wgsl
new file mode 100644
index 0000000..64a18fc
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/32a0ae.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<i32>;
+
+// fn textureNumLevels(texture: texture_1d<i32>) -> i32
+fn textureNumLevels_32a0ae() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_32a0ae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_32a0ae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_32a0ae();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/32a0ae.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/32a0ae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/5101cf.wgsl b/test/builtins/gen/textureNumLevels/5101cf.wgsl
new file mode 100644
index 0000000..c487f7a
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/5101cf.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
+
+// fn textureNumLevels(texture: texture_2d_array<u32>) -> i32
+fn textureNumLevels_5101cf() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_5101cf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_5101cf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_5101cf();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/5101cf.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/5101cf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/51b5bb.wgsl b/test/builtins/gen/textureNumLevels/51b5bb.wgsl
new file mode 100644
index 0000000..4697f32
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/51b5bb.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<f32>;
+
+// fn textureNumLevels(texture: texture_1d<f32>) -> i32
+fn textureNumLevels_51b5bb() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_51b5bb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_51b5bb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_51b5bb();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/51b5bb.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/51b5bb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/897aaf.wgsl b/test/builtins/gen/textureNumLevels/897aaf.wgsl
new file mode 100644
index 0000000..4416fd7
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/897aaf.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<f32>;
+
+// fn textureNumLevels(texture: texture_cube<f32>) -> i32
+fn textureNumLevels_897aaf() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_897aaf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_897aaf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_897aaf();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/897aaf.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/897aaf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/9da7a5.wgsl b/test/builtins/gen/textureNumLevels/9da7a5.wgsl
new file mode 100644
index 0000000..922f518
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/9da7a5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<i32>;
+
+// fn textureNumLevels(texture: texture_3d<i32>) -> i32
+fn textureNumLevels_9da7a5() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_9da7a5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_9da7a5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_9da7a5();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/9da7a5.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/9da7a5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/a91c03.wgsl b/test/builtins/gen/textureNumLevels/a91c03.wgsl
new file mode 100644
index 0000000..c69f645
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/a91c03.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
+
+// fn textureNumLevels(texture: texture_cube_array<i32>) -> i32
+fn textureNumLevels_a91c03() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_a91c03();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_a91c03();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_a91c03();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/a91c03.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/a91c03.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/aee7c8.wgsl b/test/builtins/gen/textureNumLevels/aee7c8.wgsl
new file mode 100644
index 0000000..6f1ca33
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/aee7c8.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+
+// fn textureNumLevels(texture: texture_cube_array<f32>) -> i32
+fn textureNumLevels_aee7c8() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_aee7c8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_aee7c8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_aee7c8();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/aee7c8.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/aee7c8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/b1b12b.wgsl b/test/builtins/gen/textureNumLevels/b1b12b.wgsl
new file mode 100644
index 0000000..b2cfd09
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/b1b12b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+
+// fn textureNumLevels(texture: texture_depth_2d) -> i32
+fn textureNumLevels_b1b12b() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_b1b12b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_b1b12b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_b1b12b();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b1b12b.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/b1b12b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/b4f5ea.wgsl b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl
new file mode 100644
index 0000000..b83d5d1
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<u32>;
+
+// fn textureNumLevels(texture: texture_3d<u32>) -> i32
+fn textureNumLevels_b4f5ea() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_b4f5ea();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_b4f5ea();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_b4f5ea();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/b4f5ea.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/d004a9.wgsl b/test/builtins/gen/textureNumLevels/d004a9.wgsl
new file mode 100644
index 0000000..11cd5ec
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/d004a9.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
+
+// fn textureNumLevels(texture: texture_2d_array<i32>) -> i32
+fn textureNumLevels_d004a9() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_d004a9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_d004a9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_d004a9();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/d004a9.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/d004a9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/dca09e.wgsl b/test/builtins/gen/textureNumLevels/dca09e.wgsl
new file mode 100644
index 0000000..69431a6
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/dca09e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+
+// fn textureNumLevels(texture: texture_3d<f32>) -> i32
+fn textureNumLevels_dca09e() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_dca09e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_dca09e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_dca09e();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/dca09e.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/dca09e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/e67231.wgsl b/test/builtins/gen/textureNumLevels/e67231.wgsl
new file mode 100644
index 0000000..1f965ba
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/e67231.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+
+// fn textureNumLevels(texture: texture_2d<f32>) -> i32
+fn textureNumLevels_e67231() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_e67231();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_e67231();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_e67231();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/e67231.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/e67231.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/e67231.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/e67231.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/e67231.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/e67231.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/e67231.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/ed078b.wgsl b/test/builtins/gen/textureNumLevels/ed078b.wgsl
new file mode 100644
index 0000000..d9a8320
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/ed078b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<u32>;
+
+// fn textureNumLevels(texture: texture_cube<u32>) -> i32
+fn textureNumLevels_ed078b() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_ed078b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_ed078b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_ed078b();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/ed078b.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/ed078b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/f46ec6.wgsl b/test/builtins/gen/textureNumLevels/f46ec6.wgsl
new file mode 100644
index 0000000..ed727a0
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/f46ec6.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
+
+// fn textureNumLevels(texture: texture_cube_array<u32>) -> i32
+fn textureNumLevels_f46ec6() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_f46ec6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_f46ec6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_f46ec6();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f46ec6.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/f46ec6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumLevels/f5828d.wgsl b/test/builtins/gen/textureNumLevels/f5828d.wgsl
new file mode 100644
index 0000000..3619b7c
--- /dev/null
+++ b/test/builtins/gen/textureNumLevels/f5828d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+
+// fn textureNumLevels(texture: texture_depth_2d_array) -> i32
+fn textureNumLevels_f5828d() {
+  var res: i32 = textureNumLevels(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumLevels_f5828d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumLevels_f5828d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumLevels_f5828d();
+}
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.glsl
rename to test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.hlsl b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.msl b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.msl
rename to test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.spvasm b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.wgsl b/test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumLevels/f5828d.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumLevels/f5828d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumSamples/2c6f14.wgsl b/test/builtins/gen/textureNumSamples/2c6f14.wgsl
new file mode 100644
index 0000000..327bfce
--- /dev/null
+++ b/test/builtins/gen/textureNumSamples/2c6f14.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
+
+// fn textureNumSamples(texture: texture_multisampled_2d<f32>) -> i32
+fn textureNumSamples_2c6f14() {
+  var res: i32 = textureNumSamples(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumSamples_2c6f14();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumSamples_2c6f14();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumSamples_2c6f14();
+}
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
rename to test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.hlsl b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.msl
rename to test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.spvasm b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.wgsl b/test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/2c6f14.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumSamples/2c6f14.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumSamples/42f8bb.wgsl b/test/builtins/gen/textureNumSamples/42f8bb.wgsl
new file mode 100644
index 0000000..3e64edd
--- /dev/null
+++ b/test/builtins/gen/textureNumSamples/42f8bb.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
+
+// fn textureNumSamples(texture: texture_multisampled_2d<u32>) -> i32
+fn textureNumSamples_42f8bb() {
+  var res: i32 = textureNumSamples(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumSamples_42f8bb();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumSamples_42f8bb();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumSamples_42f8bb();
+}
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
rename to test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.hlsl b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.msl
rename to test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.spvasm b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.wgsl b/test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/42f8bb.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumSamples/42f8bb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumSamples/449d23.wgsl b/test/builtins/gen/textureNumSamples/449d23.wgsl
new file mode 100644
index 0000000..51be43a
--- /dev/null
+++ b/test/builtins/gen/textureNumSamples/449d23.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
+
+// fn textureNumSamples(texture: texture_multisampled_2d<i32>) -> i32
+fn textureNumSamples_449d23() {
+  var res: i32 = textureNumSamples(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumSamples_449d23();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumSamples_449d23();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumSamples_449d23();
+}
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.glsl
rename to test/builtins/gen/textureNumSamples/449d23.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.hlsl b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumSamples/449d23.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.msl
rename to test/builtins/gen/textureNumSamples/449d23.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.spvasm b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumSamples/449d23.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.wgsl b/test/builtins/gen/textureNumSamples/449d23.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/449d23.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumSamples/449d23.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureNumSamples/a3c8a0.wgsl b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl
new file mode 100644
index 0000000..f0f05fd
--- /dev/null
+++ b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
+
+// fn textureNumSamples(texture: texture_depth_multisampled_2d) -> i32
+fn textureNumSamples_a3c8a0() {
+  var res: i32 = textureNumSamples(arg_0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureNumSamples_a3c8a0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureNumSamples_a3c8a0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureNumSamples_a3c8a0();
+}
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
rename to test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.hlsl b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.hlsl
rename to test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.msl b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.msl
rename to test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.spvasm b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.spvasm
rename to test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.wgsl b/test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl.expected.wgsl
rename to test/builtins/gen/textureNumSamples/a3c8a0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/02aa9b.wgsl b/test/builtins/gen/textureSample/02aa9b.wgsl
new file mode 100644
index 0000000..f5070fc
--- /dev/null
+++ b/test/builtins/gen/textureSample/02aa9b.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32>
+fn textureSample_02aa9b() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1, vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_02aa9b();
+}
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl b/test/builtins/gen/textureSample/02aa9b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/02aa9b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.hlsl b/test/builtins/gen/textureSample/02aa9b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/02aa9b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.msl b/test/builtins/gen/textureSample/02aa9b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.msl
rename to test/builtins/gen/textureSample/02aa9b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.spvasm b/test/builtins/gen/textureSample/02aa9b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/02aa9b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.wgsl b/test/builtins/gen/textureSample/02aa9b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/02aa9b.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/02aa9b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/100dc0.wgsl b/test/builtins/gen/textureSample/100dc0.wgsl
new file mode 100644
index 0000000..3bf6d64
--- /dev/null
+++ b/test/builtins/gen/textureSample/100dc0.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, offset: vec3<i32>) -> vec4<f32>
+fn textureSample_100dc0() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), vec3<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_100dc0();
+}
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl b/test/builtins/gen/textureSample/100dc0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/100dc0.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/100dc0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.hlsl b/test/builtins/gen/textureSample/100dc0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/100dc0.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/100dc0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.msl b/test/builtins/gen/textureSample/100dc0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/100dc0.wgsl.expected.msl
rename to test/builtins/gen/textureSample/100dc0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.spvasm b/test/builtins/gen/textureSample/100dc0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/100dc0.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/100dc0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl.expected.wgsl b/test/builtins/gen/textureSample/100dc0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/100dc0.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/100dc0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/38bbb9.wgsl b/test/builtins/gen/textureSample/38bbb9.wgsl
new file mode 100644
index 0000000..cf78f1e
--- /dev/null
+++ b/test/builtins/gen/textureSample/38bbb9.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32
+fn textureSample_38bbb9() {
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_38bbb9();
+}
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl b/test/builtins/gen/textureSample/38bbb9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/38bbb9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.hlsl b/test/builtins/gen/textureSample/38bbb9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/38bbb9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.msl b/test/builtins/gen/textureSample/38bbb9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.msl
rename to test/builtins/gen/textureSample/38bbb9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.spvasm b/test/builtins/gen/textureSample/38bbb9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/38bbb9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.wgsl b/test/builtins/gen/textureSample/38bbb9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/38bbb9.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/38bbb9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/3b50bd.wgsl b/test/builtins/gen/textureSample/3b50bd.wgsl
new file mode 100644
index 0000000..1e6fcfa
--- /dev/null
+++ b/test/builtins/gen/textureSample/3b50bd.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
+fn textureSample_3b50bd() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_3b50bd();
+}
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl b/test/builtins/gen/textureSample/3b50bd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/3b50bd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.hlsl b/test/builtins/gen/textureSample/3b50bd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/3b50bd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.msl b/test/builtins/gen/textureSample/3b50bd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.msl
rename to test/builtins/gen/textureSample/3b50bd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.spvasm b/test/builtins/gen/textureSample/3b50bd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/3b50bd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.wgsl b/test/builtins/gen/textureSample/3b50bd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/3b50bd.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/3b50bd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/4dd1bf.wgsl b/test/builtins/gen/textureSample/4dd1bf.wgsl
new file mode 100644
index 0000000..e4d0327
--- /dev/null
+++ b/test/builtins/gen/textureSample/4dd1bf.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
+fn textureSample_4dd1bf() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_4dd1bf();
+}
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl b/test/builtins/gen/textureSample/4dd1bf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/4dd1bf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.hlsl b/test/builtins/gen/textureSample/4dd1bf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/4dd1bf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.msl b/test/builtins/gen/textureSample/4dd1bf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.msl
rename to test/builtins/gen/textureSample/4dd1bf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.spvasm b/test/builtins/gen/textureSample/4dd1bf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/4dd1bf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.wgsl b/test/builtins/gen/textureSample/4dd1bf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/4dd1bf.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/4dd1bf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/51b514.wgsl b/test/builtins/gen/textureSample/51b514.wgsl
new file mode 100644
index 0000000..4c3b2da
--- /dev/null
+++ b/test/builtins/gen/textureSample/51b514.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
+fn textureSample_51b514() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_51b514();
+}
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl b/test/builtins/gen/textureSample/51b514.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/51b514.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/51b514.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.hlsl b/test/builtins/gen/textureSample/51b514.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/51b514.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/51b514.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.msl b/test/builtins/gen/textureSample/51b514.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/51b514.wgsl.expected.msl
rename to test/builtins/gen/textureSample/51b514.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.spvasm b/test/builtins/gen/textureSample/51b514.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/51b514.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/51b514.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl.expected.wgsl b/test/builtins/gen/textureSample/51b514.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/51b514.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/51b514.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/667d76.wgsl b/test/builtins/gen/textureSample/667d76.wgsl
new file mode 100644
index 0000000..387a0bf
--- /dev/null
+++ b/test/builtins/gen/textureSample/667d76.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> f32
+fn textureSample_667d76() {
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_667d76();
+}
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl b/test/builtins/gen/textureSample/667d76.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/667d76.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/667d76.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.hlsl b/test/builtins/gen/textureSample/667d76.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/667d76.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/667d76.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.msl b/test/builtins/gen/textureSample/667d76.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/667d76.wgsl.expected.msl
rename to test/builtins/gen/textureSample/667d76.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.spvasm b/test/builtins/gen/textureSample/667d76.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/667d76.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/667d76.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl.expected.wgsl b/test/builtins/gen/textureSample/667d76.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/667d76.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/667d76.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/6717ca.wgsl b/test/builtins/gen/textureSample/6717ca.wgsl
new file mode 100644
index 0000000..85157dd
--- /dev/null
+++ b/test/builtins/gen/textureSample/6717ca.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
+fn textureSample_6717ca() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_6717ca();
+}
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl b/test/builtins/gen/textureSample/6717ca.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6717ca.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/6717ca.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.hlsl b/test/builtins/gen/textureSample/6717ca.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6717ca.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/6717ca.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.msl b/test/builtins/gen/textureSample/6717ca.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6717ca.wgsl.expected.msl
rename to test/builtins/gen/textureSample/6717ca.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.spvasm b/test/builtins/gen/textureSample/6717ca.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/6717ca.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/6717ca.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl.expected.wgsl b/test/builtins/gen/textureSample/6717ca.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6717ca.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/6717ca.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/6e64fb.wgsl b/test/builtins/gen/textureSample/6e64fb.wgsl
new file mode 100644
index 0000000..e1277dc
--- /dev/null
+++ b/test/builtins/gen/textureSample/6e64fb.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_1d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32>
+fn textureSample_6e64fb() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_6e64fb();
+}
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl b/test/builtins/gen/textureSample/6e64fb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/6e64fb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.hlsl b/test/builtins/gen/textureSample/6e64fb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/6e64fb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.msl b/test/builtins/gen/textureSample/6e64fb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.msl
rename to test/builtins/gen/textureSample/6e64fb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.spvasm b/test/builtins/gen/textureSample/6e64fb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/6e64fb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.wgsl b/test/builtins/gen/textureSample/6e64fb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/6e64fb.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/6e64fb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/7c3baa.wgsl b/test/builtins/gen/textureSample/7c3baa.wgsl
new file mode 100644
index 0000000..571ae07
--- /dev/null
+++ b/test/builtins/gen/textureSample/7c3baa.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
+fn textureSample_7c3baa() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_7c3baa();
+}
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl b/test/builtins/gen/textureSample/7c3baa.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/7c3baa.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.hlsl b/test/builtins/gen/textureSample/7c3baa.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/7c3baa.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.msl b/test/builtins/gen/textureSample/7c3baa.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.msl
rename to test/builtins/gen/textureSample/7c3baa.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.spvasm b/test/builtins/gen/textureSample/7c3baa.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/7c3baa.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.wgsl b/test/builtins/gen/textureSample/7c3baa.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7c3baa.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/7c3baa.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/7e9ffd.wgsl b/test/builtins/gen/textureSample/7e9ffd.wgsl
new file mode 100644
index 0000000..f6b9fd6
--- /dev/null
+++ b/test/builtins/gen/textureSample/7e9ffd.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> f32
+fn textureSample_7e9ffd() {
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_7e9ffd();
+}
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl b/test/builtins/gen/textureSample/7e9ffd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/7e9ffd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.hlsl b/test/builtins/gen/textureSample/7e9ffd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/7e9ffd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.msl b/test/builtins/gen/textureSample/7e9ffd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.msl
rename to test/builtins/gen/textureSample/7e9ffd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.spvasm b/test/builtins/gen/textureSample/7e9ffd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/7e9ffd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.wgsl b/test/builtins/gen/textureSample/7e9ffd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/7e9ffd.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/7e9ffd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/8522e7.wgsl b/test/builtins/gen/textureSample/8522e7.wgsl
new file mode 100644
index 0000000..2121c79
--- /dev/null
+++ b/test/builtins/gen/textureSample/8522e7.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> f32
+fn textureSample_8522e7() {
+  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1, vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_8522e7();
+}
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl b/test/builtins/gen/textureSample/8522e7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/8522e7.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/8522e7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.hlsl b/test/builtins/gen/textureSample/8522e7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/8522e7.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/8522e7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.msl b/test/builtins/gen/textureSample/8522e7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/8522e7.wgsl.expected.msl
rename to test/builtins/gen/textureSample/8522e7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.spvasm b/test/builtins/gen/textureSample/8522e7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/8522e7.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/8522e7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl.expected.wgsl b/test/builtins/gen/textureSample/8522e7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/8522e7.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/8522e7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/c2f4e8.wgsl b/test/builtins/gen/textureSample/c2f4e8.wgsl
new file mode 100644
index 0000000..504966c
--- /dev/null
+++ b/test/builtins/gen/textureSample/c2f4e8.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> f32
+fn textureSample_c2f4e8() {
+  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(), 1);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_c2f4e8();
+}
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl b/test/builtins/gen/textureSample/c2f4e8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/c2f4e8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.hlsl b/test/builtins/gen/textureSample/c2f4e8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/c2f4e8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.msl b/test/builtins/gen/textureSample/c2f4e8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.msl
rename to test/builtins/gen/textureSample/c2f4e8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.spvasm b/test/builtins/gen/textureSample/c2f4e8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/c2f4e8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.wgsl b/test/builtins/gen/textureSample/c2f4e8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/c2f4e8.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/c2f4e8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/e53267.wgsl b/test/builtins/gen/textureSample/e53267.wgsl
new file mode 100644
index 0000000..f4611db
--- /dev/null
+++ b/test/builtins/gen/textureSample/e53267.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
+fn textureSample_e53267() {
+  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_e53267();
+}
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl b/test/builtins/gen/textureSample/e53267.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/e53267.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/e53267.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.hlsl b/test/builtins/gen/textureSample/e53267.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/e53267.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/e53267.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.msl b/test/builtins/gen/textureSample/e53267.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/e53267.wgsl.expected.msl
rename to test/builtins/gen/textureSample/e53267.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.spvasm b/test/builtins/gen/textureSample/e53267.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/e53267.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/e53267.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl.expected.wgsl b/test/builtins/gen/textureSample/e53267.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/e53267.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/e53267.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSample/ea7030.wgsl b/test/builtins/gen/textureSample/ea7030.wgsl
new file mode 100644
index 0000000..ae40c4e
--- /dev/null
+++ b/test/builtins/gen/textureSample/ea7030.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32
+fn textureSample_ea7030() {
+  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSample_ea7030();
+}
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl b/test/builtins/gen/textureSample/ea7030.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/ea7030.wgsl.expected.glsl
rename to test/builtins/gen/textureSample/ea7030.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.hlsl b/test/builtins/gen/textureSample/ea7030.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/ea7030.wgsl.expected.hlsl
rename to test/builtins/gen/textureSample/ea7030.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.msl b/test/builtins/gen/textureSample/ea7030.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSample/ea7030.wgsl.expected.msl
rename to test/builtins/gen/textureSample/ea7030.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.spvasm b/test/builtins/gen/textureSample/ea7030.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSample/ea7030.wgsl.expected.spvasm
rename to test/builtins/gen/textureSample/ea7030.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl.expected.wgsl b/test/builtins/gen/textureSample/ea7030.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSample/ea7030.wgsl.expected.wgsl
rename to test/builtins/gen/textureSample/ea7030.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/53b9f7.wgsl b/test/builtins/gen/textureSampleBias/53b9f7.wgsl
new file mode 100644
index 0000000..14f0a89
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/53b9f7.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
+fn textureSampleBias_53b9f7() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_53b9f7();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/53b9f7.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/53b9f7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/65ac50.wgsl b/test/builtins/gen/textureSampleBias/65ac50.wgsl
new file mode 100644
index 0000000..1fdb307
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/65ac50.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32, offset: vec2<i32>) -> vec4<f32>
+fn textureSampleBias_65ac50() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_65ac50();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/65ac50.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/65ac50.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/6a9113.wgsl b/test/builtins/gen/textureSampleBias/6a9113.wgsl
new file mode 100644
index 0000000..6d2e058
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/6a9113.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32>
+fn textureSampleBias_6a9113() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_6a9113();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/6a9113.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/6a9113.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/80e579.wgsl b/test/builtins/gen/textureSampleBias/80e579.wgsl
new file mode 100644
index 0000000..3fed9f3
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/80e579.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32) -> vec4<f32>
+fn textureSampleBias_80e579() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1, 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_80e579();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/80e579.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/80e579.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/80e579.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/80e579.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/80e579.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/80e579.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/80e579.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/80e579.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/80e579.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/80e579.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/80e579.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/81c19a.wgsl b/test/builtins/gen/textureSampleBias/81c19a.wgsl
new file mode 100644
index 0000000..7bd26b4
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/81c19a.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, offset: vec2<i32>) -> vec4<f32>
+fn textureSampleBias_81c19a() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_81c19a();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/81c19a.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/81c19a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/d3fa1b.wgsl b/test/builtins/gen/textureSampleBias/d3fa1b.wgsl
new file mode 100644
index 0000000..8eaa91d
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/d3fa1b.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
+fn textureSampleBias_d3fa1b() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_d3fa1b();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/d3fa1b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/df91bb.wgsl b/test/builtins/gen/textureSampleBias/df91bb.wgsl
new file mode 100644
index 0000000..88b1003
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/df91bb.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32, offset: vec3<i32>) -> vec4<f32>
+fn textureSampleBias_df91bb() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0, vec3<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_df91bb();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/df91bb.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/df91bb.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleBias/eed7c4.wgsl b/test/builtins/gen/textureSampleBias/eed7c4.wgsl
new file mode 100644
index 0000000..14a3307
--- /dev/null
+++ b/test/builtins/gen/textureSampleBias/eed7c4.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, bias: f32) -> vec4<f32>
+fn textureSampleBias_eed7c4() {
+  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1, 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleBias_eed7c4();
+}
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl b/test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl b/test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.msl b/test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.msl
rename to test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm b/test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.wgsl b/test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleBias/eed7c4.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleBias/eed7c4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompare/25fcd1.wgsl b/test/builtins/gen/textureSampleCompare/25fcd1.wgsl
new file mode 100644
index 0000000..c72a430
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompare/25fcd1.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32
+fn textureSampleCompare_25fcd1() {
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompare_25fcd1();
+}
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.msl b/test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompare/25fcd1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompare/3a5923.wgsl b/test/builtins/gen/textureSampleCompare/3a5923.wgsl
new file mode 100644
index 0000000..39453fe
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompare/3a5923.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
+fn textureSampleCompare_3a5923() {
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompare_3a5923();
+}
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.msl b/test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/3a5923.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompare/3a5923.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompare/63fb83.wgsl b/test/builtins/gen/textureSampleCompare/63fb83.wgsl
new file mode 100644
index 0000000..a056ddd
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompare/63fb83.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
+fn textureSampleCompare_63fb83() {
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompare_63fb83();
+}
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.msl b/test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/63fb83.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompare/63fb83.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompare/98b85c.wgsl b/test/builtins/gen/textureSampleCompare/98b85c.wgsl
new file mode 100644
index 0000000..2e8e5d9
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompare/98b85c.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32
+fn textureSampleCompare_98b85c() {
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompare_98b85c();
+}
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.msl b/test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/98b85c.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompare/98b85c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl b/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl
new file mode 100644
index 0000000..23127fd
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
+fn textureSampleCompare_a3ca7e() {
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1, 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompare_a3ca7e();
+}
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.msl b/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompare/dd431d.wgsl b/test/builtins/gen/textureSampleCompare/dd431d.wgsl
new file mode 100644
index 0000000..226c953
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompare/dd431d.wgsl
@@ -0,0 +1,36 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
+fn textureSampleCompare_dd431d() {
+  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0);
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompare_dd431d();
+}
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.msl b/test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompare/dd431d.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompare/dd431d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl
new file mode 100644
index 0000000..0a998bd
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32
+fn textureSampleCompareLevel_011a8f() {
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleCompareLevel_011a8f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompareLevel_011a8f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleCompareLevel_011a8f();
+}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompareLevel/011a8f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl
new file mode 100644
index 0000000..1dd53b7
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
+fn textureSampleCompareLevel_1116ed() {
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleCompareLevel_1116ed();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompareLevel_1116ed();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleCompareLevel_1116ed();
+}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl
new file mode 100644
index 0000000..2d620a8
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
+fn textureSampleCompareLevel_1568e3() {
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleCompareLevel_1568e3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompareLevel_1568e3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleCompareLevel_1568e3();
+}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl
new file mode 100644
index 0000000..13451e8
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
+fn textureSampleCompareLevel_2ad2b1() {
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleCompareLevel_2ad2b1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompareLevel_2ad2b1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleCompareLevel_2ad2b1();
+}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl
new file mode 100644
index 0000000..2fbaf40
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
+fn textureSampleCompareLevel_4cf3a2() {
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleCompareLevel_4cf3a2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompareLevel_4cf3a2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleCompareLevel_4cf3a2();
+}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl
new file mode 100644
index 0000000..55617da
--- /dev/null
+++ b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler_comparison;
+
+// fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32
+fn textureSampleCompareLevel_f8121c() {
+  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleCompareLevel_f8121c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleCompareLevel_f8121c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleCompareLevel_f8121c();
+}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.hlsl b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl
rename to test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.wgsl b/test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleCompareLevel/f8121c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/21402b.wgsl b/test/builtins/gen/textureSampleGrad/21402b.wgsl
new file mode 100644
index 0000000..106be97
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/21402b.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
+fn textureSampleGrad_21402b() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_21402b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_21402b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_21402b();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/21402b.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/21402b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl
new file mode 100644
index 0000000..fa20488
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
+fn textureSampleGrad_2ecd8f() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1, vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_2ecd8f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_2ecd8f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_2ecd8f();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/468f88.wgsl b/test/builtins/gen/textureSampleGrad/468f88.wgsl
new file mode 100644
index 0000000..38cbf88
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/468f88.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
+fn textureSampleGrad_468f88() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_468f88();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_468f88();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_468f88();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/468f88.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/468f88.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/521263.wgsl b/test/builtins/gen/textureSampleGrad/521263.wgsl
new file mode 100644
index 0000000..7c9e0f3
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/521263.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
+fn textureSampleGrad_521263() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_521263();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_521263();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_521263();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/521263.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/521263.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/521263.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/521263.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/521263.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/521263.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/521263.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/5312f4.wgsl b/test/builtins/gen/textureSampleGrad/5312f4.wgsl
new file mode 100644
index 0000000..ceadd61
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/5312f4.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
+fn textureSampleGrad_5312f4() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_5312f4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_5312f4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_5312f4();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/5312f4.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/5312f4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/872f00.wgsl b/test/builtins/gen/textureSampleGrad/872f00.wgsl
new file mode 100644
index 0000000..adcfee3
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/872f00.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
+fn textureSampleGrad_872f00() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1, vec2<f32>(), vec2<f32>(), vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_872f00();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_872f00();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_872f00();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/872f00.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/872f00.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/e383db.wgsl b/test/builtins/gen/textureSampleGrad/e383db.wgsl
new file mode 100644
index 0000000..c5edcac
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/e383db.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
+fn textureSampleGrad_e383db() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), 1, vec3<f32>(), vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_e383db();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_e383db();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_e383db();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e383db.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/e383db.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl
new file mode 100644
index 0000000..ca07aeb
--- /dev/null
+++ b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>, offset: vec3<i32>) -> vec4<f32>
+fn textureSampleGrad_e9a2f7() {
+  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>(), vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleGrad_e9a2f7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleGrad_e9a2f7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleGrad_e9a2f7();
+}
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.hlsl b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl
rename to test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.wgsl b/test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleGrad/e9a2f7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/02be59.wgsl b/test/builtins/gen/textureSampleLevel/02be59.wgsl
new file mode 100644
index 0000000..b7c576c
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/02be59.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32) -> f32
+fn textureSampleLevel_02be59() {
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_02be59();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_02be59();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_02be59();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/02be59.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/02be59.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl
new file mode 100644
index 0000000..7f93103
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, level: f32) -> vec4<f32>
+fn textureSampleLevel_0bdd9a() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_0bdd9a();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_0bdd9a();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_0bdd9a();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/1b0291.wgsl b/test/builtins/gen/textureSampleLevel/1b0291.wgsl
new file mode 100644
index 0000000..21fe71d
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/1b0291.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: i32) -> f32
+fn textureSampleLevel_1b0291() {
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_1b0291();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_1b0291();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_1b0291();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1b0291.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/1b0291.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/1bf73e.wgsl b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl
new file mode 100644
index 0000000..33adc88
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32) -> f32
+fn textureSampleLevel_1bf73e() {
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_1bf73e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_1bf73e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_1bf73e();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/1bf73e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/302be4.wgsl b/test/builtins/gen/textureSampleLevel/302be4.wgsl
new file mode 100644
index 0000000..88fb77c
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/302be4.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32) -> vec4<f32>
+fn textureSampleLevel_302be4() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_302be4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_302be4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_302be4();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/302be4.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/302be4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/47daa4.wgsl b/test/builtins/gen/textureSampleLevel/47daa4.wgsl
new file mode 100644
index 0000000..9ddf9f0
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/47daa4.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32, offset: vec2<i32>) -> f32
+fn textureSampleLevel_47daa4() {
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_47daa4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_47daa4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_47daa4();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/47daa4.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/47daa4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/690d95.wgsl b/test/builtins/gen/textureSampleLevel/690d95.wgsl
new file mode 100644
index 0000000..678b4e4
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/690d95.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, offset: vec2<i32>) -> vec4<f32>
+fn textureSampleLevel_690d95() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_690d95();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_690d95();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_690d95();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/690d95.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/690d95.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/979816.wgsl b/test/builtins/gen/textureSampleLevel/979816.wgsl
new file mode 100644
index 0000000..b8a0045
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/979816.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_external;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
+fn textureSampleLevel_979816() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_979816();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_979816();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_979816();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/979816.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/979816.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/979816.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/979816.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/979816.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/9bd37b.wgsl b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl
new file mode 100644
index 0000000..3e8b5d3
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32, offset: vec3<i32>) -> vec4<f32>
+fn textureSampleLevel_9bd37b() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0, vec3<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_9bd37b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_9bd37b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_9bd37b();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/9bd37b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/a4af26.wgsl b/test/builtins/gen/textureSampleLevel/a4af26.wgsl
new file mode 100644
index 0000000..9a65ca3
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/a4af26.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32, offset: vec2<i32>) -> vec4<f32>
+fn textureSampleLevel_a4af26() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_a4af26();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_a4af26();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_a4af26();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/a4af26.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/a4af26.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/abfcc0.wgsl b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl
new file mode 100644
index 0000000..f5f2e29
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_3d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
+fn textureSampleLevel_abfcc0() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_abfcc0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_abfcc0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_abfcc0();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/abfcc0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/ae5e39.wgsl b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl
new file mode 100644
index 0000000..76bce20
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_cube_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: i32) -> f32
+fn textureSampleLevel_ae5e39() {
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1, 0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_ae5e39();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_ae5e39();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_ae5e39();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/ae5e39.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/ba93b3.wgsl b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl
new file mode 100644
index 0000000..c4d0a3d
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_depth_2d_array;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32, offset: vec2<i32>) -> f32
+fn textureSampleLevel_ba93b3() {
+  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 0, vec2<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_ba93b3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_ba93b3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_ba93b3();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/ba93b3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/c32df7.wgsl b/test/builtins/gen/textureSampleLevel/c32df7.wgsl
new file mode 100644
index 0000000..9cee583
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/c32df7.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_cube<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
+fn textureSampleLevel_c32df7() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_c32df7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_c32df7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_c32df7();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c32df7.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/c32df7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureSampleLevel/c6aca6.wgsl b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl
new file mode 100644
index 0000000..532b6c3
--- /dev/null
+++ b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl
@@ -0,0 +1,47 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_2d<f32>;
+@group(1) @binding(1) var arg_1: sampler;
+
+// fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32>
+fn textureSampleLevel_c6aca6() {
+  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleLevel_c6aca6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureSampleLevel_c6aca6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureSampleLevel_c6aca6();
+}
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
rename to test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.hlsl b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.hlsl
rename to test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.msl b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.msl
rename to test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm
rename to test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.wgsl b/test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl.expected.wgsl
rename to test/builtins/gen/textureSampleLevel/c6aca6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/05ce15.wgsl b/test/builtins/gen/textureStore/05ce15.wgsl
new file mode 100644
index 0000000..890e421
--- /dev/null
+++ b/test/builtins/gen/textureStore/05ce15.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba32float, write>, coords: vec2<i32>, value: vec4<f32>)
+fn textureStore_05ce15() {
+  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_05ce15();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_05ce15();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_05ce15();
+}
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl b/test/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/05ce15.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/05ce15.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.hlsl b/test/builtins/gen/textureStore/05ce15.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/05ce15.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/05ce15.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.msl b/test/builtins/gen/textureStore/05ce15.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/05ce15.wgsl.expected.msl
rename to test/builtins/gen/textureStore/05ce15.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm b/test/builtins/gen/textureStore/05ce15.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/05ce15.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/05ce15.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl.expected.wgsl b/test/builtins/gen/textureStore/05ce15.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/05ce15.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/05ce15.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/064c7f.wgsl b/test/builtins/gen/textureStore/064c7f.wgsl
new file mode 100644
index 0000000..a05b1ab
--- /dev/null
+++ b/test/builtins/gen/textureStore/064c7f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
+
+// fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<i32>, value: vec4<f32>)
+fn textureStore_064c7f() {
+  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_064c7f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_064c7f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_064c7f();
+}
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl b/test/builtins/gen/textureStore/064c7f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/064c7f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/064c7f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/064c7f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/064c7f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/064c7f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.msl b/test/builtins/gen/textureStore/064c7f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/064c7f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/064c7f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/064c7f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/064c7f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/064c7f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/064c7f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/064c7f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/064c7f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/068641.wgsl b/test/builtins/gen/textureStore/068641.wgsl
new file mode 100644
index 0000000..8f2cf0c
--- /dev/null
+++ b/test/builtins/gen/textureStore/068641.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba16uint, write>, coords: vec3<i32>, value: vec4<u32>)
+fn textureStore_068641() {
+  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_068641();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_068641();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_068641();
+}
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl b/test/builtins/gen/textureStore/068641.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/068641.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/068641.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.hlsl b/test/builtins/gen/textureStore/068641.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/068641.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/068641.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.msl b/test/builtins/gen/textureStore/068641.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/068641.wgsl.expected.msl
rename to test/builtins/gen/textureStore/068641.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm b/test/builtins/gen/textureStore/068641.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/068641.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/068641.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl.expected.wgsl b/test/builtins/gen/textureStore/068641.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/068641.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/068641.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/0af6b5.wgsl b/test/builtins/gen/textureStore/0af6b5.wgsl
new file mode 100644
index 0000000..aef7b6c
--- /dev/null
+++ b/test/builtins/gen/textureStore/0af6b5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<r32float, write>;
+
+// fn textureStore(texture: texture_storage_2d<r32float, write>, coords: vec2<i32>, value: vec4<f32>)
+fn textureStore_0af6b5() {
+  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_0af6b5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_0af6b5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_0af6b5();
+}
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/0af6b5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.hlsl b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/0af6b5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.msl b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.msl
rename to test/builtins/gen/textureStore/0af6b5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/0af6b5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.wgsl b/test/builtins/gen/textureStore/0af6b5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0af6b5.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/0af6b5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/0c3dff.wgsl b/test/builtins/gen/textureStore/0c3dff.wgsl
new file mode 100644
index 0000000..9d3b608
--- /dev/null
+++ b/test/builtins/gen/textureStore/0c3dff.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba16uint, write>, coords: vec2<i32>, value: vec4<u32>)
+fn textureStore_0c3dff() {
+  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_0c3dff();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_0c3dff();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_0c3dff();
+}
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/0c3dff.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.hlsl b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/0c3dff.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.msl b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.msl
rename to test/builtins/gen/textureStore/0c3dff.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/0c3dff.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.wgsl b/test/builtins/gen/textureStore/0c3dff.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/0c3dff.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/0c3dff.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/102722.wgsl b/test/builtins/gen/textureStore/102722.wgsl
new file mode 100644
index 0000000..48a2f6b
--- /dev/null
+++ b/test/builtins/gen/textureStore/102722.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, write>;
+
+// fn textureStore(texture: texture_storage_1d<r32uint, write>, coords: i32, value: vec4<u32>)
+fn textureStore_102722() {
+  textureStore(arg_0, 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_102722();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_102722();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_102722();
+}
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl b/test/builtins/gen/textureStore/102722.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/102722.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/102722.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.hlsl b/test/builtins/gen/textureStore/102722.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/102722.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/102722.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.msl b/test/builtins/gen/textureStore/102722.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/102722.wgsl.expected.msl
rename to test/builtins/gen/textureStore/102722.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm b/test/builtins/gen/textureStore/102722.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/102722.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/102722.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl.expected.wgsl b/test/builtins/gen/textureStore/102722.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/102722.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/102722.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/1bbd08.wgsl b/test/builtins/gen/textureStore/1bbd08.wgsl
new file mode 100644
index 0000000..709455e
--- /dev/null
+++ b/test/builtins/gen/textureStore/1bbd08.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba8unorm, write>, coords: vec3<i32>, value: vec4<f32>)
+fn textureStore_1bbd08() {
+  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_1bbd08();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_1bbd08();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_1bbd08();
+}
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/1bbd08.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.hlsl b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/1bbd08.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.msl b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.msl
rename to test/builtins/gen/textureStore/1bbd08.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/1bbd08.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.wgsl b/test/builtins/gen/textureStore/1bbd08.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1bbd08.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/1bbd08.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/1c02e7.wgsl b/test/builtins/gen/textureStore/1c02e7.wgsl
new file mode 100644
index 0000000..8d069d8
--- /dev/null
+++ b/test/builtins/gen/textureStore/1c02e7.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
+fn textureStore_1c02e7() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_1c02e7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_1c02e7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_1c02e7();
+}
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/1c02e7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/1c02e7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.msl b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.msl
rename to test/builtins/gen/textureStore/1c02e7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/1c02e7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.wgsl b/test/builtins/gen/textureStore/1c02e7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/1c02e7.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/1c02e7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/22d955.wgsl b/test/builtins/gen/textureStore/22d955.wgsl
new file mode 100644
index 0000000..cf8aeb1
--- /dev/null
+++ b/test/builtins/gen/textureStore/22d955.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
+fn textureStore_22d955() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_22d955();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_22d955();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_22d955();
+}
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl b/test/builtins/gen/textureStore/22d955.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/22d955.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/22d955.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl b/test/builtins/gen/textureStore/22d955.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/22d955.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/22d955.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.msl b/test/builtins/gen/textureStore/22d955.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/22d955.wgsl.expected.msl
rename to test/builtins/gen/textureStore/22d955.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm b/test/builtins/gen/textureStore/22d955.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/22d955.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/22d955.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl.expected.wgsl b/test/builtins/gen/textureStore/22d955.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/22d955.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/22d955.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/26bf70.wgsl b/test/builtins/gen/textureStore/26bf70.wgsl
new file mode 100644
index 0000000..68435b3
--- /dev/null
+++ b/test/builtins/gen/textureStore/26bf70.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba32uint, write>, coords: vec2<i32>, value: vec4<u32>)
+fn textureStore_26bf70() {
+  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_26bf70();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_26bf70();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_26bf70();
+}
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl b/test/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/26bf70.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/26bf70.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.hlsl b/test/builtins/gen/textureStore/26bf70.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/26bf70.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/26bf70.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.msl b/test/builtins/gen/textureStore/26bf70.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/26bf70.wgsl.expected.msl
rename to test/builtins/gen/textureStore/26bf70.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm b/test/builtins/gen/textureStore/26bf70.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/26bf70.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/26bf70.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl.expected.wgsl b/test/builtins/gen/textureStore/26bf70.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/26bf70.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/26bf70.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/2796b4.wgsl b/test/builtins/gen/textureStore/2796b4.wgsl
new file mode 100644
index 0000000..a6cb869
--- /dev/null
+++ b/test/builtins/gen/textureStore/2796b4.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<i32>, value: vec4<i32>)
+fn textureStore_2796b4() {
+  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_2796b4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_2796b4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_2796b4();
+}
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl b/test/builtins/gen/textureStore/2796b4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2796b4.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/2796b4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.hlsl b/test/builtins/gen/textureStore/2796b4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2796b4.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/2796b4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.msl b/test/builtins/gen/textureStore/2796b4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2796b4.wgsl.expected.msl
rename to test/builtins/gen/textureStore/2796b4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm b/test/builtins/gen/textureStore/2796b4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/2796b4.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/2796b4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl.expected.wgsl b/test/builtins/gen/textureStore/2796b4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2796b4.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/2796b4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/2ac6c7.wgsl b/test/builtins/gen/textureStore/2ac6c7.wgsl
new file mode 100644
index 0000000..c77c788
--- /dev/null
+++ b/test/builtins/gen/textureStore/2ac6c7.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<r32float, write>;
+
+// fn textureStore(texture: texture_storage_1d<r32float, write>, coords: i32, value: vec4<f32>)
+fn textureStore_2ac6c7() {
+  textureStore(arg_0, 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_2ac6c7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_2ac6c7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_2ac6c7();
+}
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/2ac6c7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.hlsl b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/2ac6c7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.msl b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.msl
rename to test/builtins/gen/textureStore/2ac6c7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/2ac6c7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.wgsl b/test/builtins/gen/textureStore/2ac6c7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ac6c7.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/2ac6c7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/2eb2a4.wgsl b/test/builtins/gen/textureStore/2eb2a4.wgsl
new file mode 100644
index 0000000..757a807
--- /dev/null
+++ b/test/builtins/gen/textureStore/2eb2a4.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba16uint, write>, coords: i32, value: vec4<u32>)
+fn textureStore_2eb2a4() {
+  textureStore(arg_0, 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_2eb2a4();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_2eb2a4();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_2eb2a4();
+}
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/2eb2a4.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.hlsl b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/2eb2a4.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.msl b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.msl
rename to test/builtins/gen/textureStore/2eb2a4.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/2eb2a4.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.wgsl b/test/builtins/gen/textureStore/2eb2a4.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2eb2a4.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/2eb2a4.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/2ed2a3.wgsl b/test/builtins/gen/textureStore/2ed2a3.wgsl
new file mode 100644
index 0000000..1116d06
--- /dev/null
+++ b/test/builtins/gen/textureStore/2ed2a3.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba8snorm, write>, coords: i32, value: vec4<f32>)
+fn textureStore_2ed2a3() {
+  textureStore(arg_0, 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_2ed2a3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_2ed2a3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_2ed2a3();
+}
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/2ed2a3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.hlsl b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/2ed2a3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.msl b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.msl
rename to test/builtins/gen/textureStore/2ed2a3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/2ed2a3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.wgsl b/test/builtins/gen/textureStore/2ed2a3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/2ed2a3.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/2ed2a3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/31745b.wgsl b/test/builtins/gen/textureStore/31745b.wgsl
new file mode 100644
index 0000000..92ba02e
--- /dev/null
+++ b/test/builtins/gen/textureStore/31745b.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<i32>, value: vec4<i32>)
+fn textureStore_31745b() {
+  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_31745b();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_31745b();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_31745b();
+}
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl b/test/builtins/gen/textureStore/31745b.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/31745b.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/31745b.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.hlsl b/test/builtins/gen/textureStore/31745b.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/31745b.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/31745b.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.msl b/test/builtins/gen/textureStore/31745b.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/31745b.wgsl.expected.msl
rename to test/builtins/gen/textureStore/31745b.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm b/test/builtins/gen/textureStore/31745b.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/31745b.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/31745b.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl.expected.wgsl b/test/builtins/gen/textureStore/31745b.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/31745b.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/31745b.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/32f368.wgsl b/test/builtins/gen/textureStore/32f368.wgsl
new file mode 100644
index 0000000..ac8b536
--- /dev/null
+++ b/test/builtins/gen/textureStore/32f368.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
+fn textureStore_32f368() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_32f368();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_32f368();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_32f368();
+}
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl b/test/builtins/gen/textureStore/32f368.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/32f368.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/32f368.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl b/test/builtins/gen/textureStore/32f368.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/32f368.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/32f368.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.msl b/test/builtins/gen/textureStore/32f368.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/32f368.wgsl.expected.msl
rename to test/builtins/gen/textureStore/32f368.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm b/test/builtins/gen/textureStore/32f368.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/32f368.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/32f368.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl.expected.wgsl b/test/builtins/gen/textureStore/32f368.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/32f368.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/32f368.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/331aee.wgsl b/test/builtins/gen/textureStore/331aee.wgsl
new file mode 100644
index 0000000..3297999
--- /dev/null
+++ b/test/builtins/gen/textureStore/331aee.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba32float, write>, coords: vec3<i32>, value: vec4<f32>)
+fn textureStore_331aee() {
+  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_331aee();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_331aee();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_331aee();
+}
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl b/test/builtins/gen/textureStore/331aee.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/331aee.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/331aee.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.hlsl b/test/builtins/gen/textureStore/331aee.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/331aee.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/331aee.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.msl b/test/builtins/gen/textureStore/331aee.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/331aee.wgsl.expected.msl
rename to test/builtins/gen/textureStore/331aee.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm b/test/builtins/gen/textureStore/331aee.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/331aee.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/331aee.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl.expected.wgsl b/test/builtins/gen/textureStore/331aee.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/331aee.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/331aee.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/38e8d7.wgsl b/test/builtins/gen/textureStore/38e8d7.wgsl
new file mode 100644
index 0000000..926527c
--- /dev/null
+++ b/test/builtins/gen/textureStore/38e8d7.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
+fn textureStore_38e8d7() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_38e8d7();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_38e8d7();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_38e8d7();
+}
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/38e8d7.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/38e8d7.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.msl b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.msl
rename to test/builtins/gen/textureStore/38e8d7.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/38e8d7.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.wgsl b/test/builtins/gen/textureStore/38e8d7.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/38e8d7.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/38e8d7.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/3a52ac.wgsl b/test/builtins/gen/textureStore/3a52ac.wgsl
new file mode 100644
index 0000000..46140cf
--- /dev/null
+++ b/test/builtins/gen/textureStore/3a52ac.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
+fn textureStore_3a52ac() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_3a52ac();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_3a52ac();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_3a52ac();
+}
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/3a52ac.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/3a52ac.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.msl b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.msl
rename to test/builtins/gen/textureStore/3a52ac.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/3a52ac.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.wgsl b/test/builtins/gen/textureStore/3a52ac.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3a52ac.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/3a52ac.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/3bb7a1.wgsl b/test/builtins/gen/textureStore/3bb7a1.wgsl
new file mode 100644
index 0000000..c033c45
--- /dev/null
+++ b/test/builtins/gen/textureStore/3bb7a1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
+fn textureStore_3bb7a1() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_3bb7a1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_3bb7a1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_3bb7a1();
+}
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/3bb7a1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/3bb7a1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.msl b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.msl
rename to test/builtins/gen/textureStore/3bb7a1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/3bb7a1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.wgsl b/test/builtins/gen/textureStore/3bb7a1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bb7a1.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/3bb7a1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/3bec15.wgsl b/test/builtins/gen/textureStore/3bec15.wgsl
new file mode 100644
index 0000000..38a0b2a
--- /dev/null
+++ b/test/builtins/gen/textureStore/3bec15.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba8uint, write>, coords: i32, value: vec4<u32>)
+fn textureStore_3bec15() {
+  textureStore(arg_0, 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_3bec15();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_3bec15();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_3bec15();
+}
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl b/test/builtins/gen/textureStore/3bec15.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bec15.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/3bec15.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.hlsl b/test/builtins/gen/textureStore/3bec15.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bec15.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/3bec15.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.msl b/test/builtins/gen/textureStore/3bec15.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bec15.wgsl.expected.msl
rename to test/builtins/gen/textureStore/3bec15.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm b/test/builtins/gen/textureStore/3bec15.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bec15.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/3bec15.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl.expected.wgsl b/test/builtins/gen/textureStore/3bec15.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/3bec15.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/3bec15.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/441ba8.wgsl b/test/builtins/gen/textureStore/441ba8.wgsl
new file mode 100644
index 0000000..40be067
--- /dev/null
+++ b/test/builtins/gen/textureStore/441ba8.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba32uint, write>, coords: vec3<i32>, value: vec4<u32>)
+fn textureStore_441ba8() {
+  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_441ba8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_441ba8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_441ba8();
+}
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl b/test/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/441ba8.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/441ba8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.hlsl b/test/builtins/gen/textureStore/441ba8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/441ba8.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/441ba8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.msl b/test/builtins/gen/textureStore/441ba8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/441ba8.wgsl.expected.msl
rename to test/builtins/gen/textureStore/441ba8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm b/test/builtins/gen/textureStore/441ba8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/441ba8.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/441ba8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl.expected.wgsl b/test/builtins/gen/textureStore/441ba8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/441ba8.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/441ba8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/4fc057.wgsl b/test/builtins/gen/textureStore/4fc057.wgsl
new file mode 100644
index 0000000..12c2b38
--- /dev/null
+++ b/test/builtins/gen/textureStore/4fc057.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
+fn textureStore_4fc057() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_4fc057();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_4fc057();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_4fc057();
+}
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl b/test/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/4fc057.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/4fc057.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl b/test/builtins/gen/textureStore/4fc057.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/4fc057.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/4fc057.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.msl b/test/builtins/gen/textureStore/4fc057.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/4fc057.wgsl.expected.msl
rename to test/builtins/gen/textureStore/4fc057.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm b/test/builtins/gen/textureStore/4fc057.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/4fc057.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/4fc057.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl.expected.wgsl b/test/builtins/gen/textureStore/4fc057.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/4fc057.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/4fc057.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/5a2f8f.wgsl b/test/builtins/gen/textureStore/5a2f8f.wgsl
new file mode 100644
index 0000000..10f1c5d
--- /dev/null
+++ b/test/builtins/gen/textureStore/5a2f8f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba16sint, write>, coords: i32, value: vec4<i32>)
+fn textureStore_5a2f8f() {
+  textureStore(arg_0, 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_5a2f8f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_5a2f8f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_5a2f8f();
+}
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/5a2f8f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/5a2f8f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.msl b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/5a2f8f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/5a2f8f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/5a2f8f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/5a2f8f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/5a2f8f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/60975f.wgsl b/test/builtins/gen/textureStore/60975f.wgsl
new file mode 100644
index 0000000..e73e4f0
--- /dev/null
+++ b/test/builtins/gen/textureStore/60975f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
+fn textureStore_60975f() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_60975f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_60975f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_60975f();
+}
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl b/test/builtins/gen/textureStore/60975f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/60975f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/60975f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/60975f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/60975f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/60975f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.msl b/test/builtins/gen/textureStore/60975f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/60975f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/60975f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/60975f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/60975f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/60975f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/60975f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/60975f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/60975f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/682fd6.wgsl b/test/builtins/gen/textureStore/682fd6.wgsl
new file mode 100644
index 0000000..68be6e3
--- /dev/null
+++ b/test/builtins/gen/textureStore/682fd6.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<i32>, value: vec4<u32>)
+fn textureStore_682fd6() {
+  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_682fd6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_682fd6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_682fd6();
+}
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl b/test/builtins/gen/textureStore/682fd6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/682fd6.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/682fd6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.hlsl b/test/builtins/gen/textureStore/682fd6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/682fd6.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/682fd6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.msl b/test/builtins/gen/textureStore/682fd6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/682fd6.wgsl.expected.msl
rename to test/builtins/gen/textureStore/682fd6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm b/test/builtins/gen/textureStore/682fd6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/682fd6.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/682fd6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl.expected.wgsl b/test/builtins/gen/textureStore/682fd6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/682fd6.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/682fd6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/6b75c3.wgsl b/test/builtins/gen/textureStore/6b75c3.wgsl
new file mode 100644
index 0000000..6ded5c1
--- /dev/null
+++ b/test/builtins/gen/textureStore/6b75c3.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba32float, write>, coords: i32, value: vec4<f32>)
+fn textureStore_6b75c3() {
+  textureStore(arg_0, 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_6b75c3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_6b75c3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_6b75c3();
+}
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/6b75c3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.hlsl b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/6b75c3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.msl b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.msl
rename to test/builtins/gen/textureStore/6b75c3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/6b75c3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.wgsl b/test/builtins/gen/textureStore/6b75c3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b75c3.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/6b75c3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/6b80d2.wgsl b/test/builtins/gen/textureStore/6b80d2.wgsl
new file mode 100644
index 0000000..dcd07a5
--- /dev/null
+++ b/test/builtins/gen/textureStore/6b80d2.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, write>;
+
+// fn textureStore(texture: texture_storage_1d<r32sint, write>, coords: i32, value: vec4<i32>)
+fn textureStore_6b80d2() {
+  textureStore(arg_0, 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_6b80d2();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_6b80d2();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_6b80d2();
+}
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/6b80d2.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.hlsl b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/6b80d2.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.msl b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.msl
rename to test/builtins/gen/textureStore/6b80d2.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/6b80d2.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.wgsl b/test/builtins/gen/textureStore/6b80d2.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6b80d2.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/6b80d2.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/6cff2e.wgsl b/test/builtins/gen/textureStore/6cff2e.wgsl
new file mode 100644
index 0000000..565fd4d
--- /dev/null
+++ b/test/builtins/gen/textureStore/6cff2e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, write>;
+
+// fn textureStore(texture: texture_storage_2d<r32uint, write>, coords: vec2<i32>, value: vec4<u32>)
+fn textureStore_6cff2e() {
+  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_6cff2e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_6cff2e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_6cff2e();
+}
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/6cff2e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.hlsl b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/6cff2e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.msl b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.msl
rename to test/builtins/gen/textureStore/6cff2e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/6cff2e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.wgsl b/test/builtins/gen/textureStore/6cff2e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6cff2e.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/6cff2e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/6da692.wgsl b/test/builtins/gen/textureStore/6da692.wgsl
new file mode 100644
index 0000000..0f147fb
--- /dev/null
+++ b/test/builtins/gen/textureStore/6da692.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
+fn textureStore_6da692() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_6da692();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_6da692();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_6da692();
+}
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl b/test/builtins/gen/textureStore/6da692.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6da692.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/6da692.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl b/test/builtins/gen/textureStore/6da692.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6da692.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/6da692.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.msl b/test/builtins/gen/textureStore/6da692.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6da692.wgsl.expected.msl
rename to test/builtins/gen/textureStore/6da692.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm b/test/builtins/gen/textureStore/6da692.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/6da692.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/6da692.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl.expected.wgsl b/test/builtins/gen/textureStore/6da692.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/6da692.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/6da692.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/731349.wgsl b/test/builtins/gen/textureStore/731349.wgsl
new file mode 100644
index 0000000..7082079
--- /dev/null
+++ b/test/builtins/gen/textureStore/731349.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba8unorm, write>, coords: vec2<i32>, value: vec4<f32>)
+fn textureStore_731349() {
+  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_731349();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_731349();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_731349();
+}
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl b/test/builtins/gen/textureStore/731349.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/731349.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/731349.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.hlsl b/test/builtins/gen/textureStore/731349.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/731349.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/731349.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.msl b/test/builtins/gen/textureStore/731349.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/731349.wgsl.expected.msl
rename to test/builtins/gen/textureStore/731349.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm b/test/builtins/gen/textureStore/731349.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/731349.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/731349.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl.expected.wgsl b/test/builtins/gen/textureStore/731349.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/731349.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/731349.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/752da6.wgsl b/test/builtins/gen/textureStore/752da6.wgsl
new file mode 100644
index 0000000..40c615c
--- /dev/null
+++ b/test/builtins/gen/textureStore/752da6.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba32sint, write>, coords: vec2<i32>, value: vec4<i32>)
+fn textureStore_752da6() {
+  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_752da6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_752da6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_752da6();
+}
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl b/test/builtins/gen/textureStore/752da6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/752da6.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/752da6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.hlsl b/test/builtins/gen/textureStore/752da6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/752da6.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/752da6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.msl b/test/builtins/gen/textureStore/752da6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/752da6.wgsl.expected.msl
rename to test/builtins/gen/textureStore/752da6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm b/test/builtins/gen/textureStore/752da6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/752da6.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/752da6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl.expected.wgsl b/test/builtins/gen/textureStore/752da6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/752da6.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/752da6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/77c0ae.wgsl b/test/builtins/gen/textureStore/77c0ae.wgsl
new file mode 100644
index 0000000..2a82ed7
--- /dev/null
+++ b/test/builtins/gen/textureStore/77c0ae.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba8uint, write>, coords: vec2<i32>, value: vec4<u32>)
+fn textureStore_77c0ae() {
+  textureStore(arg_0, vec2<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_77c0ae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_77c0ae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_77c0ae();
+}
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/77c0ae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.hlsl b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/77c0ae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.msl b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.msl
rename to test/builtins/gen/textureStore/77c0ae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/77c0ae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.wgsl b/test/builtins/gen/textureStore/77c0ae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/77c0ae.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/77c0ae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/7cec8d.wgsl b/test/builtins/gen/textureStore/7cec8d.wgsl
new file mode 100644
index 0000000..d3a2b80
--- /dev/null
+++ b/test/builtins/gen/textureStore/7cec8d.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
+fn textureStore_7cec8d() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_7cec8d();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_7cec8d();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_7cec8d();
+}
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/7cec8d.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/7cec8d.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.msl b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.msl
rename to test/builtins/gen/textureStore/7cec8d.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/7cec8d.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.wgsl b/test/builtins/gen/textureStore/7cec8d.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7cec8d.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/7cec8d.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/7f7fae.wgsl b/test/builtins/gen/textureStore/7f7fae.wgsl
new file mode 100644
index 0000000..589db22
--- /dev/null
+++ b/test/builtins/gen/textureStore/7f7fae.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba8unorm, write>, coords: i32, value: vec4<f32>)
+fn textureStore_7f7fae() {
+  textureStore(arg_0, 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_7f7fae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_7f7fae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_7f7fae();
+}
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/7f7fae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.hlsl b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/7f7fae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.msl b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.msl
rename to test/builtins/gen/textureStore/7f7fae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/7f7fae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.wgsl b/test/builtins/gen/textureStore/7f7fae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/7f7fae.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/7f7fae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/804942.wgsl b/test/builtins/gen/textureStore/804942.wgsl
new file mode 100644
index 0000000..bcdd0c7
--- /dev/null
+++ b/test/builtins/gen/textureStore/804942.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, write>;
+
+// fn textureStore(texture: texture_storage_2d<r32sint, write>, coords: vec2<i32>, value: vec4<i32>)
+fn textureStore_804942() {
+  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_804942();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_804942();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_804942();
+}
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl b/test/builtins/gen/textureStore/804942.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/804942.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/804942.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.hlsl b/test/builtins/gen/textureStore/804942.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/804942.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/804942.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.msl b/test/builtins/gen/textureStore/804942.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/804942.wgsl.expected.msl
rename to test/builtins/gen/textureStore/804942.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm b/test/builtins/gen/textureStore/804942.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/804942.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/804942.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl.expected.wgsl b/test/builtins/gen/textureStore/804942.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/804942.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/804942.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/805dae.wgsl b/test/builtins/gen/textureStore/805dae.wgsl
new file mode 100644
index 0000000..15061f9
--- /dev/null
+++ b/test/builtins/gen/textureStore/805dae.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba8snorm, write>, coords: vec2<i32>, value: vec4<f32>)
+fn textureStore_805dae() {
+  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_805dae();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_805dae();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_805dae();
+}
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl b/test/builtins/gen/textureStore/805dae.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/805dae.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/805dae.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.hlsl b/test/builtins/gen/textureStore/805dae.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/805dae.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/805dae.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.msl b/test/builtins/gen/textureStore/805dae.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/805dae.wgsl.expected.msl
rename to test/builtins/gen/textureStore/805dae.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm b/test/builtins/gen/textureStore/805dae.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/805dae.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/805dae.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl.expected.wgsl b/test/builtins/gen/textureStore/805dae.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/805dae.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/805dae.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/83bcc1.wgsl b/test/builtins/gen/textureStore/83bcc1.wgsl
new file mode 100644
index 0000000..1e13ead
--- /dev/null
+++ b/test/builtins/gen/textureStore/83bcc1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: i32, value: vec4<u32>)
+fn textureStore_83bcc1() {
+  textureStore(arg_0, 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_83bcc1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_83bcc1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_83bcc1();
+}
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/83bcc1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.hlsl b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/83bcc1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.msl b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.msl
rename to test/builtins/gen/textureStore/83bcc1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/83bcc1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.wgsl b/test/builtins/gen/textureStore/83bcc1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/83bcc1.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/83bcc1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/872747.wgsl b/test/builtins/gen/textureStore/872747.wgsl
new file mode 100644
index 0000000..8975750
--- /dev/null
+++ b/test/builtins/gen/textureStore/872747.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
+
+// fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: i32, value: vec4<f32>)
+fn textureStore_872747() {
+  textureStore(arg_0, 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_872747();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_872747();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_872747();
+}
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl b/test/builtins/gen/textureStore/872747.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/872747.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/872747.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.hlsl b/test/builtins/gen/textureStore/872747.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/872747.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/872747.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.msl b/test/builtins/gen/textureStore/872747.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/872747.wgsl.expected.msl
rename to test/builtins/gen/textureStore/872747.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm b/test/builtins/gen/textureStore/872747.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/872747.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/872747.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl.expected.wgsl b/test/builtins/gen/textureStore/872747.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/872747.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/872747.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/8e0479.wgsl b/test/builtins/gen/textureStore/8e0479.wgsl
new file mode 100644
index 0000000..265532c
--- /dev/null
+++ b/test/builtins/gen/textureStore/8e0479.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
+fn textureStore_8e0479() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_8e0479();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_8e0479();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_8e0479();
+}
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl b/test/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8e0479.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/8e0479.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl b/test/builtins/gen/textureStore/8e0479.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8e0479.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/8e0479.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.msl b/test/builtins/gen/textureStore/8e0479.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8e0479.wgsl.expected.msl
rename to test/builtins/gen/textureStore/8e0479.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm b/test/builtins/gen/textureStore/8e0479.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/8e0479.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/8e0479.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl.expected.wgsl b/test/builtins/gen/textureStore/8e0479.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8e0479.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/8e0479.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/8f71a1.wgsl b/test/builtins/gen/textureStore/8f71a1.wgsl
new file mode 100644
index 0000000..e2f77ff
--- /dev/null
+++ b/test/builtins/gen/textureStore/8f71a1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba16sint, write>, coords: vec3<i32>, value: vec4<i32>)
+fn textureStore_8f71a1() {
+  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_8f71a1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_8f71a1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_8f71a1();
+}
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/8f71a1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.hlsl b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/8f71a1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.msl b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.msl
rename to test/builtins/gen/textureStore/8f71a1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/8f71a1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.wgsl b/test/builtins/gen/textureStore/8f71a1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/8f71a1.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/8f71a1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/969534.wgsl b/test/builtins/gen/textureStore/969534.wgsl
new file mode 100644
index 0000000..c16476d
--- /dev/null
+++ b/test/builtins/gen/textureStore/969534.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba32sint, write>, coords: i32, value: vec4<i32>)
+fn textureStore_969534() {
+  textureStore(arg_0, 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_969534();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_969534();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_969534();
+}
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl b/test/builtins/gen/textureStore/969534.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/969534.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/969534.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.hlsl b/test/builtins/gen/textureStore/969534.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/969534.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/969534.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.msl b/test/builtins/gen/textureStore/969534.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/969534.wgsl.expected.msl
rename to test/builtins/gen/textureStore/969534.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm b/test/builtins/gen/textureStore/969534.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/969534.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/969534.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl.expected.wgsl b/test/builtins/gen/textureStore/969534.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/969534.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/969534.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/9a3ecc.wgsl b/test/builtins/gen/textureStore/9a3ecc.wgsl
new file mode 100644
index 0000000..0cb6232
--- /dev/null
+++ b/test/builtins/gen/textureStore/9a3ecc.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba32sint, write>, coords: vec3<i32>, value: vec4<i32>)
+fn textureStore_9a3ecc() {
+  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_9a3ecc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_9a3ecc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_9a3ecc();
+}
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/9a3ecc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.hlsl b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/9a3ecc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.msl b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.msl
rename to test/builtins/gen/textureStore/9a3ecc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/9a3ecc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.wgsl b/test/builtins/gen/textureStore/9a3ecc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9a3ecc.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/9a3ecc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/9d9cd5.wgsl b/test/builtins/gen/textureStore/9d9cd5.wgsl
new file mode 100644
index 0000000..514db90
--- /dev/null
+++ b/test/builtins/gen/textureStore/9d9cd5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
+fn textureStore_9d9cd5() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_9d9cd5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_9d9cd5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_9d9cd5();
+}
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/9d9cd5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/9d9cd5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.msl b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.msl
rename to test/builtins/gen/textureStore/9d9cd5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/9d9cd5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.wgsl b/test/builtins/gen/textureStore/9d9cd5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9d9cd5.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/9d9cd5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/9e3ec5.wgsl b/test/builtins/gen/textureStore/9e3ec5.wgsl
new file mode 100644
index 0000000..45a8963
--- /dev/null
+++ b/test/builtins/gen/textureStore/9e3ec5.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba16sint, write>, coords: vec2<i32>, value: vec4<i32>)
+fn textureStore_9e3ec5() {
+  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_9e3ec5();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_9e3ec5();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_9e3ec5();
+}
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/9e3ec5.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.hlsl b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/9e3ec5.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.msl b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.msl
rename to test/builtins/gen/textureStore/9e3ec5.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/9e3ec5.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.wgsl b/test/builtins/gen/textureStore/9e3ec5.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/9e3ec5.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/9e3ec5.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/ac67aa.wgsl b/test/builtins/gen/textureStore/ac67aa.wgsl
new file mode 100644
index 0000000..3431a53
--- /dev/null
+++ b/test/builtins/gen/textureStore/ac67aa.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<i32>, value: vec4<u32>)
+fn textureStore_ac67aa() {
+  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_ac67aa();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_ac67aa();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_ac67aa();
+}
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/ac67aa.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.hlsl b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/ac67aa.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.msl b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.msl
rename to test/builtins/gen/textureStore/ac67aa.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/ac67aa.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.wgsl b/test/builtins/gen/textureStore/ac67aa.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ac67aa.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/ac67aa.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/b706b1.wgsl b/test/builtins/gen/textureStore/b706b1.wgsl
new file mode 100644
index 0000000..3852067
--- /dev/null
+++ b/test/builtins/gen/textureStore/b706b1.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba8sint, write>, coords: vec3<i32>, value: vec4<i32>)
+fn textureStore_b706b1() {
+  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_b706b1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_b706b1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_b706b1();
+}
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl b/test/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/b706b1.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/b706b1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.hlsl b/test/builtins/gen/textureStore/b706b1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/b706b1.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/b706b1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.msl b/test/builtins/gen/textureStore/b706b1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/b706b1.wgsl.expected.msl
rename to test/builtins/gen/textureStore/b706b1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm b/test/builtins/gen/textureStore/b706b1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/b706b1.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/b706b1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl.expected.wgsl b/test/builtins/gen/textureStore/b706b1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/b706b1.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/b706b1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/bbcb7f.wgsl b/test/builtins/gen/textureStore/bbcb7f.wgsl
new file mode 100644
index 0000000..84d3a16
--- /dev/null
+++ b/test/builtins/gen/textureStore/bbcb7f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba8sint, write>, coords: vec2<i32>, value: vec4<i32>)
+fn textureStore_bbcb7f() {
+  textureStore(arg_0, vec2<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_bbcb7f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_bbcb7f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_bbcb7f();
+}
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/bbcb7f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/bbcb7f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.msl b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/bbcb7f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/bbcb7f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/bbcb7f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bbcb7f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/bbcb7f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/be6e30.wgsl b/test/builtins/gen/textureStore/be6e30.wgsl
new file mode 100644
index 0000000..92713bb
--- /dev/null
+++ b/test/builtins/gen/textureStore/be6e30.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, write>;
+
+// fn textureStore(texture: texture_storage_2d<rgba16float, write>, coords: vec2<i32>, value: vec4<f32>)
+fn textureStore_be6e30() {
+  textureStore(arg_0, vec2<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_be6e30();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_be6e30();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_be6e30();
+}
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl b/test/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/be6e30.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/be6e30.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.hlsl b/test/builtins/gen/textureStore/be6e30.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/be6e30.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/be6e30.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.msl b/test/builtins/gen/textureStore/be6e30.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/be6e30.wgsl.expected.msl
rename to test/builtins/gen/textureStore/be6e30.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm b/test/builtins/gen/textureStore/be6e30.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/be6e30.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/be6e30.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl.expected.wgsl b/test/builtins/gen/textureStore/be6e30.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/be6e30.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/be6e30.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/bf775c.wgsl b/test/builtins/gen/textureStore/bf775c.wgsl
new file mode 100644
index 0000000..5dc738f
--- /dev/null
+++ b/test/builtins/gen/textureStore/bf775c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba8sint, write>, coords: i32, value: vec4<i32>)
+fn textureStore_bf775c() {
+  textureStore(arg_0, 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_bf775c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_bf775c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_bf775c();
+}
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl b/test/builtins/gen/textureStore/bf775c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bf775c.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/bf775c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.hlsl b/test/builtins/gen/textureStore/bf775c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bf775c.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/bf775c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.msl b/test/builtins/gen/textureStore/bf775c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bf775c.wgsl.expected.msl
rename to test/builtins/gen/textureStore/bf775c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm b/test/builtins/gen/textureStore/bf775c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/bf775c.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/bf775c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl.expected.wgsl b/test/builtins/gen/textureStore/bf775c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/bf775c.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/bf775c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/c5af1e.wgsl b/test/builtins/gen/textureStore/c5af1e.wgsl
new file mode 100644
index 0000000..65b7ee8
--- /dev/null
+++ b/test/builtins/gen/textureStore/c5af1e.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba16float, write>, coords: vec3<i32>, value: vec4<f32>)
+fn textureStore_c5af1e() {
+  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_c5af1e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_c5af1e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_c5af1e();
+}
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/c5af1e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.hlsl b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/c5af1e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.msl b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.msl
rename to test/builtins/gen/textureStore/c5af1e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/c5af1e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.wgsl b/test/builtins/gen/textureStore/c5af1e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c5af1e.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/c5af1e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/c863be.wgsl b/test/builtins/gen/textureStore/c863be.wgsl
new file mode 100644
index 0000000..6b97911
--- /dev/null
+++ b/test/builtins/gen/textureStore/c863be.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
+fn textureStore_c863be() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_c863be();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_c863be();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_c863be();
+}
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl b/test/builtins/gen/textureStore/c863be.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c863be.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/c863be.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl b/test/builtins/gen/textureStore/c863be.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c863be.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/c863be.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.msl b/test/builtins/gen/textureStore/c863be.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c863be.wgsl.expected.msl
rename to test/builtins/gen/textureStore/c863be.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm b/test/builtins/gen/textureStore/c863be.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/c863be.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/c863be.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl.expected.wgsl b/test/builtins/gen/textureStore/c863be.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/c863be.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/c863be.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/d73b5c.wgsl b/test/builtins/gen/textureStore/d73b5c.wgsl
new file mode 100644
index 0000000..ff53404
--- /dev/null
+++ b/test/builtins/gen/textureStore/d73b5c.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: i32, value: vec4<i32>)
+fn textureStore_d73b5c() {
+  textureStore(arg_0, 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_d73b5c();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_d73b5c();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_d73b5c();
+}
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/d73b5c.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.hlsl b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/d73b5c.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.msl b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.msl
rename to test/builtins/gen/textureStore/d73b5c.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/d73b5c.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.wgsl b/test/builtins/gen/textureStore/d73b5c.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/d73b5c.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/d73b5c.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/dd7d81.wgsl b/test/builtins/gen/textureStore/dd7d81.wgsl
new file mode 100644
index 0000000..a9e5dda
--- /dev/null
+++ b/test/builtins/gen/textureStore/dd7d81.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba8snorm, write>, coords: vec3<i32>, value: vec4<f32>)
+fn textureStore_dd7d81() {
+  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_dd7d81();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_dd7d81();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_dd7d81();
+}
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/dd7d81.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.hlsl b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/dd7d81.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.msl b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.msl
rename to test/builtins/gen/textureStore/dd7d81.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/dd7d81.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.wgsl b/test/builtins/gen/textureStore/dd7d81.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dd7d81.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/dd7d81.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/dde364.wgsl b/test/builtins/gen/textureStore/dde364.wgsl
new file mode 100644
index 0000000..1bf72fd
--- /dev/null
+++ b/test/builtins/gen/textureStore/dde364.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
+fn textureStore_dde364() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_dde364();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_dde364();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_dde364();
+}
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl b/test/builtins/gen/textureStore/dde364.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dde364.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/dde364.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl b/test/builtins/gen/textureStore/dde364.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dde364.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/dde364.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.msl b/test/builtins/gen/textureStore/dde364.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dde364.wgsl.expected.msl
rename to test/builtins/gen/textureStore/dde364.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm b/test/builtins/gen/textureStore/dde364.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/dde364.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/dde364.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl.expected.wgsl b/test/builtins/gen/textureStore/dde364.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/dde364.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/dde364.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/e885e8.wgsl b/test/builtins/gen/textureStore/e885e8.wgsl
new file mode 100644
index 0000000..1aedddc
--- /dev/null
+++ b/test/builtins/gen/textureStore/e885e8.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba16float, write>, coords: i32, value: vec4<f32>)
+fn textureStore_e885e8() {
+  textureStore(arg_0, 1, vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_e885e8();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_e885e8();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_e885e8();
+}
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl b/test/builtins/gen/textureStore/e885e8.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/e885e8.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/e885e8.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.hlsl b/test/builtins/gen/textureStore/e885e8.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/e885e8.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/e885e8.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.msl b/test/builtins/gen/textureStore/e885e8.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/e885e8.wgsl.expected.msl
rename to test/builtins/gen/textureStore/e885e8.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm b/test/builtins/gen/textureStore/e885e8.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/e885e8.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/e885e8.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl.expected.wgsl b/test/builtins/gen/textureStore/e885e8.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/e885e8.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/e885e8.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/eb702f.wgsl b/test/builtins/gen/textureStore/eb702f.wgsl
new file mode 100644
index 0000000..0974770
--- /dev/null
+++ b/test/builtins/gen/textureStore/eb702f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<r32float, write>;
+
+// fn textureStore(texture: texture_storage_3d<r32float, write>, coords: vec3<i32>, value: vec4<f32>)
+fn textureStore_eb702f() {
+  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_eb702f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_eb702f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_eb702f();
+}
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl b/test/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb702f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/eb702f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/eb702f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb702f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/eb702f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.msl b/test/builtins/gen/textureStore/eb702f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb702f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/eb702f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/eb702f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb702f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/eb702f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/eb702f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb702f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/eb702f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/eb78b9.wgsl b/test/builtins/gen/textureStore/eb78b9.wgsl
new file mode 100644
index 0000000..d0416f9
--- /dev/null
+++ b/test/builtins/gen/textureStore/eb78b9.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, write>;
+
+// fn textureStore(texture: texture_storage_3d<r32sint, write>, coords: vec3<i32>, value: vec4<i32>)
+fn textureStore_eb78b9() {
+  textureStore(arg_0, vec3<i32>(), vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_eb78b9();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_eb78b9();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_eb78b9();
+}
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/eb78b9.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.hlsl b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/eb78b9.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.msl b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.msl
rename to test/builtins/gen/textureStore/eb78b9.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/eb78b9.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.wgsl b/test/builtins/gen/textureStore/eb78b9.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/eb78b9.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/eb78b9.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/ee6acc.wgsl b/test/builtins/gen/textureStore/ee6acc.wgsl
new file mode 100644
index 0000000..80976c4
--- /dev/null
+++ b/test/builtins/gen/textureStore/ee6acc.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
+
+// fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<i32>, value: vec4<f32>)
+fn textureStore_ee6acc() {
+  textureStore(arg_0, vec3<i32>(), vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_ee6acc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_ee6acc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_ee6acc();
+}
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/ee6acc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.hlsl b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/ee6acc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.msl b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.msl
rename to test/builtins/gen/textureStore/ee6acc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/ee6acc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.wgsl b/test/builtins/gen/textureStore/ee6acc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ee6acc.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/ee6acc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/ef9f2f.wgsl b/test/builtins/gen/textureStore/ef9f2f.wgsl
new file mode 100644
index 0000000..5913a24
--- /dev/null
+++ b/test/builtins/gen/textureStore/ef9f2f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, write>;
+
+// fn textureStore(texture: texture_storage_3d<r32uint, write>, coords: vec3<i32>, value: vec4<u32>)
+fn textureStore_ef9f2f() {
+  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_ef9f2f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_ef9f2f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_ef9f2f();
+}
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/ef9f2f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/ef9f2f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.msl b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/ef9f2f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/ef9f2f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/ef9f2f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/ef9f2f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/ef9f2f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/f8dead.wgsl b/test/builtins/gen/textureStore/f8dead.wgsl
new file mode 100644
index 0000000..955c42c
--- /dev/null
+++ b/test/builtins/gen/textureStore/f8dead.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, write>;
+
+// fn textureStore(texture: texture_storage_3d<rgba8uint, write>, coords: vec3<i32>, value: vec4<u32>)
+fn textureStore_f8dead() {
+  textureStore(arg_0, vec3<i32>(), vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_f8dead();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_f8dead();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_f8dead();
+}
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl b/test/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f8dead.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/f8dead.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.hlsl b/test/builtins/gen/textureStore/f8dead.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f8dead.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/f8dead.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.msl b/test/builtins/gen/textureStore/f8dead.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f8dead.wgsl.expected.msl
rename to test/builtins/gen/textureStore/f8dead.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm b/test/builtins/gen/textureStore/f8dead.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/f8dead.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/f8dead.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl.expected.wgsl b/test/builtins/gen/textureStore/f8dead.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f8dead.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/f8dead.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/f9be83.wgsl b/test/builtins/gen/textureStore/f9be83.wgsl
new file mode 100644
index 0000000..f0627b4
--- /dev/null
+++ b/test/builtins/gen/textureStore/f9be83.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
+fn textureStore_f9be83() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_f9be83();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_f9be83();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_f9be83();
+}
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl b/test/builtins/gen/textureStore/f9be83.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f9be83.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/f9be83.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl b/test/builtins/gen/textureStore/f9be83.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f9be83.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/f9be83.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.msl b/test/builtins/gen/textureStore/f9be83.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f9be83.wgsl.expected.msl
rename to test/builtins/gen/textureStore/f9be83.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm b/test/builtins/gen/textureStore/f9be83.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/f9be83.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/f9be83.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl.expected.wgsl b/test/builtins/gen/textureStore/f9be83.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/f9be83.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/f9be83.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/fb9a8f.wgsl b/test/builtins/gen/textureStore/fb9a8f.wgsl
new file mode 100644
index 0000000..9fcc489
--- /dev/null
+++ b/test/builtins/gen/textureStore/fb9a8f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, write>;
+
+// fn textureStore(texture: texture_storage_1d<rgba32uint, write>, coords: i32, value: vec4<u32>)
+fn textureStore_fb9a8f() {
+  textureStore(arg_0, 1, vec4<u32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_fb9a8f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_fb9a8f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_fb9a8f();
+}
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/fb9a8f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/fb9a8f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.msl b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/fb9a8f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/fb9a8f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/fb9a8f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fb9a8f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/fb9a8f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/textureStore/fbf53f.wgsl b/test/builtins/gen/textureStore/fbf53f.wgsl
new file mode 100644
index 0000000..158d3f0
--- /dev/null
+++ b/test/builtins/gen/textureStore/fbf53f.wgsl
@@ -0,0 +1,46 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
+
+// fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
+fn textureStore_fbf53f() {
+  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureStore_fbf53f();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  textureStore_fbf53f();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  textureStore_fbf53f();
+}
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.glsl
rename to test/builtins/gen/textureStore/fbf53f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.hlsl
rename to test/builtins/gen/textureStore/fbf53f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.msl b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.msl
rename to test/builtins/gen/textureStore/fbf53f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.spvasm
rename to test/builtins/gen/textureStore/fbf53f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.wgsl b/test/builtins/gen/textureStore/fbf53f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/textureStore/fbf53f.wgsl.expected.wgsl
rename to test/builtins/gen/textureStore/fbf53f.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/2585cd.wgsl b/test/builtins/gen/transpose/2585cd.wgsl
new file mode 100644
index 0000000..93d79ad
--- /dev/null
+++ b/test/builtins/gen/transpose/2585cd.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<4, 3, f32>) -> mat<3, 4, f32>
+fn transpose_2585cd() {
+  var res: mat3x4<f32> = transpose(mat4x3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_2585cd();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_2585cd();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_2585cd();
+}
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl b/test/builtins/gen/transpose/2585cd.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/2585cd.wgsl.expected.glsl
rename to test/builtins/gen/transpose/2585cd.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.hlsl b/test/builtins/gen/transpose/2585cd.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/2585cd.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/2585cd.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.msl b/test/builtins/gen/transpose/2585cd.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/2585cd.wgsl.expected.msl
rename to test/builtins/gen/transpose/2585cd.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.spvasm b/test/builtins/gen/transpose/2585cd.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/2585cd.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/2585cd.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl.expected.wgsl b/test/builtins/gen/transpose/2585cd.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/2585cd.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/2585cd.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/31d679.wgsl b/test/builtins/gen/transpose/31d679.wgsl
new file mode 100644
index 0000000..0d59682
--- /dev/null
+++ b/test/builtins/gen/transpose/31d679.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<2, 2, f32>) -> mat<2, 2, f32>
+fn transpose_31d679() {
+  var res: mat2x2<f32> = transpose(mat2x2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_31d679();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_31d679();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_31d679();
+}
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl b/test/builtins/gen/transpose/31d679.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/31d679.wgsl.expected.glsl
rename to test/builtins/gen/transpose/31d679.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.hlsl b/test/builtins/gen/transpose/31d679.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/31d679.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/31d679.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.msl b/test/builtins/gen/transpose/31d679.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/31d679.wgsl.expected.msl
rename to test/builtins/gen/transpose/31d679.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.spvasm b/test/builtins/gen/transpose/31d679.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/31d679.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/31d679.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl.expected.wgsl b/test/builtins/gen/transpose/31d679.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/31d679.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/31d679.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/31e37e.wgsl b/test/builtins/gen/transpose/31e37e.wgsl
new file mode 100644
index 0000000..9773170
--- /dev/null
+++ b/test/builtins/gen/transpose/31e37e.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<4, 2, f32>) -> mat<2, 4, f32>
+fn transpose_31e37e() {
+  var res: mat2x4<f32> = transpose(mat4x2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_31e37e();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_31e37e();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_31e37e();
+}
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl b/test/builtins/gen/transpose/31e37e.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/31e37e.wgsl.expected.glsl
rename to test/builtins/gen/transpose/31e37e.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.hlsl b/test/builtins/gen/transpose/31e37e.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/31e37e.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/31e37e.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.msl b/test/builtins/gen/transpose/31e37e.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/31e37e.wgsl.expected.msl
rename to test/builtins/gen/transpose/31e37e.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.spvasm b/test/builtins/gen/transpose/31e37e.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/31e37e.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/31e37e.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl.expected.wgsl b/test/builtins/gen/transpose/31e37e.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/31e37e.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/31e37e.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/4ce359.wgsl b/test/builtins/gen/transpose/4ce359.wgsl
new file mode 100644
index 0000000..88b25bc
--- /dev/null
+++ b/test/builtins/gen/transpose/4ce359.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<2, 4, f32>) -> mat<4, 2, f32>
+fn transpose_4ce359() {
+  var res: mat4x2<f32> = transpose(mat2x4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_4ce359();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_4ce359();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_4ce359();
+}
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl b/test/builtins/gen/transpose/4ce359.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/4ce359.wgsl.expected.glsl
rename to test/builtins/gen/transpose/4ce359.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.hlsl b/test/builtins/gen/transpose/4ce359.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/4ce359.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/4ce359.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.msl b/test/builtins/gen/transpose/4ce359.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/4ce359.wgsl.expected.msl
rename to test/builtins/gen/transpose/4ce359.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.spvasm b/test/builtins/gen/transpose/4ce359.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/4ce359.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/4ce359.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl.expected.wgsl b/test/builtins/gen/transpose/4ce359.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/4ce359.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/4ce359.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/4dc9a1.wgsl b/test/builtins/gen/transpose/4dc9a1.wgsl
new file mode 100644
index 0000000..9cc6473
--- /dev/null
+++ b/test/builtins/gen/transpose/4dc9a1.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<2, 3, f32>) -> mat<3, 2, f32>
+fn transpose_4dc9a1() {
+  var res: mat3x2<f32> = transpose(mat2x3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_4dc9a1();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_4dc9a1();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_4dc9a1();
+}
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.glsl
rename to test/builtins/gen/transpose/4dc9a1.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.hlsl b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/4dc9a1.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.msl b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.msl
rename to test/builtins/gen/transpose/4dc9a1.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.spvasm b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/4dc9a1.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.wgsl b/test/builtins/gen/transpose/4dc9a1.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/4dc9a1.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/4dc9a1.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/854336.wgsl b/test/builtins/gen/transpose/854336.wgsl
new file mode 100644
index 0000000..a6ed5e3
--- /dev/null
+++ b/test/builtins/gen/transpose/854336.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<3, 3, f32>) -> mat<3, 3, f32>
+fn transpose_854336() {
+  var res: mat3x3<f32> = transpose(mat3x3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_854336();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_854336();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_854336();
+}
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.glsl b/test/builtins/gen/transpose/854336.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/854336.wgsl.expected.glsl
rename to test/builtins/gen/transpose/854336.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.hlsl b/test/builtins/gen/transpose/854336.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/854336.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/854336.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.msl b/test/builtins/gen/transpose/854336.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/854336.wgsl.expected.msl
rename to test/builtins/gen/transpose/854336.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.spvasm b/test/builtins/gen/transpose/854336.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/854336.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/854336.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/854336.wgsl.expected.wgsl b/test/builtins/gen/transpose/854336.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/854336.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/854336.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/c1b600.wgsl b/test/builtins/gen/transpose/c1b600.wgsl
new file mode 100644
index 0000000..fdc47dc
--- /dev/null
+++ b/test/builtins/gen/transpose/c1b600.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<4, 4, f32>) -> mat<4, 4, f32>
+fn transpose_c1b600() {
+  var res: mat4x4<f32> = transpose(mat4x4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_c1b600();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_c1b600();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_c1b600();
+}
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl b/test/builtins/gen/transpose/c1b600.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/c1b600.wgsl.expected.glsl
rename to test/builtins/gen/transpose/c1b600.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.hlsl b/test/builtins/gen/transpose/c1b600.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/c1b600.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/c1b600.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.msl b/test/builtins/gen/transpose/c1b600.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/c1b600.wgsl.expected.msl
rename to test/builtins/gen/transpose/c1b600.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.spvasm b/test/builtins/gen/transpose/c1b600.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/c1b600.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/c1b600.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl.expected.wgsl b/test/builtins/gen/transpose/c1b600.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/c1b600.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/c1b600.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/d8f8ba.wgsl b/test/builtins/gen/transpose/d8f8ba.wgsl
new file mode 100644
index 0000000..d22d71d
--- /dev/null
+++ b/test/builtins/gen/transpose/d8f8ba.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<3, 4, f32>) -> mat<4, 3, f32>
+fn transpose_d8f8ba() {
+  var res: mat4x3<f32> = transpose(mat3x4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_d8f8ba();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_d8f8ba();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_d8f8ba();
+}
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.glsl
rename to test/builtins/gen/transpose/d8f8ba.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.hlsl b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/d8f8ba.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.msl b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.msl
rename to test/builtins/gen/transpose/d8f8ba.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.spvasm b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/d8f8ba.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.wgsl b/test/builtins/gen/transpose/d8f8ba.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/d8f8ba.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/d8f8ba.wgsl.expected.wgsl
diff --git a/test/builtins/gen/transpose/ed4bdc.wgsl b/test/builtins/gen/transpose/ed4bdc.wgsl
new file mode 100644
index 0000000..5fd4e48
--- /dev/null
+++ b/test/builtins/gen/transpose/ed4bdc.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn transpose(mat<3, 2, f32>) -> mat<2, 3, f32>
+fn transpose_ed4bdc() {
+  var res: mat2x3<f32> = transpose(mat3x2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  transpose_ed4bdc();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  transpose_ed4bdc();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  transpose_ed4bdc();
+}
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.glsl
rename to test/builtins/gen/transpose/ed4bdc.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.hlsl b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.hlsl
rename to test/builtins/gen/transpose/ed4bdc.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.msl b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.msl
rename to test/builtins/gen/transpose/ed4bdc.wgsl.expected.msl
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.spvasm b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.spvasm
rename to test/builtins/gen/transpose/ed4bdc.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.wgsl b/test/builtins/gen/transpose/ed4bdc.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/transpose/ed4bdc.wgsl.expected.wgsl
rename to test/builtins/gen/transpose/ed4bdc.wgsl.expected.wgsl
diff --git a/test/builtins/gen/trunc/562d05.wgsl b/test/builtins/gen/trunc/562d05.wgsl
new file mode 100644
index 0000000..1d792e8
--- /dev/null
+++ b/test/builtins/gen/trunc/562d05.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn trunc(vec<3, f32>) -> vec<3, f32>
+fn trunc_562d05() {
+  var res: vec3<f32> = trunc(vec3<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  trunc_562d05();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  trunc_562d05();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  trunc_562d05();
+}
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl b/test/builtins/gen/trunc/562d05.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/trunc/562d05.wgsl.expected.glsl
rename to test/builtins/gen/trunc/562d05.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.hlsl b/test/builtins/gen/trunc/562d05.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/trunc/562d05.wgsl.expected.hlsl
rename to test/builtins/gen/trunc/562d05.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.msl b/test/builtins/gen/trunc/562d05.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/trunc/562d05.wgsl.expected.msl
rename to test/builtins/gen/trunc/562d05.wgsl.expected.msl
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.spvasm b/test/builtins/gen/trunc/562d05.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/trunc/562d05.wgsl.expected.spvasm
rename to test/builtins/gen/trunc/562d05.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl.expected.wgsl b/test/builtins/gen/trunc/562d05.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/trunc/562d05.wgsl.expected.wgsl
rename to test/builtins/gen/trunc/562d05.wgsl.expected.wgsl
diff --git a/test/builtins/gen/trunc/e183aa.wgsl b/test/builtins/gen/trunc/e183aa.wgsl
new file mode 100644
index 0000000..d719d01
--- /dev/null
+++ b/test/builtins/gen/trunc/e183aa.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn trunc(vec<4, f32>) -> vec<4, f32>
+fn trunc_e183aa() {
+  var res: vec4<f32> = trunc(vec4<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  trunc_e183aa();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  trunc_e183aa();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  trunc_e183aa();
+}
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl b/test/builtins/gen/trunc/e183aa.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/trunc/e183aa.wgsl.expected.glsl
rename to test/builtins/gen/trunc/e183aa.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.hlsl b/test/builtins/gen/trunc/e183aa.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/trunc/e183aa.wgsl.expected.hlsl
rename to test/builtins/gen/trunc/e183aa.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.msl b/test/builtins/gen/trunc/e183aa.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/trunc/e183aa.wgsl.expected.msl
rename to test/builtins/gen/trunc/e183aa.wgsl.expected.msl
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.spvasm b/test/builtins/gen/trunc/e183aa.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/trunc/e183aa.wgsl.expected.spvasm
rename to test/builtins/gen/trunc/e183aa.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl.expected.wgsl b/test/builtins/gen/trunc/e183aa.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/trunc/e183aa.wgsl.expected.wgsl
rename to test/builtins/gen/trunc/e183aa.wgsl.expected.wgsl
diff --git a/test/builtins/gen/trunc/eb83df.wgsl b/test/builtins/gen/trunc/eb83df.wgsl
new file mode 100644
index 0000000..685dcba
--- /dev/null
+++ b/test/builtins/gen/trunc/eb83df.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn trunc(f32) -> f32
+fn trunc_eb83df() {
+  var res: f32 = trunc(1.0);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  trunc_eb83df();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  trunc_eb83df();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  trunc_eb83df();
+}
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl b/test/builtins/gen/trunc/eb83df.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/trunc/eb83df.wgsl.expected.glsl
rename to test/builtins/gen/trunc/eb83df.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.hlsl b/test/builtins/gen/trunc/eb83df.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/trunc/eb83df.wgsl.expected.hlsl
rename to test/builtins/gen/trunc/eb83df.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.msl b/test/builtins/gen/trunc/eb83df.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/trunc/eb83df.wgsl.expected.msl
rename to test/builtins/gen/trunc/eb83df.wgsl.expected.msl
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.spvasm b/test/builtins/gen/trunc/eb83df.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/trunc/eb83df.wgsl.expected.spvasm
rename to test/builtins/gen/trunc/eb83df.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl.expected.wgsl b/test/builtins/gen/trunc/eb83df.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/trunc/eb83df.wgsl.expected.wgsl
rename to test/builtins/gen/trunc/eb83df.wgsl.expected.wgsl
diff --git a/test/builtins/gen/trunc/f370d3.wgsl b/test/builtins/gen/trunc/f370d3.wgsl
new file mode 100644
index 0000000..dbf5a05
--- /dev/null
+++ b/test/builtins/gen/trunc/f370d3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn trunc(vec<2, f32>) -> vec<2, f32>
+fn trunc_f370d3() {
+  var res: vec2<f32> = trunc(vec2<f32>());
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  trunc_f370d3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  trunc_f370d3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  trunc_f370d3();
+}
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl b/test/builtins/gen/trunc/f370d3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/trunc/f370d3.wgsl.expected.glsl
rename to test/builtins/gen/trunc/f370d3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.hlsl b/test/builtins/gen/trunc/f370d3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/trunc/f370d3.wgsl.expected.hlsl
rename to test/builtins/gen/trunc/f370d3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.msl b/test/builtins/gen/trunc/f370d3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/trunc/f370d3.wgsl.expected.msl
rename to test/builtins/gen/trunc/f370d3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.spvasm b/test/builtins/gen/trunc/f370d3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/trunc/f370d3.wgsl.expected.spvasm
rename to test/builtins/gen/trunc/f370d3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl.expected.wgsl b/test/builtins/gen/trunc/f370d3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/trunc/f370d3.wgsl.expected.wgsl
rename to test/builtins/gen/trunc/f370d3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/unpack2x16float/32a5cf.wgsl b/test/builtins/gen/unpack2x16float/32a5cf.wgsl
new file mode 100644
index 0000000..c270720
--- /dev/null
+++ b/test/builtins/gen/unpack2x16float/32a5cf.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn unpack2x16float(u32) -> vec2<f32>
+fn unpack2x16float_32a5cf() {
+  var res: vec2<f32> = unpack2x16float(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  unpack2x16float_32a5cf();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  unpack2x16float_32a5cf();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  unpack2x16float_32a5cf();
+}
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
rename to test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.hlsl b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.hlsl
rename to test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.msl b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.msl
rename to test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.msl
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm
rename to test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.wgsl b/test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16float/32a5cf.wgsl.expected.wgsl
rename to test/builtins/gen/unpack2x16float/32a5cf.wgsl.expected.wgsl
diff --git a/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl
new file mode 100644
index 0000000..7a284ce
--- /dev/null
+++ b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn unpack2x16snorm(u32) -> vec2<f32>
+fn unpack2x16snorm_b4aea6() {
+  var res: vec2<f32> = unpack2x16snorm(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  unpack2x16snorm_b4aea6();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  unpack2x16snorm_b4aea6();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  unpack2x16snorm_b4aea6();
+}
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
rename to test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.hlsl b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.hlsl
rename to test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl
rename to test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.msl
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm
rename to test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.wgsl b/test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
rename to test/builtins/gen/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
diff --git a/test/builtins/gen/unpack2x16unorm/7699c0.wgsl b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl
new file mode 100644
index 0000000..9e20260
--- /dev/null
+++ b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn unpack2x16unorm(u32) -> vec2<f32>
+fn unpack2x16unorm_7699c0() {
+  var res: vec2<f32> = unpack2x16unorm(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  unpack2x16unorm_7699c0();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  unpack2x16unorm_7699c0();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  unpack2x16unorm_7699c0();
+}
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
rename to test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.hlsl b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.hlsl
rename to test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.msl b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.msl
rename to test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.msl
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm
rename to test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.wgsl b/test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl.expected.wgsl
rename to test/builtins/gen/unpack2x16unorm/7699c0.wgsl.expected.wgsl
diff --git a/test/builtins/gen/unpack4x8snorm/523fb3.wgsl b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl
new file mode 100644
index 0000000..a6495ea
--- /dev/null
+++ b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn unpack4x8snorm(u32) -> vec4<f32>
+fn unpack4x8snorm_523fb3() {
+  var res: vec4<f32> = unpack4x8snorm(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  unpack4x8snorm_523fb3();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  unpack4x8snorm_523fb3();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  unpack4x8snorm_523fb3();
+}
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
rename to test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.hlsl b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.hlsl
rename to test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.msl b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.msl
rename to test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.msl
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm
rename to test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.wgsl b/test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl.expected.wgsl
rename to test/builtins/gen/unpack4x8snorm/523fb3.wgsl.expected.wgsl
diff --git a/test/builtins/gen/unpack4x8unorm/750c74.wgsl b/test/builtins/gen/unpack4x8unorm/750c74.wgsl
new file mode 100644
index 0000000..89fa81c
--- /dev/null
+++ b/test/builtins/gen/unpack4x8unorm/750c74.wgsl
@@ -0,0 +1,45 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn unpack4x8unorm(u32) -> vec4<f32>
+fn unpack4x8unorm_750c74() {
+  var res: vec4<f32> = unpack4x8unorm(1u);
+}
+
+@stage(vertex)
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  unpack4x8unorm_750c74();
+  return vec4<f32>();
+}
+
+@stage(fragment)
+fn fragment_main() {
+  unpack4x8unorm_750c74();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  unpack4x8unorm_750c74();
+}
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
rename to test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.hlsl b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.hlsl
rename to test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.msl b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.msl
rename to test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.msl
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm
rename to test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.wgsl b/test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/unpack4x8unorm/750c74.wgsl.expected.wgsl
rename to test/builtins/gen/unpack4x8unorm/750c74.wgsl.expected.wgsl
diff --git a/test/builtins/gen/workgroupBarrier/a17f7f.wgsl b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl
new file mode 100644
index 0000000..89fc240
--- /dev/null
+++ b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl
@@ -0,0 +1,34 @@
+// Copyright 2021 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by tools/builtin-gen
+// using the template:
+//   test/builtins/builtins.wgsl.tmpl
+// and the builtin defintion file:
+//   src/builtins.def
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// fn workgroupBarrier()
+fn workgroupBarrier_a17f7f() {
+  workgroupBarrier();
+}
+
+@stage(compute) @workgroup_size(1)
+fn compute_main() {
+  workgroupBarrier_a17f7f();
+}
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
rename to test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.glsl
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.hlsl b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.hlsl
rename to test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.hlsl
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.msl b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.msl
rename to test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.msl
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.spvasm b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.spvasm
rename to test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.spvasm
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.wgsl b/test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl.expected.wgsl
rename to test/builtins/gen/workgroupBarrier/a17f7f.wgsl.expected.wgsl
diff --git a/test/intrinsics/modf.wgsl b/test/builtins/modf.wgsl
similarity index 100%
rename from test/intrinsics/modf.wgsl
rename to test/builtins/modf.wgsl
diff --git a/test/intrinsics/modf.wgsl.expected.glsl b/test/builtins/modf.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/modf.wgsl.expected.glsl
rename to test/builtins/modf.wgsl.expected.glsl
diff --git a/test/intrinsics/modf.wgsl.expected.hlsl b/test/builtins/modf.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/modf.wgsl.expected.hlsl
rename to test/builtins/modf.wgsl.expected.hlsl
diff --git a/test/intrinsics/modf.wgsl.expected.msl b/test/builtins/modf.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/modf.wgsl.expected.msl
rename to test/builtins/modf.wgsl.expected.msl
diff --git a/test/intrinsics/modf.wgsl.expected.spvasm b/test/builtins/modf.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/modf.wgsl.expected.spvasm
rename to test/builtins/modf.wgsl.expected.spvasm
diff --git a/test/intrinsics/modf.wgsl.expected.wgsl b/test/builtins/modf.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/modf.wgsl.expected.wgsl
rename to test/builtins/modf.wgsl.expected.wgsl
diff --git a/test/intrinsics/radians.spvasm b/test/builtins/radians.spvasm
similarity index 100%
rename from test/intrinsics/radians.spvasm
rename to test/builtins/radians.spvasm
diff --git a/test/intrinsics/radians.spvasm.expected.glsl b/test/builtins/radians.spvasm.expected.glsl
similarity index 100%
rename from test/intrinsics/radians.spvasm.expected.glsl
rename to test/builtins/radians.spvasm.expected.glsl
diff --git a/test/intrinsics/radians.spvasm.expected.hlsl b/test/builtins/radians.spvasm.expected.hlsl
similarity index 100%
rename from test/intrinsics/radians.spvasm.expected.hlsl
rename to test/builtins/radians.spvasm.expected.hlsl
diff --git a/test/intrinsics/radians.spvasm.expected.msl b/test/builtins/radians.spvasm.expected.msl
similarity index 100%
rename from test/intrinsics/radians.spvasm.expected.msl
rename to test/builtins/radians.spvasm.expected.msl
diff --git a/test/intrinsics/radians.spvasm.expected.spvasm b/test/builtins/radians.spvasm.expected.spvasm
similarity index 100%
rename from test/intrinsics/radians.spvasm.expected.spvasm
rename to test/builtins/radians.spvasm.expected.spvasm
diff --git a/test/intrinsics/radians.spvasm.expected.wgsl b/test/builtins/radians.spvasm.expected.wgsl
similarity index 100%
rename from test/intrinsics/radians.spvasm.expected.wgsl
rename to test/builtins/radians.spvasm.expected.wgsl
diff --git a/test/intrinsics/repeated_use.wgsl b/test/builtins/repeated_use.wgsl
similarity index 100%
rename from test/intrinsics/repeated_use.wgsl
rename to test/builtins/repeated_use.wgsl
diff --git a/test/builtins/repeated_use.wgsl.expected.glsl b/test/builtins/repeated_use.wgsl.expected.glsl
new file mode 100644
index 0000000..450afef
--- /dev/null
+++ b/test/builtins/repeated_use.wgsl.expected.glsl
@@ -0,0 +1,105 @@
+SKIP: FAILED
+
+builtins/repeated_use.wgsl:5:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:6:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:7:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:9:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:10:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:11:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1., 2., 3.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:13:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:14:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:15:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1., 2.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:17:9 warning: use of deprecated builtin
+    _ = isNormal(1.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:18:9 warning: use of deprecated builtin
+    _ = isNormal(2.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:19:9 warning: use of deprecated builtin
+    _ = isNormal(3.);
+        ^^^^^^^^
+
+#version 310 es
+precision mediump float;
+
+bvec4 tint_isNormal(vec4 param_0) {
+  uint4 exponent = asuint(param_0) & 0x7f80000;
+  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+bvec3 tint_isNormal_1(vec3 param_0) {
+  uint3 exponent = asuint(param_0) & 0x7f80000;
+  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+bvec2 tint_isNormal_2(vec2 param_0) {
+  uint2 exponent = asuint(param_0) & 0x7f80000;
+  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+bool tint_isNormal_3(float param_0) {
+  uint exponent = asuint(param_0) & 0x7f80000;
+  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+
+void tint_symbol() {
+  tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_isNormal(vec4(1.0f));
+  tint_isNormal(vec4(1.0f, 2.0f, 3.0f, 4.0f));
+  tint_isNormal_1(vec3(0.0f, 0.0f, 0.0f));
+  tint_isNormal_1(vec3(1.0f));
+  tint_isNormal_1(vec3(1.0f, 2.0f, 3.0f));
+  tint_isNormal_2(vec2(0.0f, 0.0f));
+  tint_isNormal_2(vec2(1.0f));
+  tint_isNormal_2(vec2(1.0f, 2.0f));
+  tint_isNormal_3(1.0f);
+  tint_isNormal_3(2.0f);
+  tint_isNormal_3(3.0f);
+}
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void main() {
+  tint_symbol();
+  return;
+}
+Error parsing GLSL shader:
+ERROR: 0:5: 'uint4' : undeclared identifier
+ERROR: 0:5: '' : compilation terminated
+ERROR: 2 compilation errors.  No code generated.
+
+
+
diff --git a/test/builtins/repeated_use.wgsl.expected.hlsl b/test/builtins/repeated_use.wgsl.expected.hlsl
new file mode 100644
index 0000000..eb05edf
--- /dev/null
+++ b/test/builtins/repeated_use.wgsl.expected.hlsl
@@ -0,0 +1,88 @@
+builtins/repeated_use.wgsl:5:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:6:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:7:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:9:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:10:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:11:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1., 2., 3.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:13:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:14:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:15:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1., 2.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:17:9 warning: use of deprecated builtin
+    _ = isNormal(1.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:18:9 warning: use of deprecated builtin
+    _ = isNormal(2.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:19:9 warning: use of deprecated builtin
+    _ = isNormal(3.);
+        ^^^^^^^^
+
+bool4 tint_isNormal(float4 param_0) {
+  uint4 exponent = asuint(param_0) & 0x7f80000;
+  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+bool3 tint_isNormal_1(float3 param_0) {
+  uint3 exponent = asuint(param_0) & 0x7f80000;
+  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+bool2 tint_isNormal_2(float2 param_0) {
+  uint2 exponent = asuint(param_0) & 0x7f80000;
+  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+bool tint_isNormal_3(float param_0) {
+  uint exponent = asuint(param_0) & 0x7f80000;
+  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
+  return clamped == exponent;
+}
+
+[numthreads(1, 1, 1)]
+void main() {
+  tint_isNormal(float4(0.0f, 0.0f, 0.0f, 0.0f));
+  tint_isNormal(float4((1.0f).xxxx));
+  tint_isNormal(float4(1.0f, 2.0f, 3.0f, 4.0f));
+  tint_isNormal_1(float3(0.0f, 0.0f, 0.0f));
+  tint_isNormal_1(float3((1.0f).xxx));
+  tint_isNormal_1(float3(1.0f, 2.0f, 3.0f));
+  tint_isNormal_2(float2(0.0f, 0.0f));
+  tint_isNormal_2(float2((1.0f).xx));
+  tint_isNormal_2(float2(1.0f, 2.0f));
+  tint_isNormal_3(1.0f);
+  tint_isNormal_3(2.0f);
+  tint_isNormal_3(3.0f);
+  return;
+}
diff --git a/test/builtins/repeated_use.wgsl.expected.msl b/test/builtins/repeated_use.wgsl.expected.msl
new file mode 100644
index 0000000..5b7314a
--- /dev/null
+++ b/test/builtins/repeated_use.wgsl.expected.msl
@@ -0,0 +1,67 @@
+builtins/repeated_use.wgsl:5:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:6:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:7:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:9:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:10:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:11:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1., 2., 3.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:13:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:14:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:15:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1., 2.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:17:9 warning: use of deprecated builtin
+    _ = isNormal(1.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:18:9 warning: use of deprecated builtin
+    _ = isNormal(2.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:19:9 warning: use of deprecated builtin
+    _ = isNormal(3.);
+        ^^^^^^^^
+
+#include <metal_stdlib>
+
+using namespace metal;
+kernel void tint_symbol() {
+  isnormal(float4());
+  isnormal(float4(1.0f));
+  isnormal(float4(1.0f, 2.0f, 3.0f, 4.0f));
+  isnormal(float3());
+  isnormal(float3(1.0f));
+  isnormal(float3(1.0f, 2.0f, 3.0f));
+  isnormal(float2());
+  isnormal(float2(1.0f));
+  isnormal(float2(1.0f, 2.0f));
+  isnormal(1.0f);
+  isnormal(2.0f);
+  isnormal(3.0f);
+  return;
+}
+
diff --git a/test/builtins/repeated_use.wgsl.expected.spvasm b/test/builtins/repeated_use.wgsl.expected.spvasm
new file mode 100644
index 0000000..2c50ace
--- /dev/null
+++ b/test/builtins/repeated_use.wgsl.expected.spvasm
@@ -0,0 +1,168 @@
+builtins/repeated_use.wgsl:5:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:6:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:7:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:9:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:10:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:11:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1., 2., 3.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:13:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:14:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:15:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1., 2.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:17:9 warning: use of deprecated builtin
+    _ = isNormal(1.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:18:9 warning: use of deprecated builtin
+    _ = isNormal(2.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:19:9 warning: use of deprecated builtin
+    _ = isNormal(3.);
+        ^^^^^^^^
+
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 0
+; Bound: 109
+; Schema: 0
+               OpCapability Shader
+         %11 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %main "main"
+               OpExecutionMode %main LocalSize 1 1 1
+               OpName %main "main"
+       %void = OpTypeVoid
+          %1 = OpTypeFunction %void
+       %bool = OpTypeBool
+     %v4bool = OpTypeVector %bool 4
+      %float = OpTypeFloat 32
+    %v4float = OpTypeVector %float 4
+         %10 = OpConstantNull %v4float
+       %uint = OpTypeInt 32 0
+%uint_133693440 = OpConstant %uint 133693440
+%uint_524288 = OpConstant %uint 524288
+%uint_133169152 = OpConstant %uint 133169152
+     %v4uint = OpTypeVector %uint 4
+    %float_1 = OpConstant %float 1
+         %25 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
+    %float_2 = OpConstant %float 2
+    %float_3 = OpConstant %float 3
+    %float_4 = OpConstant %float 4
+         %36 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
+     %v3bool = OpTypeVector %bool 3
+    %v3float = OpTypeVector %float 3
+         %46 = OpConstantNull %v3float
+     %v3uint = OpTypeVector %uint 3
+         %55 = OpConstantComposite %v3float %float_1 %float_1 %float_1
+         %63 = OpConstantComposite %v3float %float_1 %float_2 %float_3
+     %v2bool = OpTypeVector %bool 2
+    %v2float = OpTypeVector %float 2
+         %73 = OpConstantNull %v2float
+     %v2uint = OpTypeVector %uint 2
+         %82 = OpConstantComposite %v2float %float_1 %float_1
+         %90 = OpConstantComposite %v2float %float_1 %float_2
+       %main = OpFunction %void None %1
+          %4 = OpLabel
+         %17 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
+         %18 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
+         %19 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
+         %20 = OpBitcast %v4uint %10
+         %21 = OpBitwiseAnd %v4uint %20 %17
+         %22 = OpExtInst %v4uint %11 UClamp %21 %18 %19
+          %5 = OpIEqual %v4bool %21 %22
+         %26 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
+         %27 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
+         %28 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
+         %29 = OpBitcast %v4uint %25
+         %30 = OpBitwiseAnd %v4uint %29 %26
+         %31 = OpExtInst %v4uint %11 UClamp %30 %27 %28
+         %23 = OpIEqual %v4bool %30 %31
+         %37 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
+         %38 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
+         %39 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
+         %40 = OpBitcast %v4uint %36
+         %41 = OpBitwiseAnd %v4uint %40 %37
+         %42 = OpExtInst %v4uint %11 UClamp %41 %38 %39
+         %32 = OpIEqual %v4bool %41 %42
+         %48 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
+         %49 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
+         %50 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
+         %51 = OpBitcast %v3uint %46
+         %52 = OpBitwiseAnd %v3uint %51 %48
+         %53 = OpExtInst %v3uint %11 UClamp %52 %49 %50
+         %43 = OpIEqual %v3bool %52 %53
+         %56 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
+         %57 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
+         %58 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
+         %59 = OpBitcast %v3uint %55
+         %60 = OpBitwiseAnd %v3uint %59 %56
+         %61 = OpExtInst %v3uint %11 UClamp %60 %57 %58
+         %54 = OpIEqual %v3bool %60 %61
+         %64 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
+         %65 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
+         %66 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
+         %67 = OpBitcast %v3uint %63
+         %68 = OpBitwiseAnd %v3uint %67 %64
+         %69 = OpExtInst %v3uint %11 UClamp %68 %65 %66
+         %62 = OpIEqual %v3bool %68 %69
+         %75 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
+         %76 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
+         %77 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
+         %78 = OpBitcast %v2uint %73
+         %79 = OpBitwiseAnd %v2uint %78 %75
+         %80 = OpExtInst %v2uint %11 UClamp %79 %76 %77
+         %70 = OpIEqual %v2bool %79 %80
+         %83 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
+         %84 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
+         %85 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
+         %86 = OpBitcast %v2uint %82
+         %87 = OpBitwiseAnd %v2uint %86 %83
+         %88 = OpExtInst %v2uint %11 UClamp %87 %84 %85
+         %81 = OpIEqual %v2bool %87 %88
+         %91 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
+         %92 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
+         %93 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
+         %94 = OpBitcast %v2uint %90
+         %95 = OpBitwiseAnd %v2uint %94 %91
+         %96 = OpExtInst %v2uint %11 UClamp %95 %92 %93
+         %89 = OpIEqual %v2bool %95 %96
+         %98 = OpBitcast %uint %float_1
+         %99 = OpBitwiseAnd %uint %98 %uint_133693440
+        %100 = OpExtInst %uint %11 UClamp %99 %uint_524288 %uint_133169152
+         %97 = OpIEqual %bool %99 %100
+        %102 = OpBitcast %uint %float_2
+        %103 = OpBitwiseAnd %uint %102 %uint_133693440
+        %104 = OpExtInst %uint %11 UClamp %103 %uint_524288 %uint_133169152
+        %101 = OpIEqual %bool %103 %104
+        %106 = OpBitcast %uint %float_3
+        %107 = OpBitwiseAnd %uint %106 %uint_133693440
+        %108 = OpExtInst %uint %11 UClamp %107 %uint_524288 %uint_133169152
+        %105 = OpIEqual %bool %107 %108
+               OpReturn
+               OpFunctionEnd
diff --git a/test/builtins/repeated_use.wgsl.expected.wgsl b/test/builtins/repeated_use.wgsl.expected.wgsl
new file mode 100644
index 0000000..f33ea1c
--- /dev/null
+++ b/test/builtins/repeated_use.wgsl.expected.wgsl
@@ -0,0 +1,63 @@
+builtins/repeated_use.wgsl:5:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:6:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:7:9 warning: use of deprecated builtin
+    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:9:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:10:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:11:9 warning: use of deprecated builtin
+    _ = isNormal(vec3<f32>(1., 2., 3.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:13:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>());
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:14:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:15:9 warning: use of deprecated builtin
+    _ = isNormal(vec2<f32>(1., 2.));
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:17:9 warning: use of deprecated builtin
+    _ = isNormal(1.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:18:9 warning: use of deprecated builtin
+    _ = isNormal(2.);
+        ^^^^^^^^
+
+builtins/repeated_use.wgsl:19:9 warning: use of deprecated builtin
+    _ = isNormal(3.);
+        ^^^^^^^^
+
+@stage(compute) @workgroup_size(1)
+fn main() {
+  _ = isNormal(vec4<f32>());
+  _ = isNormal(vec4<f32>(1.0));
+  _ = isNormal(vec4<f32>(1.0, 2.0, 3.0, 4.0));
+  _ = isNormal(vec3<f32>());
+  _ = isNormal(vec3<f32>(1.0));
+  _ = isNormal(vec3<f32>(1.0, 2.0, 3.0));
+  _ = isNormal(vec2<f32>());
+  _ = isNormal(vec2<f32>(1.0));
+  _ = isNormal(vec2<f32>(1.0, 2.0));
+  _ = isNormal(1.0);
+  _ = isNormal(2.0);
+  _ = isNormal(3.0);
+}
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm b/test/builtins/textureDimensions/depth_ms.spvasm
similarity index 100%
rename from test/intrinsics/textureDimensions/depth_ms.spvasm
rename to test/builtins/textureDimensions/depth_ms.spvasm
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl b/test/builtins/textureDimensions/depth_ms.spvasm.expected.glsl
similarity index 100%
rename from test/intrinsics/textureDimensions/depth_ms.spvasm.expected.glsl
rename to test/builtins/textureDimensions/depth_ms.spvasm.expected.glsl
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.hlsl b/test/builtins/textureDimensions/depth_ms.spvasm.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureDimensions/depth_ms.spvasm.expected.hlsl
rename to test/builtins/textureDimensions/depth_ms.spvasm.expected.hlsl
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.msl b/test/builtins/textureDimensions/depth_ms.spvasm.expected.msl
similarity index 100%
rename from test/intrinsics/textureDimensions/depth_ms.spvasm.expected.msl
rename to test/builtins/textureDimensions/depth_ms.spvasm.expected.msl
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.spvasm b/test/builtins/textureDimensions/depth_ms.spvasm.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureDimensions/depth_ms.spvasm.expected.spvasm
rename to test/builtins/textureDimensions/depth_ms.spvasm.expected.spvasm
diff --git a/test/intrinsics/textureDimensions/depth_ms.spvasm.expected.wgsl b/test/builtins/textureDimensions/depth_ms.spvasm.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureDimensions/depth_ms.spvasm.expected.wgsl
rename to test/builtins/textureDimensions/depth_ms.spvasm.expected.wgsl
diff --git a/test/intrinsics/textureGather/f32/alpha.wgsl b/test/builtins/textureGather/f32/alpha.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/alpha.wgsl
rename to test/builtins/textureGather/f32/alpha.wgsl
diff --git a/test/intrinsics/textureGather/f32/alpha.wgsl.expected.glsl b/test/builtins/textureGather/f32/alpha.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/alpha.wgsl.expected.glsl
rename to test/builtins/textureGather/f32/alpha.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/f32/alpha.wgsl.expected.hlsl b/test/builtins/textureGather/f32/alpha.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/alpha.wgsl.expected.hlsl
rename to test/builtins/textureGather/f32/alpha.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/f32/alpha.wgsl.expected.msl b/test/builtins/textureGather/f32/alpha.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/f32/alpha.wgsl.expected.msl
rename to test/builtins/textureGather/f32/alpha.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/f32/alpha.wgsl.expected.spvasm b/test/builtins/textureGather/f32/alpha.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/f32/alpha.wgsl.expected.spvasm
rename to test/builtins/textureGather/f32/alpha.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/f32/alpha.wgsl.expected.wgsl b/test/builtins/textureGather/f32/alpha.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/alpha.wgsl.expected.wgsl
rename to test/builtins/textureGather/f32/alpha.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/f32/blue.wgsl b/test/builtins/textureGather/f32/blue.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/blue.wgsl
rename to test/builtins/textureGather/f32/blue.wgsl
diff --git a/test/intrinsics/textureGather/f32/blue.wgsl.expected.glsl b/test/builtins/textureGather/f32/blue.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/blue.wgsl.expected.glsl
rename to test/builtins/textureGather/f32/blue.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/f32/blue.wgsl.expected.hlsl b/test/builtins/textureGather/f32/blue.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/blue.wgsl.expected.hlsl
rename to test/builtins/textureGather/f32/blue.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/f32/blue.wgsl.expected.msl b/test/builtins/textureGather/f32/blue.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/f32/blue.wgsl.expected.msl
rename to test/builtins/textureGather/f32/blue.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/f32/blue.wgsl.expected.spvasm b/test/builtins/textureGather/f32/blue.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/f32/blue.wgsl.expected.spvasm
rename to test/builtins/textureGather/f32/blue.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/f32/blue.wgsl.expected.wgsl b/test/builtins/textureGather/f32/blue.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/blue.wgsl.expected.wgsl
rename to test/builtins/textureGather/f32/blue.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/f32/green.wgsl b/test/builtins/textureGather/f32/green.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/green.wgsl
rename to test/builtins/textureGather/f32/green.wgsl
diff --git a/test/intrinsics/textureGather/f32/green.wgsl.expected.glsl b/test/builtins/textureGather/f32/green.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/green.wgsl.expected.glsl
rename to test/builtins/textureGather/f32/green.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/f32/green.wgsl.expected.hlsl b/test/builtins/textureGather/f32/green.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/green.wgsl.expected.hlsl
rename to test/builtins/textureGather/f32/green.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/f32/green.wgsl.expected.msl b/test/builtins/textureGather/f32/green.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/f32/green.wgsl.expected.msl
rename to test/builtins/textureGather/f32/green.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/f32/green.wgsl.expected.spvasm b/test/builtins/textureGather/f32/green.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/f32/green.wgsl.expected.spvasm
rename to test/builtins/textureGather/f32/green.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/f32/green.wgsl.expected.wgsl b/test/builtins/textureGather/f32/green.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/green.wgsl.expected.wgsl
rename to test/builtins/textureGather/f32/green.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/f32/red.wgsl b/test/builtins/textureGather/f32/red.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/red.wgsl
rename to test/builtins/textureGather/f32/red.wgsl
diff --git a/test/intrinsics/textureGather/f32/red.wgsl.expected.glsl b/test/builtins/textureGather/f32/red.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/red.wgsl.expected.glsl
rename to test/builtins/textureGather/f32/red.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/f32/red.wgsl.expected.hlsl b/test/builtins/textureGather/f32/red.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/red.wgsl.expected.hlsl
rename to test/builtins/textureGather/f32/red.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/f32/red.wgsl.expected.msl b/test/builtins/textureGather/f32/red.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/f32/red.wgsl.expected.msl
rename to test/builtins/textureGather/f32/red.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/f32/red.wgsl.expected.spvasm b/test/builtins/textureGather/f32/red.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/f32/red.wgsl.expected.spvasm
rename to test/builtins/textureGather/f32/red.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/f32/red.wgsl.expected.wgsl b/test/builtins/textureGather/f32/red.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/f32/red.wgsl.expected.wgsl
rename to test/builtins/textureGather/f32/red.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/i32/alpha.wgsl b/test/builtins/textureGather/i32/alpha.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/alpha.wgsl
rename to test/builtins/textureGather/i32/alpha.wgsl
diff --git a/test/intrinsics/textureGather/i32/alpha.wgsl.expected.glsl b/test/builtins/textureGather/i32/alpha.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/alpha.wgsl.expected.glsl
rename to test/builtins/textureGather/i32/alpha.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/i32/alpha.wgsl.expected.hlsl b/test/builtins/textureGather/i32/alpha.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/alpha.wgsl.expected.hlsl
rename to test/builtins/textureGather/i32/alpha.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/i32/alpha.wgsl.expected.msl b/test/builtins/textureGather/i32/alpha.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/i32/alpha.wgsl.expected.msl
rename to test/builtins/textureGather/i32/alpha.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/i32/alpha.wgsl.expected.spvasm b/test/builtins/textureGather/i32/alpha.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/i32/alpha.wgsl.expected.spvasm
rename to test/builtins/textureGather/i32/alpha.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/i32/alpha.wgsl.expected.wgsl b/test/builtins/textureGather/i32/alpha.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/alpha.wgsl.expected.wgsl
rename to test/builtins/textureGather/i32/alpha.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/i32/blue.wgsl b/test/builtins/textureGather/i32/blue.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/blue.wgsl
rename to test/builtins/textureGather/i32/blue.wgsl
diff --git a/test/intrinsics/textureGather/i32/blue.wgsl.expected.glsl b/test/builtins/textureGather/i32/blue.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/blue.wgsl.expected.glsl
rename to test/builtins/textureGather/i32/blue.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/i32/blue.wgsl.expected.hlsl b/test/builtins/textureGather/i32/blue.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/blue.wgsl.expected.hlsl
rename to test/builtins/textureGather/i32/blue.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/i32/blue.wgsl.expected.msl b/test/builtins/textureGather/i32/blue.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/i32/blue.wgsl.expected.msl
rename to test/builtins/textureGather/i32/blue.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/i32/blue.wgsl.expected.spvasm b/test/builtins/textureGather/i32/blue.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/i32/blue.wgsl.expected.spvasm
rename to test/builtins/textureGather/i32/blue.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/i32/blue.wgsl.expected.wgsl b/test/builtins/textureGather/i32/blue.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/blue.wgsl.expected.wgsl
rename to test/builtins/textureGather/i32/blue.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/i32/green.wgsl b/test/builtins/textureGather/i32/green.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/green.wgsl
rename to test/builtins/textureGather/i32/green.wgsl
diff --git a/test/intrinsics/textureGather/i32/green.wgsl.expected.glsl b/test/builtins/textureGather/i32/green.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/green.wgsl.expected.glsl
rename to test/builtins/textureGather/i32/green.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/i32/green.wgsl.expected.hlsl b/test/builtins/textureGather/i32/green.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/green.wgsl.expected.hlsl
rename to test/builtins/textureGather/i32/green.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/i32/green.wgsl.expected.msl b/test/builtins/textureGather/i32/green.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/i32/green.wgsl.expected.msl
rename to test/builtins/textureGather/i32/green.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/i32/green.wgsl.expected.spvasm b/test/builtins/textureGather/i32/green.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/i32/green.wgsl.expected.spvasm
rename to test/builtins/textureGather/i32/green.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/i32/green.wgsl.expected.wgsl b/test/builtins/textureGather/i32/green.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/green.wgsl.expected.wgsl
rename to test/builtins/textureGather/i32/green.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/i32/red.wgsl b/test/builtins/textureGather/i32/red.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/red.wgsl
rename to test/builtins/textureGather/i32/red.wgsl
diff --git a/test/intrinsics/textureGather/i32/red.wgsl.expected.glsl b/test/builtins/textureGather/i32/red.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/red.wgsl.expected.glsl
rename to test/builtins/textureGather/i32/red.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/i32/red.wgsl.expected.hlsl b/test/builtins/textureGather/i32/red.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/red.wgsl.expected.hlsl
rename to test/builtins/textureGather/i32/red.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/i32/red.wgsl.expected.msl b/test/builtins/textureGather/i32/red.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/i32/red.wgsl.expected.msl
rename to test/builtins/textureGather/i32/red.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/i32/red.wgsl.expected.spvasm b/test/builtins/textureGather/i32/red.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/i32/red.wgsl.expected.spvasm
rename to test/builtins/textureGather/i32/red.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/i32/red.wgsl.expected.wgsl b/test/builtins/textureGather/i32/red.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/i32/red.wgsl.expected.wgsl
rename to test/builtins/textureGather/i32/red.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/u32/alpha.wgsl b/test/builtins/textureGather/u32/alpha.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/alpha.wgsl
rename to test/builtins/textureGather/u32/alpha.wgsl
diff --git a/test/intrinsics/textureGather/u32/alpha.wgsl.expected.glsl b/test/builtins/textureGather/u32/alpha.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/alpha.wgsl.expected.glsl
rename to test/builtins/textureGather/u32/alpha.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/u32/alpha.wgsl.expected.hlsl b/test/builtins/textureGather/u32/alpha.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/alpha.wgsl.expected.hlsl
rename to test/builtins/textureGather/u32/alpha.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/u32/alpha.wgsl.expected.msl b/test/builtins/textureGather/u32/alpha.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/u32/alpha.wgsl.expected.msl
rename to test/builtins/textureGather/u32/alpha.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/u32/alpha.wgsl.expected.spvasm b/test/builtins/textureGather/u32/alpha.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/u32/alpha.wgsl.expected.spvasm
rename to test/builtins/textureGather/u32/alpha.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/u32/alpha.wgsl.expected.wgsl b/test/builtins/textureGather/u32/alpha.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/alpha.wgsl.expected.wgsl
rename to test/builtins/textureGather/u32/alpha.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/u32/blue.wgsl b/test/builtins/textureGather/u32/blue.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/blue.wgsl
rename to test/builtins/textureGather/u32/blue.wgsl
diff --git a/test/intrinsics/textureGather/u32/blue.wgsl.expected.glsl b/test/builtins/textureGather/u32/blue.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/blue.wgsl.expected.glsl
rename to test/builtins/textureGather/u32/blue.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/u32/blue.wgsl.expected.hlsl b/test/builtins/textureGather/u32/blue.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/blue.wgsl.expected.hlsl
rename to test/builtins/textureGather/u32/blue.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/u32/blue.wgsl.expected.msl b/test/builtins/textureGather/u32/blue.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/u32/blue.wgsl.expected.msl
rename to test/builtins/textureGather/u32/blue.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/u32/blue.wgsl.expected.spvasm b/test/builtins/textureGather/u32/blue.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/u32/blue.wgsl.expected.spvasm
rename to test/builtins/textureGather/u32/blue.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/u32/blue.wgsl.expected.wgsl b/test/builtins/textureGather/u32/blue.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/blue.wgsl.expected.wgsl
rename to test/builtins/textureGather/u32/blue.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/u32/green.wgsl b/test/builtins/textureGather/u32/green.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/green.wgsl
rename to test/builtins/textureGather/u32/green.wgsl
diff --git a/test/intrinsics/textureGather/u32/green.wgsl.expected.glsl b/test/builtins/textureGather/u32/green.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/green.wgsl.expected.glsl
rename to test/builtins/textureGather/u32/green.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/u32/green.wgsl.expected.hlsl b/test/builtins/textureGather/u32/green.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/green.wgsl.expected.hlsl
rename to test/builtins/textureGather/u32/green.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/u32/green.wgsl.expected.msl b/test/builtins/textureGather/u32/green.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/u32/green.wgsl.expected.msl
rename to test/builtins/textureGather/u32/green.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/u32/green.wgsl.expected.spvasm b/test/builtins/textureGather/u32/green.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/u32/green.wgsl.expected.spvasm
rename to test/builtins/textureGather/u32/green.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/u32/green.wgsl.expected.wgsl b/test/builtins/textureGather/u32/green.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/green.wgsl.expected.wgsl
rename to test/builtins/textureGather/u32/green.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureGather/u32/red.wgsl b/test/builtins/textureGather/u32/red.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/red.wgsl
rename to test/builtins/textureGather/u32/red.wgsl
diff --git a/test/intrinsics/textureGather/u32/red.wgsl.expected.glsl b/test/builtins/textureGather/u32/red.wgsl.expected.glsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/red.wgsl.expected.glsl
rename to test/builtins/textureGather/u32/red.wgsl.expected.glsl
diff --git a/test/intrinsics/textureGather/u32/red.wgsl.expected.hlsl b/test/builtins/textureGather/u32/red.wgsl.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/red.wgsl.expected.hlsl
rename to test/builtins/textureGather/u32/red.wgsl.expected.hlsl
diff --git a/test/intrinsics/textureGather/u32/red.wgsl.expected.msl b/test/builtins/textureGather/u32/red.wgsl.expected.msl
similarity index 100%
rename from test/intrinsics/textureGather/u32/red.wgsl.expected.msl
rename to test/builtins/textureGather/u32/red.wgsl.expected.msl
diff --git a/test/intrinsics/textureGather/u32/red.wgsl.expected.spvasm b/test/builtins/textureGather/u32/red.wgsl.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureGather/u32/red.wgsl.expected.spvasm
rename to test/builtins/textureGather/u32/red.wgsl.expected.spvasm
diff --git a/test/intrinsics/textureGather/u32/red.wgsl.expected.wgsl b/test/builtins/textureGather/u32/red.wgsl.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureGather/u32/red.wgsl.expected.wgsl
rename to test/builtins/textureGather/u32/red.wgsl.expected.wgsl
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm b/test/builtins/textureLoad/depth_ms.spvasm
similarity index 100%
rename from test/intrinsics/textureLoad/depth_ms.spvasm
rename to test/builtins/textureLoad/depth_ms.spvasm
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl b/test/builtins/textureLoad/depth_ms.spvasm.expected.glsl
similarity index 100%
rename from test/intrinsics/textureLoad/depth_ms.spvasm.expected.glsl
rename to test/builtins/textureLoad/depth_ms.spvasm.expected.glsl
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.hlsl b/test/builtins/textureLoad/depth_ms.spvasm.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureLoad/depth_ms.spvasm.expected.hlsl
rename to test/builtins/textureLoad/depth_ms.spvasm.expected.hlsl
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.msl b/test/builtins/textureLoad/depth_ms.spvasm.expected.msl
similarity index 100%
rename from test/intrinsics/textureLoad/depth_ms.spvasm.expected.msl
rename to test/builtins/textureLoad/depth_ms.spvasm.expected.msl
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.spvasm b/test/builtins/textureLoad/depth_ms.spvasm.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureLoad/depth_ms.spvasm.expected.spvasm
rename to test/builtins/textureLoad/depth_ms.spvasm.expected.spvasm
diff --git a/test/intrinsics/textureLoad/depth_ms.spvasm.expected.wgsl b/test/builtins/textureLoad/depth_ms.spvasm.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureLoad/depth_ms.spvasm.expected.wgsl
rename to test/builtins/textureLoad/depth_ms.spvasm.expected.wgsl
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm b/test/builtins/textureNumSamples/depth_ms.spvasm
similarity index 100%
rename from test/intrinsics/textureNumSamples/depth_ms.spvasm
rename to test/builtins/textureNumSamples/depth_ms.spvasm
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl b/test/builtins/textureNumSamples/depth_ms.spvasm.expected.glsl
similarity index 100%
rename from test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.glsl
rename to test/builtins/textureNumSamples/depth_ms.spvasm.expected.glsl
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.hlsl b/test/builtins/textureNumSamples/depth_ms.spvasm.expected.hlsl
similarity index 100%
rename from test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.hlsl
rename to test/builtins/textureNumSamples/depth_ms.spvasm.expected.hlsl
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.msl b/test/builtins/textureNumSamples/depth_ms.spvasm.expected.msl
similarity index 100%
rename from test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.msl
rename to test/builtins/textureNumSamples/depth_ms.spvasm.expected.msl
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.spvasm b/test/builtins/textureNumSamples/depth_ms.spvasm.expected.spvasm
similarity index 100%
rename from test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.spvasm
rename to test/builtins/textureNumSamples/depth_ms.spvasm.expected.spvasm
diff --git a/test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.wgsl b/test/builtins/textureNumSamples/depth_ms.spvasm.expected.wgsl
similarity index 100%
rename from test/intrinsics/textureNumSamples/depth_ms.spvasm.expected.wgsl
rename to test/builtins/textureNumSamples/depth_ms.spvasm.expected.wgsl
diff --git a/test/intrinsics/gen/abs/002533.wgsl b/test/intrinsics/gen/abs/002533.wgsl
deleted file mode 100644
index 1a7c3f8..0000000
--- a/test/intrinsics/gen/abs/002533.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<4, f32>) -> vec<4, f32>
-fn abs_002533() {
-  var res: vec4<f32> = abs(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_002533();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_002533();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_002533();
-}
diff --git a/test/intrinsics/gen/abs/005174.wgsl b/test/intrinsics/gen/abs/005174.wgsl
deleted file mode 100644
index ecbf409..0000000
--- a/test/intrinsics/gen/abs/005174.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<3, f32>) -> vec<3, f32>
-fn abs_005174() {
-  var res: vec3<f32> = abs(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_005174();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_005174();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_005174();
-}
diff --git a/test/intrinsics/gen/abs/1ce782.wgsl b/test/intrinsics/gen/abs/1ce782.wgsl
deleted file mode 100644
index 7a7666e..0000000
--- a/test/intrinsics/gen/abs/1ce782.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<4, u32>) -> vec<4, u32>
-fn abs_1ce782() {
-  var res: vec4<u32> = abs(vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_1ce782();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_1ce782();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_1ce782();
-}
diff --git a/test/intrinsics/gen/abs/1e9d53.wgsl b/test/intrinsics/gen/abs/1e9d53.wgsl
deleted file mode 100644
index 45cac6d..0000000
--- a/test/intrinsics/gen/abs/1e9d53.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<2, f32>) -> vec<2, f32>
-fn abs_1e9d53() {
-  var res: vec2<f32> = abs(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_1e9d53();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_1e9d53();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_1e9d53();
-}
diff --git a/test/intrinsics/gen/abs/467cd1.wgsl b/test/intrinsics/gen/abs/467cd1.wgsl
deleted file mode 100644
index 99b46e2..0000000
--- a/test/intrinsics/gen/abs/467cd1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(u32) -> u32
-fn abs_467cd1() {
-  var res: u32 = abs(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_467cd1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_467cd1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_467cd1();
-}
diff --git a/test/intrinsics/gen/abs/4ad288.wgsl b/test/intrinsics/gen/abs/4ad288.wgsl
deleted file mode 100644
index b342fa7..0000000
--- a/test/intrinsics/gen/abs/4ad288.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(i32) -> i32
-fn abs_4ad288() {
-  var res: i32 = abs(1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_4ad288();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_4ad288();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_4ad288();
-}
diff --git a/test/intrinsics/gen/abs/5ad50a.wgsl b/test/intrinsics/gen/abs/5ad50a.wgsl
deleted file mode 100644
index 8cd6725..0000000
--- a/test/intrinsics/gen/abs/5ad50a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<3, i32>) -> vec<3, i32>
-fn abs_5ad50a() {
-  var res: vec3<i32> = abs(vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_5ad50a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_5ad50a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_5ad50a();
-}
diff --git a/test/intrinsics/gen/abs/7326de.wgsl b/test/intrinsics/gen/abs/7326de.wgsl
deleted file mode 100644
index ce2be53..0000000
--- a/test/intrinsics/gen/abs/7326de.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<3, u32>) -> vec<3, u32>
-fn abs_7326de() {
-  var res: vec3<u32> = abs(vec3<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_7326de();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_7326de();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_7326de();
-}
diff --git a/test/intrinsics/gen/abs/7f28e6.wgsl b/test/intrinsics/gen/abs/7f28e6.wgsl
deleted file mode 100644
index cbdeef0..0000000
--- a/test/intrinsics/gen/abs/7f28e6.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<2, u32>) -> vec<2, u32>
-fn abs_7f28e6() {
-  var res: vec2<u32> = abs(vec2<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_7f28e6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_7f28e6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_7f28e6();
-}
diff --git a/test/intrinsics/gen/abs/7faa9e.wgsl b/test/intrinsics/gen/abs/7faa9e.wgsl
deleted file mode 100644
index 8b250ee..0000000
--- a/test/intrinsics/gen/abs/7faa9e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<2, i32>) -> vec<2, i32>
-fn abs_7faa9e() {
-  var res: vec2<i32> = abs(vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_7faa9e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_7faa9e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_7faa9e();
-}
diff --git a/test/intrinsics/gen/abs/9c80a6.wgsl b/test/intrinsics/gen/abs/9c80a6.wgsl
deleted file mode 100644
index 71ef852..0000000
--- a/test/intrinsics/gen/abs/9c80a6.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(vec<4, i32>) -> vec<4, i32>
-fn abs_9c80a6() {
-  var res: vec4<i32> = abs(vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_9c80a6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_9c80a6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_9c80a6();
-}
diff --git a/test/intrinsics/gen/abs/b96037.wgsl b/test/intrinsics/gen/abs/b96037.wgsl
deleted file mode 100644
index dddc75e..0000000
--- a/test/intrinsics/gen/abs/b96037.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn abs(f32) -> f32
-fn abs_b96037() {
-  var res: f32 = abs(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  abs_b96037();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  abs_b96037();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  abs_b96037();
-}
diff --git a/test/intrinsics/gen/acos/489247.wgsl b/test/intrinsics/gen/acos/489247.wgsl
deleted file mode 100644
index d2f227a..0000000
--- a/test/intrinsics/gen/acos/489247.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn acos(f32) -> f32
-fn acos_489247() {
-  var res: f32 = acos(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  acos_489247();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  acos_489247();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  acos_489247();
-}
diff --git a/test/intrinsics/gen/acos/8e2acf.wgsl b/test/intrinsics/gen/acos/8e2acf.wgsl
deleted file mode 100644
index e085fae..0000000
--- a/test/intrinsics/gen/acos/8e2acf.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn acos(vec<4, f32>) -> vec<4, f32>
-fn acos_8e2acf() {
-  var res: vec4<f32> = acos(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  acos_8e2acf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  acos_8e2acf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  acos_8e2acf();
-}
diff --git a/test/intrinsics/gen/acos/a610c4.wgsl b/test/intrinsics/gen/acos/a610c4.wgsl
deleted file mode 100644
index 7f7be34..0000000
--- a/test/intrinsics/gen/acos/a610c4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn acos(vec<3, f32>) -> vec<3, f32>
-fn acos_a610c4() {
-  var res: vec3<f32> = acos(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  acos_a610c4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  acos_a610c4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  acos_a610c4();
-}
diff --git a/test/intrinsics/gen/acos/dfc915.wgsl b/test/intrinsics/gen/acos/dfc915.wgsl
deleted file mode 100644
index 5e27bf8..0000000
--- a/test/intrinsics/gen/acos/dfc915.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn acos(vec<2, f32>) -> vec<2, f32>
-fn acos_dfc915() {
-  var res: vec2<f32> = acos(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  acos_dfc915();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  acos_dfc915();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  acos_dfc915();
-}
diff --git a/test/intrinsics/gen/all/353d6a.wgsl b/test/intrinsics/gen/all/353d6a.wgsl
deleted file mode 100644
index fbfe933..0000000
--- a/test/intrinsics/gen/all/353d6a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn all(bool) -> bool
-fn all_353d6a() {
-  var res: bool = all(bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  all_353d6a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  all_353d6a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  all_353d6a();
-}
diff --git a/test/intrinsics/gen/all/986c7b.wgsl b/test/intrinsics/gen/all/986c7b.wgsl
deleted file mode 100644
index 515f3a3..0000000
--- a/test/intrinsics/gen/all/986c7b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn all(vec<4, bool>) -> bool
-fn all_986c7b() {
-  var res: bool = all(vec4<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  all_986c7b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  all_986c7b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  all_986c7b();
-}
diff --git a/test/intrinsics/gen/all/bd2dba.wgsl b/test/intrinsics/gen/all/bd2dba.wgsl
deleted file mode 100644
index 657678f..0000000
--- a/test/intrinsics/gen/all/bd2dba.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn all(vec<3, bool>) -> bool
-fn all_bd2dba() {
-  var res: bool = all(vec3<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  all_bd2dba();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  all_bd2dba();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  all_bd2dba();
-}
diff --git a/test/intrinsics/gen/all/f46790.wgsl b/test/intrinsics/gen/all/f46790.wgsl
deleted file mode 100644
index 875da79..0000000
--- a/test/intrinsics/gen/all/f46790.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn all(vec<2, bool>) -> bool
-fn all_f46790() {
-  var res: bool = all(vec2<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  all_f46790();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  all_f46790();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  all_f46790();
-}
diff --git a/test/intrinsics/gen/any/083428.wgsl b/test/intrinsics/gen/any/083428.wgsl
deleted file mode 100644
index 8aecc0f..0000000
--- a/test/intrinsics/gen/any/083428.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn any(vec<4, bool>) -> bool
-fn any_083428() {
-  var res: bool = any(vec4<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  any_083428();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  any_083428();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  any_083428();
-}
diff --git a/test/intrinsics/gen/any/0e3e58.wgsl b/test/intrinsics/gen/any/0e3e58.wgsl
deleted file mode 100644
index 71bda25..0000000
--- a/test/intrinsics/gen/any/0e3e58.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn any(vec<2, bool>) -> bool
-fn any_0e3e58() {
-  var res: bool = any(vec2<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  any_0e3e58();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  any_0e3e58();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  any_0e3e58();
-}
diff --git a/test/intrinsics/gen/any/2ab91a.wgsl b/test/intrinsics/gen/any/2ab91a.wgsl
deleted file mode 100644
index 6b6b067..0000000
--- a/test/intrinsics/gen/any/2ab91a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn any(bool) -> bool
-fn any_2ab91a() {
-  var res: bool = any(bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  any_2ab91a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  any_2ab91a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  any_2ab91a();
-}
diff --git a/test/intrinsics/gen/any/e755c1.wgsl b/test/intrinsics/gen/any/e755c1.wgsl
deleted file mode 100644
index b27d31a..0000000
--- a/test/intrinsics/gen/any/e755c1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn any(vec<3, bool>) -> bool
-fn any_e755c1() {
-  var res: bool = any(vec3<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  any_e755c1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  any_e755c1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  any_e755c1();
-}
diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl b/test/intrinsics/gen/arrayLength/1588cd.wgsl
deleted file mode 100644
index 727e8bd..0000000
--- a/test/intrinsics/gen/arrayLength/1588cd.wgsl
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RO {
-  arg_0: array<i32>;
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn arrayLength(ptr<storage, array<i32>, read>) -> u32
-fn arrayLength_1588cd() {
-  var res: u32 = arrayLength(&sb_ro.arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  arrayLength_1588cd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  arrayLength_1588cd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  arrayLength_1588cd();
-}
diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl b/test/intrinsics/gen/arrayLength/61b1c7.wgsl
deleted file mode 100644
index 02b7f3d..0000000
--- a/test/intrinsics/gen/arrayLength/61b1c7.wgsl
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: array<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn arrayLength(ptr<storage, array<i32>, read_write>) -> u32
-fn arrayLength_61b1c7() {
-  var res: u32 = arrayLength(&sb_rw.arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  arrayLength_61b1c7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  arrayLength_61b1c7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  arrayLength_61b1c7();
-}
diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl
deleted file mode 100644
index 192d288..0000000
--- a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RO {
-  arg_0: array<f32>;
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn arrayLength(ptr<storage, array<f32>, read>) -> u32
-fn arrayLength_a0f5ca() {
-  var res: u32 = arrayLength(&sb_ro.arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  arrayLength_a0f5ca();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  arrayLength_a0f5ca();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  arrayLength_a0f5ca();
-}
diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl b/test/intrinsics/gen/arrayLength/cdd123.wgsl
deleted file mode 100644
index 03948a9..0000000
--- a/test/intrinsics/gen/arrayLength/cdd123.wgsl
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: array<f32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn arrayLength(ptr<storage, array<f32>, read_write>) -> u32
-fn arrayLength_cdd123() {
-  var res: u32 = arrayLength(&sb_rw.arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  arrayLength_cdd123();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  arrayLength_cdd123();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  arrayLength_cdd123();
-}
diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl b/test/intrinsics/gen/arrayLength/cfca0a.wgsl
deleted file mode 100644
index e3f72dd..0000000
--- a/test/intrinsics/gen/arrayLength/cfca0a.wgsl
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RO {
-  arg_0: array<u32>;
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn arrayLength(ptr<storage, array<u32>, read>) -> u32
-fn arrayLength_cfca0a() {
-  var res: u32 = arrayLength(&sb_ro.arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  arrayLength_cfca0a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  arrayLength_cfca0a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  arrayLength_cfca0a();
-}
diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl b/test/intrinsics/gen/arrayLength/eb510f.wgsl
deleted file mode 100644
index 86133e5..0000000
--- a/test/intrinsics/gen/arrayLength/eb510f.wgsl
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: array<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn arrayLength(ptr<storage, array<u32>, read_write>) -> u32
-fn arrayLength_eb510f() {
-  var res: u32 = arrayLength(&sb_rw.arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  arrayLength_eb510f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  arrayLength_eb510f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  arrayLength_eb510f();
-}
diff --git a/test/intrinsics/gen/asin/064953.wgsl b/test/intrinsics/gen/asin/064953.wgsl
deleted file mode 100644
index f72a8c5..0000000
--- a/test/intrinsics/gen/asin/064953.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn asin(vec<4, f32>) -> vec<4, f32>
-fn asin_064953() {
-  var res: vec4<f32> = asin(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  asin_064953();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  asin_064953();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  asin_064953();
-}
diff --git a/test/intrinsics/gen/asin/7b6a44.wgsl b/test/intrinsics/gen/asin/7b6a44.wgsl
deleted file mode 100644
index 6369852..0000000
--- a/test/intrinsics/gen/asin/7b6a44.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn asin(vec<2, f32>) -> vec<2, f32>
-fn asin_7b6a44() {
-  var res: vec2<f32> = asin(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  asin_7b6a44();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  asin_7b6a44();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  asin_7b6a44();
-}
diff --git a/test/intrinsics/gen/asin/8cd9c9.wgsl b/test/intrinsics/gen/asin/8cd9c9.wgsl
deleted file mode 100644
index 0f7abb0..0000000
--- a/test/intrinsics/gen/asin/8cd9c9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn asin(vec<3, f32>) -> vec<3, f32>
-fn asin_8cd9c9() {
-  var res: vec3<f32> = asin(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  asin_8cd9c9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  asin_8cd9c9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  asin_8cd9c9();
-}
diff --git a/test/intrinsics/gen/asin/c0c272.wgsl b/test/intrinsics/gen/asin/c0c272.wgsl
deleted file mode 100644
index b673fe3..0000000
--- a/test/intrinsics/gen/asin/c0c272.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn asin(f32) -> f32
-fn asin_c0c272() {
-  var res: f32 = asin(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  asin_c0c272();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  asin_c0c272();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  asin_c0c272();
-}
diff --git a/test/intrinsics/gen/atan/02979a.wgsl b/test/intrinsics/gen/atan/02979a.wgsl
deleted file mode 100644
index fb9d08232..0000000
--- a/test/intrinsics/gen/atan/02979a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan(f32) -> f32
-fn atan_02979a() {
-  var res: f32 = atan(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan_02979a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan_02979a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan_02979a();
-}
diff --git a/test/intrinsics/gen/atan/331e6d.wgsl b/test/intrinsics/gen/atan/331e6d.wgsl
deleted file mode 100644
index e090a63..0000000
--- a/test/intrinsics/gen/atan/331e6d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan(vec<3, f32>) -> vec<3, f32>
-fn atan_331e6d() {
-  var res: vec3<f32> = atan(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan_331e6d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan_331e6d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan_331e6d();
-}
diff --git a/test/intrinsics/gen/atan/a8b696.wgsl b/test/intrinsics/gen/atan/a8b696.wgsl
deleted file mode 100644
index 8b1c3cf..0000000
--- a/test/intrinsics/gen/atan/a8b696.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan(vec<4, f32>) -> vec<4, f32>
-fn atan_a8b696() {
-  var res: vec4<f32> = atan(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan_a8b696();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan_a8b696();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan_a8b696();
-}
diff --git a/test/intrinsics/gen/atan/ad96e4.wgsl b/test/intrinsics/gen/atan/ad96e4.wgsl
deleted file mode 100644
index b334a9e..0000000
--- a/test/intrinsics/gen/atan/ad96e4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan(vec<2, f32>) -> vec<2, f32>
-fn atan_ad96e4() {
-  var res: vec2<f32> = atan(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan_ad96e4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan_ad96e4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan_ad96e4();
-}
diff --git a/test/intrinsics/gen/atan2/57fb13.wgsl b/test/intrinsics/gen/atan2/57fb13.wgsl
deleted file mode 100644
index c18536f..0000000
--- a/test/intrinsics/gen/atan2/57fb13.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan2(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn atan2_57fb13() {
-  var res: vec2<f32> = atan2(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan2_57fb13();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan2_57fb13();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan2_57fb13();
-}
diff --git a/test/intrinsics/gen/atan2/96057c.wgsl b/test/intrinsics/gen/atan2/96057c.wgsl
deleted file mode 100644
index 0955766..0000000
--- a/test/intrinsics/gen/atan2/96057c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan2(f32, f32) -> f32
-fn atan2_96057c() {
-  var res: f32 = atan2(1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan2_96057c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan2_96057c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan2_96057c();
-}
diff --git a/test/intrinsics/gen/atan2/a70d0d.wgsl b/test/intrinsics/gen/atan2/a70d0d.wgsl
deleted file mode 100644
index 87a3c7a..0000000
--- a/test/intrinsics/gen/atan2/a70d0d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan2(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn atan2_a70d0d() {
-  var res: vec3<f32> = atan2(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan2_a70d0d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan2_a70d0d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan2_a70d0d();
-}
diff --git a/test/intrinsics/gen/atan2/ae713e.wgsl b/test/intrinsics/gen/atan2/ae713e.wgsl
deleted file mode 100644
index 381ca2a..0000000
--- a/test/intrinsics/gen/atan2/ae713e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn atan2(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn atan2_ae713e() {
-  var res: vec4<f32> = atan2(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  atan2_ae713e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atan2_ae713e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atan2_ae713e();
-}
diff --git a/test/intrinsics/gen/atomicAdd/794055.wgsl b/test/intrinsics/gen/atomicAdd/794055.wgsl
deleted file mode 100644
index 5963b4f..0000000
--- a/test/intrinsics/gen/atomicAdd/794055.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicAdd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicAdd_794055() {
-  var res: i32 = atomicAdd(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAdd_794055();
-}
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl b/test/intrinsics/gen/atomicAdd/8a199a.wgsl
deleted file mode 100644
index aae79c2..0000000
--- a/test/intrinsics/gen/atomicAdd/8a199a.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicAdd(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicAdd_8a199a() {
-  var res: u32 = atomicAdd(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicAdd_8a199a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAdd_8a199a();
-}
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl
deleted file mode 100644
index 4cf4eb6..0000000
--- a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicAdd(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicAdd_d32fe4() {
-  var res: i32 = atomicAdd(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicAdd_d32fe4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAdd_d32fe4();
-}
diff --git a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl b/test/intrinsics/gen/atomicAdd/d5db1d.wgsl
deleted file mode 100644
index 55329bc..0000000
--- a/test/intrinsics/gen/atomicAdd/d5db1d.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicAdd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicAdd_d5db1d() {
-  var res: u32 = atomicAdd(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAdd_d5db1d();
-}
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl b/test/intrinsics/gen/atomicAnd/152966.wgsl
deleted file mode 100644
index b99ab19..0000000
--- a/test/intrinsics/gen/atomicAnd/152966.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicAnd(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicAnd_152966() {
-  var res: i32 = atomicAnd(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicAnd_152966();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAnd_152966();
-}
diff --git a/test/intrinsics/gen/atomicAnd/34edd3.wgsl b/test/intrinsics/gen/atomicAnd/34edd3.wgsl
deleted file mode 100644
index 567863d..0000000
--- a/test/intrinsics/gen/atomicAnd/34edd3.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicAnd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicAnd_34edd3() {
-  var res: u32 = atomicAnd(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAnd_34edd3();
-}
diff --git a/test/intrinsics/gen/atomicAnd/45a819.wgsl b/test/intrinsics/gen/atomicAnd/45a819.wgsl
deleted file mode 100644
index 9eef5c3..0000000
--- a/test/intrinsics/gen/atomicAnd/45a819.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicAnd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicAnd_45a819() {
-  var res: i32 = atomicAnd(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAnd_45a819();
-}
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl
deleted file mode 100644
index 042cba6..0000000
--- a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicAnd(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicAnd_85a8d9() {
-  var res: u32 = atomicAnd(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicAnd_85a8d9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicAnd_85a8d9();
-}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl
deleted file mode 100644
index 3735ad4..0000000
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicCompareExchangeWeak(ptr<storage, atomic<i32>, read_write>, i32, i32) -> vec2<i32>
-fn atomicCompareExchangeWeak_12871c() {
-  var res: vec2<i32> = atomicCompareExchangeWeak(&sb_rw.arg_0, 1, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicCompareExchangeWeak_12871c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicCompareExchangeWeak_12871c();
-}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl
deleted file mode 100644
index be43eb0..0000000
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicCompareExchangeWeak(ptr<storage, atomic<u32>, read_write>, u32, u32) -> vec2<u32>
-fn atomicCompareExchangeWeak_6673da() {
-  var res: vec2<u32> = atomicCompareExchangeWeak(&sb_rw.arg_0, 1u, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicCompareExchangeWeak_6673da();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicCompareExchangeWeak_6673da();
-}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl b/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl
deleted file mode 100644
index 58bf4b5..0000000
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/89ea3b.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicCompareExchangeWeak(ptr<workgroup, atomic<i32>, read_write>, i32, i32) -> vec2<i32>
-fn atomicCompareExchangeWeak_89ea3b() {
-  var res: vec2<i32> = atomicCompareExchangeWeak(&arg_0, 1, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicCompareExchangeWeak_89ea3b();
-}
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl b/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl
deleted file mode 100644
index 38cf645..0000000
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/b2ab2c.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicCompareExchangeWeak(ptr<workgroup, atomic<u32>, read_write>, u32, u32) -> vec2<u32>
-fn atomicCompareExchangeWeak_b2ab2c() {
-  var res: vec2<u32> = atomicCompareExchangeWeak(&arg_0, 1u, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicCompareExchangeWeak_b2ab2c();
-}
diff --git a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl b/test/intrinsics/gen/atomicExchange/0a5dca.wgsl
deleted file mode 100644
index 44ac264..0000000
--- a/test/intrinsics/gen/atomicExchange/0a5dca.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicExchange(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicExchange_0a5dca() {
-  var res: u32 = atomicExchange(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicExchange_0a5dca();
-}
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl b/test/intrinsics/gen/atomicExchange/d59712.wgsl
deleted file mode 100644
index fc014ee..0000000
--- a/test/intrinsics/gen/atomicExchange/d59712.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicExchange(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicExchange_d59712() {
-  var res: u32 = atomicExchange(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicExchange_d59712();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicExchange_d59712();
-}
diff --git a/test/intrinsics/gen/atomicExchange/e114ba.wgsl b/test/intrinsics/gen/atomicExchange/e114ba.wgsl
deleted file mode 100644
index f52534a..0000000
--- a/test/intrinsics/gen/atomicExchange/e114ba.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicExchange(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicExchange_e114ba() {
-  var res: i32 = atomicExchange(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicExchange_e114ba();
-}
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl
deleted file mode 100644
index be22ff9..0000000
--- a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicExchange(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicExchange_f2e22f() {
-  var res: i32 = atomicExchange(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicExchange_f2e22f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicExchange_f2e22f();
-}
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl b/test/intrinsics/gen/atomicLoad/0806ad.wgsl
deleted file mode 100644
index 0981e05..0000000
--- a/test/intrinsics/gen/atomicLoad/0806ad.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicLoad(ptr<storage, atomic<i32>, read_write>) -> i32
-fn atomicLoad_0806ad() {
-  var res: i32 = atomicLoad(&sb_rw.arg_0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicLoad_0806ad();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicLoad_0806ad();
-}
diff --git a/test/intrinsics/gen/atomicLoad/361bf1.wgsl b/test/intrinsics/gen/atomicLoad/361bf1.wgsl
deleted file mode 100644
index 3c51abc..0000000
--- a/test/intrinsics/gen/atomicLoad/361bf1.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicLoad(ptr<workgroup, atomic<u32>, read_write>) -> u32
-fn atomicLoad_361bf1() {
-  var res: u32 = atomicLoad(&arg_0);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicLoad_361bf1();
-}
diff --git a/test/intrinsics/gen/atomicLoad/afcc03.wgsl b/test/intrinsics/gen/atomicLoad/afcc03.wgsl
deleted file mode 100644
index 7585c6f..0000000
--- a/test/intrinsics/gen/atomicLoad/afcc03.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicLoad(ptr<workgroup, atomic<i32>, read_write>) -> i32
-fn atomicLoad_afcc03() {
-  var res: i32 = atomicLoad(&arg_0);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicLoad_afcc03();
-}
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl
deleted file mode 100644
index d337a1e..0000000
--- a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicLoad(ptr<storage, atomic<u32>, read_write>) -> u32
-fn atomicLoad_fe6cc3() {
-  var res: u32 = atomicLoad(&sb_rw.arg_0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicLoad_fe6cc3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicLoad_fe6cc3();
-}
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl b/test/intrinsics/gen/atomicMax/51b9be.wgsl
deleted file mode 100644
index 7f2e69c..0000000
--- a/test/intrinsics/gen/atomicMax/51b9be.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicMax(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicMax_51b9be() {
-  var res: u32 = atomicMax(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicMax_51b9be();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMax_51b9be();
-}
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl b/test/intrinsics/gen/atomicMax/92aa72.wgsl
deleted file mode 100644
index 603ea33..0000000
--- a/test/intrinsics/gen/atomicMax/92aa72.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicMax(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicMax_92aa72() {
-  var res: i32 = atomicMax(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicMax_92aa72();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMax_92aa72();
-}
diff --git a/test/intrinsics/gen/atomicMax/a89cc3.wgsl b/test/intrinsics/gen/atomicMax/a89cc3.wgsl
deleted file mode 100644
index f6c65cf..0000000
--- a/test/intrinsics/gen/atomicMax/a89cc3.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicMax(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicMax_a89cc3() {
-  var res: i32 = atomicMax(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMax_a89cc3();
-}
diff --git a/test/intrinsics/gen/atomicMax/beccfc.wgsl b/test/intrinsics/gen/atomicMax/beccfc.wgsl
deleted file mode 100644
index c6c4b60..0000000
--- a/test/intrinsics/gen/atomicMax/beccfc.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicMax(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicMax_beccfc() {
-  var res: u32 = atomicMax(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMax_beccfc();
-}
diff --git a/test/intrinsics/gen/atomicMin/278235.wgsl b/test/intrinsics/gen/atomicMin/278235.wgsl
deleted file mode 100644
index 2a0cf13..0000000
--- a/test/intrinsics/gen/atomicMin/278235.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicMin(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicMin_278235() {
-  var res: i32 = atomicMin(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMin_278235();
-}
diff --git a/test/intrinsics/gen/atomicMin/69d383.wgsl b/test/intrinsics/gen/atomicMin/69d383.wgsl
deleted file mode 100644
index 41b6284..0000000
--- a/test/intrinsics/gen/atomicMin/69d383.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicMin(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicMin_69d383() {
-  var res: u32 = atomicMin(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMin_69d383();
-}
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl b/test/intrinsics/gen/atomicMin/8e38dc.wgsl
deleted file mode 100644
index 9512528..0000000
--- a/test/intrinsics/gen/atomicMin/8e38dc.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicMin(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicMin_8e38dc() {
-  var res: i32 = atomicMin(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicMin_8e38dc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMin_8e38dc();
-}
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl b/test/intrinsics/gen/atomicMin/c67a74.wgsl
deleted file mode 100644
index fe5bb45..0000000
--- a/test/intrinsics/gen/atomicMin/c67a74.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicMin(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicMin_c67a74() {
-  var res: u32 = atomicMin(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicMin_c67a74();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicMin_c67a74();
-}
diff --git a/test/intrinsics/gen/atomicOr/5e3d61.wgsl b/test/intrinsics/gen/atomicOr/5e3d61.wgsl
deleted file mode 100644
index be6bc51..0000000
--- a/test/intrinsics/gen/atomicOr/5e3d61.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicOr(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicOr_5e3d61() {
-  var res: u32 = atomicOr(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicOr_5e3d61();
-}
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl b/test/intrinsics/gen/atomicOr/5e95d4.wgsl
deleted file mode 100644
index 356f0d0..0000000
--- a/test/intrinsics/gen/atomicOr/5e95d4.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicOr(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicOr_5e95d4() {
-  var res: u32 = atomicOr(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicOr_5e95d4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicOr_5e95d4();
-}
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl b/test/intrinsics/gen/atomicOr/8d96a0.wgsl
deleted file mode 100644
index c686a28..0000000
--- a/test/intrinsics/gen/atomicOr/8d96a0.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicOr(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicOr_8d96a0() {
-  var res: i32 = atomicOr(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicOr_8d96a0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicOr_8d96a0();
-}
diff --git a/test/intrinsics/gen/atomicOr/d09248.wgsl b/test/intrinsics/gen/atomicOr/d09248.wgsl
deleted file mode 100644
index ead0c34..0000000
--- a/test/intrinsics/gen/atomicOr/d09248.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicOr(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicOr_d09248() {
-  var res: i32 = atomicOr(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicOr_d09248();
-}
diff --git a/test/intrinsics/gen/atomicStore/726882.wgsl b/test/intrinsics/gen/atomicStore/726882.wgsl
deleted file mode 100644
index 3994efb..0000000
--- a/test/intrinsics/gen/atomicStore/726882.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicStore(ptr<workgroup, atomic<u32>, read_write>, u32)
-fn atomicStore_726882() {
-  atomicStore(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicStore_726882();
-}
diff --git a/test/intrinsics/gen/atomicStore/8bea94.wgsl b/test/intrinsics/gen/atomicStore/8bea94.wgsl
deleted file mode 100644
index 3ce1a43..0000000
--- a/test/intrinsics/gen/atomicStore/8bea94.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicStore(ptr<workgroup, atomic<i32>, read_write>, i32)
-fn atomicStore_8bea94() {
-  atomicStore(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicStore_8bea94();
-}
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl b/test/intrinsics/gen/atomicStore/cdc29e.wgsl
deleted file mode 100644
index b9cb390..0000000
--- a/test/intrinsics/gen/atomicStore/cdc29e.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicStore(ptr<storage, atomic<u32>, read_write>, u32)
-fn atomicStore_cdc29e() {
-  atomicStore(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicStore_cdc29e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicStore_cdc29e();
-}
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl
deleted file mode 100644
index a4ff095..0000000
--- a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicStore(ptr<storage, atomic<i32>, read_write>, i32)
-fn atomicStore_d1e9a6() {
-  atomicStore(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicStore_d1e9a6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicStore_d1e9a6();
-}
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl b/test/intrinsics/gen/atomicSub/051100.wgsl
deleted file mode 100644
index 698b794..0000000
--- a/test/intrinsics/gen/atomicSub/051100.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicSub(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicSub_051100() {
-  var res: i32 = atomicSub(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicSub_051100();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicSub_051100();
-}
diff --git a/test/intrinsics/gen/atomicSub/0d26c2.wgsl b/test/intrinsics/gen/atomicSub/0d26c2.wgsl
deleted file mode 100644
index 84cfa43..0000000
--- a/test/intrinsics/gen/atomicSub/0d26c2.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicSub(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicSub_0d26c2() {
-  var res: u32 = atomicSub(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicSub_0d26c2();
-}
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl b/test/intrinsics/gen/atomicSub/15bfc9.wgsl
deleted file mode 100644
index e46889e..0000000
--- a/test/intrinsics/gen/atomicSub/15bfc9.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicSub(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicSub_15bfc9() {
-  var res: u32 = atomicSub(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicSub_15bfc9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicSub_15bfc9();
-}
diff --git a/test/intrinsics/gen/atomicSub/77883a.wgsl b/test/intrinsics/gen/atomicSub/77883a.wgsl
deleted file mode 100644
index fc8fa76..0000000
--- a/test/intrinsics/gen/atomicSub/77883a.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicSub(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicSub_77883a() {
-  var res: i32 = atomicSub(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicSub_77883a();
-}
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl b/test/intrinsics/gen/atomicXor/54510e.wgsl
deleted file mode 100644
index 6928f87..0000000
--- a/test/intrinsics/gen/atomicXor/54510e.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<u32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicXor(ptr<storage, atomic<u32>, read_write>, u32) -> u32
-fn atomicXor_54510e() {
-  var res: u32 = atomicXor(&sb_rw.arg_0, 1u);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicXor_54510e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicXor_54510e();
-}
diff --git a/test/intrinsics/gen/atomicXor/75dc95.wgsl b/test/intrinsics/gen/atomicXor/75dc95.wgsl
deleted file mode 100644
index 061d653..0000000
--- a/test/intrinsics/gen/atomicXor/75dc95.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<i32>;
-
-// fn atomicXor(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
-fn atomicXor_75dc95() {
-  var res: i32 = atomicXor(&arg_0, 1);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicXor_75dc95();
-}
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl b/test/intrinsics/gen/atomicXor/c1b78c.wgsl
deleted file mode 100644
index 5bbc251..0000000
--- a/test/intrinsics/gen/atomicXor/c1b78c.wgsl
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-struct SB_RW {
-  arg_0: atomic<i32>;
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn atomicXor(ptr<storage, atomic<i32>, read_write>, i32) -> i32
-fn atomicXor_c1b78c() {
-  var res: i32 = atomicXor(&sb_rw.arg_0, 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  atomicXor_c1b78c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicXor_c1b78c();
-}
diff --git a/test/intrinsics/gen/atomicXor/c8e6be.wgsl b/test/intrinsics/gen/atomicXor/c8e6be.wgsl
deleted file mode 100644
index ce24118..0000000
--- a/test/intrinsics/gen/atomicXor/c8e6be.wgsl
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-var<workgroup> arg_0: atomic<u32>;
-
-// fn atomicXor(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
-fn atomicXor_c8e6be() {
-  var res: u32 = atomicXor(&arg_0, 1u);
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  atomicXor_c8e6be();
-}
diff --git a/test/intrinsics/gen/ceil/34064b.wgsl b/test/intrinsics/gen/ceil/34064b.wgsl
deleted file mode 100644
index 3d79d91..0000000
--- a/test/intrinsics/gen/ceil/34064b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ceil(vec<3, f32>) -> vec<3, f32>
-fn ceil_34064b() {
-  var res: vec3<f32> = ceil(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ceil_34064b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ceil_34064b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ceil_34064b();
-}
diff --git a/test/intrinsics/gen/ceil/678655.wgsl b/test/intrinsics/gen/ceil/678655.wgsl
deleted file mode 100644
index 0a49b58..0000000
--- a/test/intrinsics/gen/ceil/678655.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ceil(f32) -> f32
-fn ceil_678655() {
-  var res: f32 = ceil(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ceil_678655();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ceil_678655();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ceil_678655();
-}
diff --git a/test/intrinsics/gen/ceil/96f597.wgsl b/test/intrinsics/gen/ceil/96f597.wgsl
deleted file mode 100644
index 84647b9..0000000
--- a/test/intrinsics/gen/ceil/96f597.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ceil(vec<2, f32>) -> vec<2, f32>
-fn ceil_96f597() {
-  var res: vec2<f32> = ceil(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ceil_96f597();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ceil_96f597();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ceil_96f597();
-}
diff --git a/test/intrinsics/gen/ceil/b74c16.wgsl b/test/intrinsics/gen/ceil/b74c16.wgsl
deleted file mode 100644
index 46a48b4..0000000
--- a/test/intrinsics/gen/ceil/b74c16.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ceil(vec<4, f32>) -> vec<4, f32>
-fn ceil_b74c16() {
-  var res: vec4<f32> = ceil(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ceil_b74c16();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ceil_b74c16();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ceil_b74c16();
-}
diff --git a/test/intrinsics/gen/clamp/0acf8f.wgsl b/test/intrinsics/gen/clamp/0acf8f.wgsl
deleted file mode 100644
index a55d7dc..0000000
--- a/test/intrinsics/gen/clamp/0acf8f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn clamp_0acf8f() {
-  var res: vec2<f32> = clamp(vec2<f32>(), vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_0acf8f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_0acf8f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_0acf8f();
-}
diff --git a/test/intrinsics/gen/clamp/1a32e3.wgsl b/test/intrinsics/gen/clamp/1a32e3.wgsl
deleted file mode 100644
index 723c134..0000000
--- a/test/intrinsics/gen/clamp/1a32e3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<4, i32>, vec<4, i32>, vec<4, i32>) -> vec<4, i32>
-fn clamp_1a32e3() {
-  var res: vec4<i32> = clamp(vec4<i32>(), vec4<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_1a32e3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_1a32e3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_1a32e3();
-}
diff --git a/test/intrinsics/gen/clamp/2bd567.wgsl b/test/intrinsics/gen/clamp/2bd567.wgsl
deleted file mode 100644
index e8d2ed2..0000000
--- a/test/intrinsics/gen/clamp/2bd567.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(f32, f32, f32) -> f32
-fn clamp_2bd567() {
-  var res: f32 = clamp(1.0, 1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_2bd567();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_2bd567();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_2bd567();
-}
diff --git a/test/intrinsics/gen/clamp/2bde41.wgsl b/test/intrinsics/gen/clamp/2bde41.wgsl
deleted file mode 100644
index 582549c..0000000
--- a/test/intrinsics/gen/clamp/2bde41.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn clamp_2bde41() {
-  var res: vec4<f32> = clamp(vec4<f32>(), vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_2bde41();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_2bde41();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_2bde41();
-}
diff --git a/test/intrinsics/gen/clamp/548fc7.wgsl b/test/intrinsics/gen/clamp/548fc7.wgsl
deleted file mode 100644
index 8863032..0000000
--- a/test/intrinsics/gen/clamp/548fc7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<3, u32>, vec<3, u32>, vec<3, u32>) -> vec<3, u32>
-fn clamp_548fc7() {
-  var res: vec3<u32> = clamp(vec3<u32>(), vec3<u32>(), vec3<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_548fc7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_548fc7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_548fc7();
-}
diff --git a/test/intrinsics/gen/clamp/5f0819.wgsl b/test/intrinsics/gen/clamp/5f0819.wgsl
deleted file mode 100644
index c128db4..0000000
--- a/test/intrinsics/gen/clamp/5f0819.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<3, i32>, vec<3, i32>, vec<3, i32>) -> vec<3, i32>
-fn clamp_5f0819() {
-  var res: vec3<i32> = clamp(vec3<i32>(), vec3<i32>(), vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_5f0819();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_5f0819();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_5f0819();
-}
diff --git a/test/intrinsics/gen/clamp/6c1749.wgsl b/test/intrinsics/gen/clamp/6c1749.wgsl
deleted file mode 100644
index 3592939..0000000
--- a/test/intrinsics/gen/clamp/6c1749.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<2, i32>, vec<2, i32>, vec<2, i32>) -> vec<2, i32>
-fn clamp_6c1749() {
-  var res: vec2<i32> = clamp(vec2<i32>(), vec2<i32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_6c1749();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_6c1749();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_6c1749();
-}
diff --git a/test/intrinsics/gen/clamp/7706d7.wgsl b/test/intrinsics/gen/clamp/7706d7.wgsl
deleted file mode 100644
index 5e648fe..0000000
--- a/test/intrinsics/gen/clamp/7706d7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<2, u32>, vec<2, u32>, vec<2, u32>) -> vec<2, u32>
-fn clamp_7706d7() {
-  var res: vec2<u32> = clamp(vec2<u32>(), vec2<u32>(), vec2<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_7706d7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_7706d7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_7706d7();
-}
diff --git a/test/intrinsics/gen/clamp/867397.wgsl b/test/intrinsics/gen/clamp/867397.wgsl
deleted file mode 100644
index 96596d0c..0000000
--- a/test/intrinsics/gen/clamp/867397.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn clamp_867397() {
-  var res: vec3<f32> = clamp(vec3<f32>(), vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_867397();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_867397();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_867397();
-}
diff --git a/test/intrinsics/gen/clamp/a2de25.wgsl b/test/intrinsics/gen/clamp/a2de25.wgsl
deleted file mode 100644
index 403c5bf..0000000
--- a/test/intrinsics/gen/clamp/a2de25.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(u32, u32, u32) -> u32
-fn clamp_a2de25() {
-  var res: u32 = clamp(1u, 1u, 1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_a2de25();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_a2de25();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_a2de25();
-}
diff --git a/test/intrinsics/gen/clamp/b07c65.wgsl b/test/intrinsics/gen/clamp/b07c65.wgsl
deleted file mode 100644
index 1d18709..0000000
--- a/test/intrinsics/gen/clamp/b07c65.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(i32, i32, i32) -> i32
-fn clamp_b07c65() {
-  var res: i32 = clamp(1, 1, 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_b07c65();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_b07c65();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_b07c65();
-}
diff --git a/test/intrinsics/gen/clamp/bd43ce.wgsl b/test/intrinsics/gen/clamp/bd43ce.wgsl
deleted file mode 100644
index 45085ef..0000000
--- a/test/intrinsics/gen/clamp/bd43ce.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn clamp(vec<4, u32>, vec<4, u32>, vec<4, u32>) -> vec<4, u32>
-fn clamp_bd43ce() {
-  var res: vec4<u32> = clamp(vec4<u32>(), vec4<u32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  clamp_bd43ce();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  clamp_bd43ce();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  clamp_bd43ce();
-}
diff --git a/test/intrinsics/gen/cos/16dc15.wgsl b/test/intrinsics/gen/cos/16dc15.wgsl
deleted file mode 100644
index 9f92844..0000000
--- a/test/intrinsics/gen/cos/16dc15.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cos(vec<3, f32>) -> vec<3, f32>
-fn cos_16dc15() {
-  var res: vec3<f32> = cos(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cos_16dc15();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cos_16dc15();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cos_16dc15();
-}
diff --git a/test/intrinsics/gen/cos/29d66d.wgsl b/test/intrinsics/gen/cos/29d66d.wgsl
deleted file mode 100644
index d0082a4..0000000
--- a/test/intrinsics/gen/cos/29d66d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cos(vec<4, f32>) -> vec<4, f32>
-fn cos_29d66d() {
-  var res: vec4<f32> = cos(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cos_29d66d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cos_29d66d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cos_29d66d();
-}
diff --git a/test/intrinsics/gen/cos/c3b486.wgsl b/test/intrinsics/gen/cos/c3b486.wgsl
deleted file mode 100644
index 58bf973..0000000
--- a/test/intrinsics/gen/cos/c3b486.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cos(vec<2, f32>) -> vec<2, f32>
-fn cos_c3b486() {
-  var res: vec2<f32> = cos(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cos_c3b486();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cos_c3b486();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cos_c3b486();
-}
diff --git a/test/intrinsics/gen/cos/c5c28e.wgsl b/test/intrinsics/gen/cos/c5c28e.wgsl
deleted file mode 100644
index 249a587..0000000
--- a/test/intrinsics/gen/cos/c5c28e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cos(f32) -> f32
-fn cos_c5c28e() {
-  var res: f32 = cos(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cos_c5c28e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cos_c5c28e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cos_c5c28e();
-}
diff --git a/test/intrinsics/gen/cosh/377652.wgsl b/test/intrinsics/gen/cosh/377652.wgsl
deleted file mode 100644
index b528307..0000000
--- a/test/intrinsics/gen/cosh/377652.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cosh(vec<3, f32>) -> vec<3, f32>
-fn cosh_377652() {
-  var res: vec3<f32> = cosh(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cosh_377652();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cosh_377652();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cosh_377652();
-}
diff --git a/test/intrinsics/gen/cosh/c13756.wgsl b/test/intrinsics/gen/cosh/c13756.wgsl
deleted file mode 100644
index fa11315..0000000
--- a/test/intrinsics/gen/cosh/c13756.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cosh(vec<2, f32>) -> vec<2, f32>
-fn cosh_c13756() {
-  var res: vec2<f32> = cosh(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cosh_c13756();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cosh_c13756();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cosh_c13756();
-}
diff --git a/test/intrinsics/gen/cosh/da92dd.wgsl b/test/intrinsics/gen/cosh/da92dd.wgsl
deleted file mode 100644
index 59eb8df..0000000
--- a/test/intrinsics/gen/cosh/da92dd.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cosh(f32) -> f32
-fn cosh_da92dd() {
-  var res: f32 = cosh(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cosh_da92dd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cosh_da92dd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cosh_da92dd();
-}
diff --git a/test/intrinsics/gen/cosh/e0c1de.wgsl b/test/intrinsics/gen/cosh/e0c1de.wgsl
deleted file mode 100644
index 961d55f..0000000
--- a/test/intrinsics/gen/cosh/e0c1de.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cosh(vec<4, f32>) -> vec<4, f32>
-fn cosh_e0c1de() {
-  var res: vec4<f32> = cosh(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cosh_e0c1de();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cosh_e0c1de();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cosh_e0c1de();
-}
diff --git a/test/intrinsics/gen/countOneBits/0d0e46.wgsl b/test/intrinsics/gen/countOneBits/0d0e46.wgsl
deleted file mode 100644
index dc6b49e..0000000
--- a/test/intrinsics/gen/countOneBits/0d0e46.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(vec<4, u32>) -> vec<4, u32>
-fn countOneBits_0d0e46() {
-  var res: vec4<u32> = countOneBits(vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_0d0e46();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_0d0e46();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_0d0e46();
-}
diff --git a/test/intrinsics/gen/countOneBits/0f7980.wgsl b/test/intrinsics/gen/countOneBits/0f7980.wgsl
deleted file mode 100644
index cf4b27b..0000000
--- a/test/intrinsics/gen/countOneBits/0f7980.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(vec<4, i32>) -> vec<4, i32>
-fn countOneBits_0f7980() {
-  var res: vec4<i32> = countOneBits(vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_0f7980();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_0f7980();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_0f7980();
-}
diff --git a/test/intrinsics/gen/countOneBits/65d2ae.wgsl b/test/intrinsics/gen/countOneBits/65d2ae.wgsl
deleted file mode 100644
index ba29117..0000000
--- a/test/intrinsics/gen/countOneBits/65d2ae.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(vec<3, i32>) -> vec<3, i32>
-fn countOneBits_65d2ae() {
-  var res: vec3<i32> = countOneBits(vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_65d2ae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_65d2ae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_65d2ae();
-}
diff --git a/test/intrinsics/gen/countOneBits/690cfc.wgsl b/test/intrinsics/gen/countOneBits/690cfc.wgsl
deleted file mode 100644
index 77ce9c4..0000000
--- a/test/intrinsics/gen/countOneBits/690cfc.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(vec<3, u32>) -> vec<3, u32>
-fn countOneBits_690cfc() {
-  var res: vec3<u32> = countOneBits(vec3<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_690cfc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_690cfc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_690cfc();
-}
diff --git a/test/intrinsics/gen/countOneBits/94fd81.wgsl b/test/intrinsics/gen/countOneBits/94fd81.wgsl
deleted file mode 100644
index ec7f081..0000000
--- a/test/intrinsics/gen/countOneBits/94fd81.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(vec<2, u32>) -> vec<2, u32>
-fn countOneBits_94fd81() {
-  var res: vec2<u32> = countOneBits(vec2<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_94fd81();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_94fd81();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_94fd81();
-}
diff --git a/test/intrinsics/gen/countOneBits/ae44f9.wgsl b/test/intrinsics/gen/countOneBits/ae44f9.wgsl
deleted file mode 100644
index db56395..0000000
--- a/test/intrinsics/gen/countOneBits/ae44f9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(u32) -> u32
-fn countOneBits_ae44f9() {
-  var res: u32 = countOneBits(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_ae44f9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_ae44f9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_ae44f9();
-}
diff --git a/test/intrinsics/gen/countOneBits/af90e2.wgsl b/test/intrinsics/gen/countOneBits/af90e2.wgsl
deleted file mode 100644
index f57048c..0000000
--- a/test/intrinsics/gen/countOneBits/af90e2.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(vec<2, i32>) -> vec<2, i32>
-fn countOneBits_af90e2() {
-  var res: vec2<i32> = countOneBits(vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_af90e2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_af90e2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_af90e2();
-}
diff --git a/test/intrinsics/gen/countOneBits/fd88b2.wgsl b/test/intrinsics/gen/countOneBits/fd88b2.wgsl
deleted file mode 100644
index f95dcc2..0000000
--- a/test/intrinsics/gen/countOneBits/fd88b2.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn countOneBits(i32) -> i32
-fn countOneBits_fd88b2() {
-  var res: i32 = countOneBits(1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  countOneBits_fd88b2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  countOneBits_fd88b2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  countOneBits_fd88b2();
-}
diff --git a/test/intrinsics/gen/cross/041cb0.wgsl b/test/intrinsics/gen/cross/041cb0.wgsl
deleted file mode 100644
index 50f8539..0000000
--- a/test/intrinsics/gen/cross/041cb0.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn cross(vec3<f32>, vec3<f32>) -> vec3<f32>
-fn cross_041cb0() {
-  var res: vec3<f32> = cross(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  cross_041cb0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  cross_041cb0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  cross_041cb0();
-}
diff --git a/test/intrinsics/gen/degrees/0d170c.wgsl b/test/intrinsics/gen/degrees/0d170c.wgsl
deleted file mode 100644
index b2ee663..0000000
--- a/test/intrinsics/gen/degrees/0d170c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn degrees(vec<4, f32>) -> vec<4, f32>
-fn degrees_0d170c() {
-  var res: vec4<f32> = degrees(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  degrees_0d170c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  degrees_0d170c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  degrees_0d170c();
-}
diff --git a/test/intrinsics/gen/degrees/1ad5df.wgsl b/test/intrinsics/gen/degrees/1ad5df.wgsl
deleted file mode 100644
index b4c46db..0000000
--- a/test/intrinsics/gen/degrees/1ad5df.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn degrees(vec<2, f32>) -> vec<2, f32>
-fn degrees_1ad5df() {
-  var res: vec2<f32> = degrees(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  degrees_1ad5df();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  degrees_1ad5df();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  degrees_1ad5df();
-}
diff --git a/test/intrinsics/gen/degrees/2af623.wgsl b/test/intrinsics/gen/degrees/2af623.wgsl
deleted file mode 100644
index 22772dd..0000000
--- a/test/intrinsics/gen/degrees/2af623.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn degrees(vec<3, f32>) -> vec<3, f32>
-fn degrees_2af623() {
-  var res: vec3<f32> = degrees(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  degrees_2af623();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  degrees_2af623();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  degrees_2af623();
-}
diff --git a/test/intrinsics/gen/degrees/51f705.wgsl b/test/intrinsics/gen/degrees/51f705.wgsl
deleted file mode 100644
index 71c2e93..0000000
--- a/test/intrinsics/gen/degrees/51f705.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn degrees(f32) -> f32
-fn degrees_51f705() {
-  var res: f32 = degrees(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  degrees_51f705();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  degrees_51f705();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  degrees_51f705();
-}
diff --git a/test/intrinsics/gen/determinant/2b62ba.wgsl b/test/intrinsics/gen/determinant/2b62ba.wgsl
deleted file mode 100644
index 10fd4e4..0000000
--- a/test/intrinsics/gen/determinant/2b62ba.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn determinant(mat<3, 3, f32>) -> f32
-fn determinant_2b62ba() {
-  var res: f32 = determinant(mat3x3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  determinant_2b62ba();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  determinant_2b62ba();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  determinant_2b62ba();
-}
diff --git a/test/intrinsics/gen/determinant/a0a87c.wgsl b/test/intrinsics/gen/determinant/a0a87c.wgsl
deleted file mode 100644
index b7720f5..0000000
--- a/test/intrinsics/gen/determinant/a0a87c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn determinant(mat<4, 4, f32>) -> f32
-fn determinant_a0a87c() {
-  var res: f32 = determinant(mat4x4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  determinant_a0a87c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  determinant_a0a87c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  determinant_a0a87c();
-}
diff --git a/test/intrinsics/gen/determinant/e19305.wgsl b/test/intrinsics/gen/determinant/e19305.wgsl
deleted file mode 100644
index 1406a13..0000000
--- a/test/intrinsics/gen/determinant/e19305.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn determinant(mat<2, 2, f32>) -> f32
-fn determinant_e19305() {
-  var res: f32 = determinant(mat2x2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  determinant_e19305();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  determinant_e19305();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  determinant_e19305();
-}
diff --git a/test/intrinsics/gen/distance/0657d4.wgsl b/test/intrinsics/gen/distance/0657d4.wgsl
deleted file mode 100644
index 2c57d82..0000000
--- a/test/intrinsics/gen/distance/0657d4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn distance(vec<3, f32>, vec<3, f32>) -> f32
-fn distance_0657d4() {
-  var res: f32 = distance(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  distance_0657d4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  distance_0657d4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  distance_0657d4();
-}
diff --git a/test/intrinsics/gen/distance/9646ea.wgsl b/test/intrinsics/gen/distance/9646ea.wgsl
deleted file mode 100644
index 009877c..0000000
--- a/test/intrinsics/gen/distance/9646ea.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn distance(vec<4, f32>, vec<4, f32>) -> f32
-fn distance_9646ea() {
-  var res: f32 = distance(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  distance_9646ea();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  distance_9646ea();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  distance_9646ea();
-}
diff --git a/test/intrinsics/gen/distance/aa4055.wgsl b/test/intrinsics/gen/distance/aa4055.wgsl
deleted file mode 100644
index 0094477..0000000
--- a/test/intrinsics/gen/distance/aa4055.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn distance(vec<2, f32>, vec<2, f32>) -> f32
-fn distance_aa4055() {
-  var res: f32 = distance(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  distance_aa4055();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  distance_aa4055();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  distance_aa4055();
-}
diff --git a/test/intrinsics/gen/distance/cfed73.wgsl b/test/intrinsics/gen/distance/cfed73.wgsl
deleted file mode 100644
index c40408d..0000000
--- a/test/intrinsics/gen/distance/cfed73.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn distance(f32, f32) -> f32
-fn distance_cfed73() {
-  var res: f32 = distance(1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  distance_cfed73();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  distance_cfed73();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  distance_cfed73();
-}
diff --git a/test/intrinsics/gen/dot/0c577b.wgsl b/test/intrinsics/gen/dot/0c577b.wgsl
deleted file mode 100644
index 745f4c4..0000000
--- a/test/intrinsics/gen/dot/0c577b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<4, f32>, vec<4, f32>) -> f32
-fn dot_0c577b() {
-  var res: f32 = dot(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_0c577b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_0c577b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_0c577b();
-}
diff --git a/test/intrinsics/gen/dot/7548a0.wgsl b/test/intrinsics/gen/dot/7548a0.wgsl
deleted file mode 100644
index 4ee9011f..0000000
--- a/test/intrinsics/gen/dot/7548a0.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<3, u32>, vec<3, u32>) -> u32
-fn dot_7548a0() {
-  var res: u32 = dot(vec3<u32>(), vec3<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_7548a0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_7548a0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_7548a0();
-}
diff --git a/test/intrinsics/gen/dot/883f0e.wgsl b/test/intrinsics/gen/dot/883f0e.wgsl
deleted file mode 100644
index 3a42f8c..0000000
--- a/test/intrinsics/gen/dot/883f0e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<2, f32>, vec<2, f32>) -> f32
-fn dot_883f0e() {
-  var res: f32 = dot(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_883f0e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_883f0e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_883f0e();
-}
diff --git a/test/intrinsics/gen/dot/97c7ee.wgsl b/test/intrinsics/gen/dot/97c7ee.wgsl
deleted file mode 100644
index c8f9459..0000000
--- a/test/intrinsics/gen/dot/97c7ee.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<2, u32>, vec<2, u32>) -> u32
-fn dot_97c7ee() {
-  var res: u32 = dot(vec2<u32>(), vec2<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_97c7ee();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_97c7ee();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_97c7ee();
-}
diff --git a/test/intrinsics/gen/dot/ba4246.wgsl b/test/intrinsics/gen/dot/ba4246.wgsl
deleted file mode 100644
index fbeb139..0000000
--- a/test/intrinsics/gen/dot/ba4246.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<3, f32>, vec<3, f32>) -> f32
-fn dot_ba4246() {
-  var res: f32 = dot(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_ba4246();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_ba4246();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_ba4246();
-}
diff --git a/test/intrinsics/gen/dot/e994c7.wgsl b/test/intrinsics/gen/dot/e994c7.wgsl
deleted file mode 100644
index b78cbc4..0000000
--- a/test/intrinsics/gen/dot/e994c7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<4, u32>, vec<4, u32>) -> u32
-fn dot_e994c7() {
-  var res: u32 = dot(vec4<u32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_e994c7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_e994c7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_e994c7();
-}
diff --git a/test/intrinsics/gen/dot/ef6b1d.wgsl b/test/intrinsics/gen/dot/ef6b1d.wgsl
deleted file mode 100644
index 2e01ee2..0000000
--- a/test/intrinsics/gen/dot/ef6b1d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<4, i32>, vec<4, i32>) -> i32
-fn dot_ef6b1d() {
-  var res: i32 = dot(vec4<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_ef6b1d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_ef6b1d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_ef6b1d();
-}
diff --git a/test/intrinsics/gen/dot/f1312c.wgsl b/test/intrinsics/gen/dot/f1312c.wgsl
deleted file mode 100644
index 6bb0876..0000000
--- a/test/intrinsics/gen/dot/f1312c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<3, i32>, vec<3, i32>) -> i32
-fn dot_f1312c() {
-  var res: i32 = dot(vec3<i32>(), vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_f1312c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_f1312c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_f1312c();
-}
diff --git a/test/intrinsics/gen/dot/fc5f7c.wgsl b/test/intrinsics/gen/dot/fc5f7c.wgsl
deleted file mode 100644
index bbadae8..0000000
--- a/test/intrinsics/gen/dot/fc5f7c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dot(vec<2, i32>, vec<2, i32>) -> i32
-fn dot_fc5f7c() {
-  var res: i32 = dot(vec2<i32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  dot_fc5f7c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dot_fc5f7c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  dot_fc5f7c();
-}
diff --git a/test/intrinsics/gen/dpdx/0763f7.wgsl b/test/intrinsics/gen/dpdx/0763f7.wgsl
deleted file mode 100644
index cbfc41a..0000000
--- a/test/intrinsics/gen/dpdx/0763f7.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdx(vec<3, f32>) -> vec<3, f32>
-fn dpdx_0763f7() {
-  var res: vec3<f32> = dpdx(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdx_0763f7();
-}
diff --git a/test/intrinsics/gen/dpdx/99edb1.wgsl b/test/intrinsics/gen/dpdx/99edb1.wgsl
deleted file mode 100644
index 84f5126..0000000
--- a/test/intrinsics/gen/dpdx/99edb1.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdx(vec<2, f32>) -> vec<2, f32>
-fn dpdx_99edb1() {
-  var res: vec2<f32> = dpdx(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdx_99edb1();
-}
diff --git a/test/intrinsics/gen/dpdx/c487fa.wgsl b/test/intrinsics/gen/dpdx/c487fa.wgsl
deleted file mode 100644
index 7b477fb..0000000
--- a/test/intrinsics/gen/dpdx/c487fa.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdx(vec<4, f32>) -> vec<4, f32>
-fn dpdx_c487fa() {
-  var res: vec4<f32> = dpdx(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdx_c487fa();
-}
diff --git a/test/intrinsics/gen/dpdx/e263de.wgsl b/test/intrinsics/gen/dpdx/e263de.wgsl
deleted file mode 100644
index 60498a7..0000000
--- a/test/intrinsics/gen/dpdx/e263de.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdx(f32) -> f32
-fn dpdx_e263de() {
-  var res: f32 = dpdx(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdx_e263de();
-}
diff --git a/test/intrinsics/gen/dpdxCoarse/029152.wgsl b/test/intrinsics/gen/dpdxCoarse/029152.wgsl
deleted file mode 100644
index 1a7cc1d..0000000
--- a/test/intrinsics/gen/dpdxCoarse/029152.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxCoarse(f32) -> f32
-fn dpdxCoarse_029152() {
-  var res: f32 = dpdxCoarse(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxCoarse_029152();
-}
diff --git a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl b/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl
deleted file mode 100644
index 5ccf411..0000000
--- a/test/intrinsics/gen/dpdxCoarse/9581cf.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxCoarse(vec<2, f32>) -> vec<2, f32>
-fn dpdxCoarse_9581cf() {
-  var res: vec2<f32> = dpdxCoarse(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxCoarse_9581cf();
-}
diff --git a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl b/test/intrinsics/gen/dpdxCoarse/c28641.wgsl
deleted file mode 100644
index 8777156..0000000
--- a/test/intrinsics/gen/dpdxCoarse/c28641.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxCoarse(vec<4, f32>) -> vec<4, f32>
-fn dpdxCoarse_c28641() {
-  var res: vec4<f32> = dpdxCoarse(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxCoarse_c28641();
-}
diff --git a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl b/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl
deleted file mode 100644
index 40b501c..0000000
--- a/test/intrinsics/gen/dpdxCoarse/f64d7b.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxCoarse(vec<3, f32>) -> vec<3, f32>
-fn dpdxCoarse_f64d7b() {
-  var res: vec3<f32> = dpdxCoarse(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxCoarse_f64d7b();
-}
diff --git a/test/intrinsics/gen/dpdxFine/8c5069.wgsl b/test/intrinsics/gen/dpdxFine/8c5069.wgsl
deleted file mode 100644
index b1db7e3..0000000
--- a/test/intrinsics/gen/dpdxFine/8c5069.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxFine(vec<4, f32>) -> vec<4, f32>
-fn dpdxFine_8c5069() {
-  var res: vec4<f32> = dpdxFine(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxFine_8c5069();
-}
diff --git a/test/intrinsics/gen/dpdxFine/9631de.wgsl b/test/intrinsics/gen/dpdxFine/9631de.wgsl
deleted file mode 100644
index f29dffb..0000000
--- a/test/intrinsics/gen/dpdxFine/9631de.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxFine(vec<2, f32>) -> vec<2, f32>
-fn dpdxFine_9631de() {
-  var res: vec2<f32> = dpdxFine(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxFine_9631de();
-}
diff --git a/test/intrinsics/gen/dpdxFine/f401a2.wgsl b/test/intrinsics/gen/dpdxFine/f401a2.wgsl
deleted file mode 100644
index 405291f..0000000
--- a/test/intrinsics/gen/dpdxFine/f401a2.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxFine(f32) -> f32
-fn dpdxFine_f401a2() {
-  var res: f32 = dpdxFine(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxFine_f401a2();
-}
diff --git a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl b/test/intrinsics/gen/dpdxFine/f92fb6.wgsl
deleted file mode 100644
index 8a3b66d..0000000
--- a/test/intrinsics/gen/dpdxFine/f92fb6.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdxFine(vec<3, f32>) -> vec<3, f32>
-fn dpdxFine_f92fb6() {
-  var res: vec3<f32> = dpdxFine(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdxFine_f92fb6();
-}
diff --git a/test/intrinsics/gen/dpdy/699a05.wgsl b/test/intrinsics/gen/dpdy/699a05.wgsl
deleted file mode 100644
index dc14668..0000000
--- a/test/intrinsics/gen/dpdy/699a05.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdy(vec<4, f32>) -> vec<4, f32>
-fn dpdy_699a05() {
-  var res: vec4<f32> = dpdy(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdy_699a05();
-}
diff --git a/test/intrinsics/gen/dpdy/7f8d84.wgsl b/test/intrinsics/gen/dpdy/7f8d84.wgsl
deleted file mode 100644
index c468777..0000000
--- a/test/intrinsics/gen/dpdy/7f8d84.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdy(f32) -> f32
-fn dpdy_7f8d84() {
-  var res: f32 = dpdy(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdy_7f8d84();
-}
diff --git a/test/intrinsics/gen/dpdy/a8b56e.wgsl b/test/intrinsics/gen/dpdy/a8b56e.wgsl
deleted file mode 100644
index e79bff9..0000000
--- a/test/intrinsics/gen/dpdy/a8b56e.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdy(vec<2, f32>) -> vec<2, f32>
-fn dpdy_a8b56e() {
-  var res: vec2<f32> = dpdy(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdy_a8b56e();
-}
diff --git a/test/intrinsics/gen/dpdy/feb40f.wgsl b/test/intrinsics/gen/dpdy/feb40f.wgsl
deleted file mode 100644
index f3afdc2..0000000
--- a/test/intrinsics/gen/dpdy/feb40f.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdy(vec<3, f32>) -> vec<3, f32>
-fn dpdy_feb40f() {
-  var res: vec3<f32> = dpdy(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdy_feb40f();
-}
diff --git a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl b/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl
deleted file mode 100644
index 15007a3..0000000
--- a/test/intrinsics/gen/dpdyCoarse/3e1ab4.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyCoarse(vec<2, f32>) -> vec<2, f32>
-fn dpdyCoarse_3e1ab4() {
-  var res: vec2<f32> = dpdyCoarse(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyCoarse_3e1ab4();
-}
diff --git a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl b/test/intrinsics/gen/dpdyCoarse/445d24.wgsl
deleted file mode 100644
index b397d4e..0000000
--- a/test/intrinsics/gen/dpdyCoarse/445d24.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyCoarse(vec<4, f32>) -> vec<4, f32>
-fn dpdyCoarse_445d24() {
-  var res: vec4<f32> = dpdyCoarse(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyCoarse_445d24();
-}
diff --git a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl b/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl
deleted file mode 100644
index 7fc7907..0000000
--- a/test/intrinsics/gen/dpdyCoarse/870a7e.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyCoarse(f32) -> f32
-fn dpdyCoarse_870a7e() {
-  var res: f32 = dpdyCoarse(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyCoarse_870a7e();
-}
diff --git a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl b/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl
deleted file mode 100644
index b1f32ef..0000000
--- a/test/intrinsics/gen/dpdyCoarse/ae1873.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyCoarse(vec<3, f32>) -> vec<3, f32>
-fn dpdyCoarse_ae1873() {
-  var res: vec3<f32> = dpdyCoarse(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyCoarse_ae1873();
-}
diff --git a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl b/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl
deleted file mode 100644
index 3a28460..0000000
--- a/test/intrinsics/gen/dpdyFine/1fb7ab.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyFine(vec<3, f32>) -> vec<3, f32>
-fn dpdyFine_1fb7ab() {
-  var res: vec3<f32> = dpdyFine(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyFine_1fb7ab();
-}
diff --git a/test/intrinsics/gen/dpdyFine/6eb673.wgsl b/test/intrinsics/gen/dpdyFine/6eb673.wgsl
deleted file mode 100644
index 9469533..0000000
--- a/test/intrinsics/gen/dpdyFine/6eb673.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyFine(f32) -> f32
-fn dpdyFine_6eb673() {
-  var res: f32 = dpdyFine(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyFine_6eb673();
-}
diff --git a/test/intrinsics/gen/dpdyFine/d0a648.wgsl b/test/intrinsics/gen/dpdyFine/d0a648.wgsl
deleted file mode 100644
index 436f5a1..0000000
--- a/test/intrinsics/gen/dpdyFine/d0a648.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyFine(vec<4, f32>) -> vec<4, f32>
-fn dpdyFine_d0a648() {
-  var res: vec4<f32> = dpdyFine(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyFine_d0a648();
-}
diff --git a/test/intrinsics/gen/dpdyFine/df33aa.wgsl b/test/intrinsics/gen/dpdyFine/df33aa.wgsl
deleted file mode 100644
index fdfc9c8..0000000
--- a/test/intrinsics/gen/dpdyFine/df33aa.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn dpdyFine(vec<2, f32>) -> vec<2, f32>
-fn dpdyFine_df33aa() {
-  var res: vec2<f32> = dpdyFine(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  dpdyFine_df33aa();
-}
diff --git a/test/intrinsics/gen/exp/0f70eb.wgsl b/test/intrinsics/gen/exp/0f70eb.wgsl
deleted file mode 100644
index e65faa4..0000000
--- a/test/intrinsics/gen/exp/0f70eb.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp(vec<4, f32>) -> vec<4, f32>
-fn exp_0f70eb() {
-  var res: vec4<f32> = exp(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp_0f70eb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp_0f70eb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp_0f70eb();
-}
diff --git a/test/intrinsics/gen/exp/1951e7.wgsl b/test/intrinsics/gen/exp/1951e7.wgsl
deleted file mode 100644
index 6e006f3..0000000
--- a/test/intrinsics/gen/exp/1951e7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp(vec<2, f32>) -> vec<2, f32>
-fn exp_1951e7() {
-  var res: vec2<f32> = exp(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp_1951e7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp_1951e7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp_1951e7();
-}
diff --git a/test/intrinsics/gen/exp/771fd2.wgsl b/test/intrinsics/gen/exp/771fd2.wgsl
deleted file mode 100644
index a1cb3cd..0000000
--- a/test/intrinsics/gen/exp/771fd2.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp(f32) -> f32
-fn exp_771fd2() {
-  var res: f32 = exp(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp_771fd2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp_771fd2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp_771fd2();
-}
diff --git a/test/intrinsics/gen/exp/d98450.wgsl b/test/intrinsics/gen/exp/d98450.wgsl
deleted file mode 100644
index 2404a17..0000000
--- a/test/intrinsics/gen/exp/d98450.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp(vec<3, f32>) -> vec<3, f32>
-fn exp_d98450() {
-  var res: vec3<f32> = exp(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp_d98450();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp_d98450();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp_d98450();
-}
diff --git a/test/intrinsics/gen/exp2/1f8680.wgsl b/test/intrinsics/gen/exp2/1f8680.wgsl
deleted file mode 100644
index 0fdaeba..0000000
--- a/test/intrinsics/gen/exp2/1f8680.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp2(vec<3, f32>) -> vec<3, f32>
-fn exp2_1f8680() {
-  var res: vec3<f32> = exp2(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp2_1f8680();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp2_1f8680();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp2_1f8680();
-}
diff --git a/test/intrinsics/gen/exp2/a9d0a7.wgsl b/test/intrinsics/gen/exp2/a9d0a7.wgsl
deleted file mode 100644
index 46e47f7..0000000
--- a/test/intrinsics/gen/exp2/a9d0a7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp2(vec<4, f32>) -> vec<4, f32>
-fn exp2_a9d0a7() {
-  var res: vec4<f32> = exp2(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp2_a9d0a7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp2_a9d0a7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp2_a9d0a7();
-}
diff --git a/test/intrinsics/gen/exp2/d6777c.wgsl b/test/intrinsics/gen/exp2/d6777c.wgsl
deleted file mode 100644
index 42933c0..0000000
--- a/test/intrinsics/gen/exp2/d6777c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp2(vec<2, f32>) -> vec<2, f32>
-fn exp2_d6777c() {
-  var res: vec2<f32> = exp2(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp2_d6777c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp2_d6777c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp2_d6777c();
-}
diff --git a/test/intrinsics/gen/exp2/dea523.wgsl b/test/intrinsics/gen/exp2/dea523.wgsl
deleted file mode 100644
index 26e836a..0000000
--- a/test/intrinsics/gen/exp2/dea523.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn exp2(f32) -> f32
-fn exp2_dea523() {
-  var res: f32 = exp2(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  exp2_dea523();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  exp2_dea523();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  exp2_dea523();
-}
diff --git a/test/intrinsics/gen/faceForward/5afbd5.wgsl b/test/intrinsics/gen/faceForward/5afbd5.wgsl
deleted file mode 100644
index 3e036f3..0000000
--- a/test/intrinsics/gen/faceForward/5afbd5.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn faceForward(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn faceForward_5afbd5() {
-  var res: vec3<f32> = faceForward(vec3<f32>(), vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  faceForward_5afbd5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  faceForward_5afbd5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  faceForward_5afbd5();
-}
diff --git a/test/intrinsics/gen/faceForward/b316e5.wgsl b/test/intrinsics/gen/faceForward/b316e5.wgsl
deleted file mode 100644
index 2e31ca6..0000000
--- a/test/intrinsics/gen/faceForward/b316e5.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn faceForward(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn faceForward_b316e5() {
-  var res: vec4<f32> = faceForward(vec4<f32>(), vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  faceForward_b316e5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  faceForward_b316e5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  faceForward_b316e5();
-}
diff --git a/test/intrinsics/gen/faceForward/e6908b.wgsl b/test/intrinsics/gen/faceForward/e6908b.wgsl
deleted file mode 100644
index 4c9a2be..0000000
--- a/test/intrinsics/gen/faceForward/e6908b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn faceForward(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn faceForward_e6908b() {
-  var res: vec2<f32> = faceForward(vec2<f32>(), vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  faceForward_e6908b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  faceForward_e6908b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  faceForward_e6908b();
-}
diff --git a/test/intrinsics/gen/floor/3bccc4.wgsl b/test/intrinsics/gen/floor/3bccc4.wgsl
deleted file mode 100644
index 3d27b57..0000000
--- a/test/intrinsics/gen/floor/3bccc4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn floor(vec<4, f32>) -> vec<4, f32>
-fn floor_3bccc4() {
-  var res: vec4<f32> = floor(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  floor_3bccc4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  floor_3bccc4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  floor_3bccc4();
-}
diff --git a/test/intrinsics/gen/floor/5fc9ac.wgsl b/test/intrinsics/gen/floor/5fc9ac.wgsl
deleted file mode 100644
index 49afc11..0000000
--- a/test/intrinsics/gen/floor/5fc9ac.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn floor(vec<2, f32>) -> vec<2, f32>
-fn floor_5fc9ac() {
-  var res: vec2<f32> = floor(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  floor_5fc9ac();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  floor_5fc9ac();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  floor_5fc9ac();
-}
diff --git a/test/intrinsics/gen/floor/60d7ea.wgsl b/test/intrinsics/gen/floor/60d7ea.wgsl
deleted file mode 100644
index 6e4c944..0000000
--- a/test/intrinsics/gen/floor/60d7ea.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn floor(vec<3, f32>) -> vec<3, f32>
-fn floor_60d7ea() {
-  var res: vec3<f32> = floor(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  floor_60d7ea();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  floor_60d7ea();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  floor_60d7ea();
-}
diff --git a/test/intrinsics/gen/floor/66f154.wgsl b/test/intrinsics/gen/floor/66f154.wgsl
deleted file mode 100644
index 8020bf6..0000000
--- a/test/intrinsics/gen/floor/66f154.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn floor(f32) -> f32
-fn floor_66f154() {
-  var res: f32 = floor(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  floor_66f154();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  floor_66f154();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  floor_66f154();
-}
diff --git a/test/intrinsics/gen/fma/26a7a9.wgsl b/test/intrinsics/gen/fma/26a7a9.wgsl
deleted file mode 100644
index bb6f1c0..0000000
--- a/test/intrinsics/gen/fma/26a7a9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fma(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn fma_26a7a9() {
-  var res: vec2<f32> = fma(vec2<f32>(), vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fma_26a7a9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fma_26a7a9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fma_26a7a9();
-}
diff --git a/test/intrinsics/gen/fma/6a3283.wgsl b/test/intrinsics/gen/fma/6a3283.wgsl
deleted file mode 100644
index 2074905..0000000
--- a/test/intrinsics/gen/fma/6a3283.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fma(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn fma_6a3283() {
-  var res: vec4<f32> = fma(vec4<f32>(), vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fma_6a3283();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fma_6a3283();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fma_6a3283();
-}
diff --git a/test/intrinsics/gen/fma/c10ba3.wgsl b/test/intrinsics/gen/fma/c10ba3.wgsl
deleted file mode 100644
index 9bd4277..0000000
--- a/test/intrinsics/gen/fma/c10ba3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fma(f32, f32, f32) -> f32
-fn fma_c10ba3() {
-  var res: f32 = fma(1.0, 1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fma_c10ba3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fma_c10ba3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fma_c10ba3();
-}
diff --git a/test/intrinsics/gen/fma/e17c5c.wgsl b/test/intrinsics/gen/fma/e17c5c.wgsl
deleted file mode 100644
index a9adbb0..0000000
--- a/test/intrinsics/gen/fma/e17c5c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fma(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn fma_e17c5c() {
-  var res: vec3<f32> = fma(vec3<f32>(), vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fma_e17c5c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fma_e17c5c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fma_e17c5c();
-}
diff --git a/test/intrinsics/gen/fract/8bc1e9.wgsl b/test/intrinsics/gen/fract/8bc1e9.wgsl
deleted file mode 100644
index d064af2..0000000
--- a/test/intrinsics/gen/fract/8bc1e9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fract(vec<4, f32>) -> vec<4, f32>
-fn fract_8bc1e9() {
-  var res: vec4<f32> = fract(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fract_8bc1e9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fract_8bc1e9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fract_8bc1e9();
-}
diff --git a/test/intrinsics/gen/fract/943cb1.wgsl b/test/intrinsics/gen/fract/943cb1.wgsl
deleted file mode 100644
index 50d0038..0000000
--- a/test/intrinsics/gen/fract/943cb1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fract(vec<2, f32>) -> vec<2, f32>
-fn fract_943cb1() {
-  var res: vec2<f32> = fract(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fract_943cb1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fract_943cb1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fract_943cb1();
-}
diff --git a/test/intrinsics/gen/fract/a49758.wgsl b/test/intrinsics/gen/fract/a49758.wgsl
deleted file mode 100644
index 567a336..0000000
--- a/test/intrinsics/gen/fract/a49758.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fract(vec<3, f32>) -> vec<3, f32>
-fn fract_a49758() {
-  var res: vec3<f32> = fract(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fract_a49758();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fract_a49758();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fract_a49758();
-}
diff --git a/test/intrinsics/gen/fract/fa5c71.wgsl b/test/intrinsics/gen/fract/fa5c71.wgsl
deleted file mode 100644
index 35a24e1..0000000
--- a/test/intrinsics/gen/fract/fa5c71.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fract(f32) -> f32
-fn fract_fa5c71() {
-  var res: f32 = fract(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  fract_fa5c71();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fract_fa5c71();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  fract_fa5c71();
-}
diff --git a/test/intrinsics/gen/frexp/368997.wgsl b/test/intrinsics/gen/frexp/368997.wgsl
deleted file mode 100644
index f7d9a71..0000000
--- a/test/intrinsics/gen/frexp/368997.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn frexp(vec<3, f32>) -> __frexp_result_vec<3>
-fn frexp_368997() {
-  var res = frexp(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  frexp_368997();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  frexp_368997();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  frexp_368997();
-}
diff --git a/test/intrinsics/gen/frexp/3c4f48.wgsl b/test/intrinsics/gen/frexp/3c4f48.wgsl
deleted file mode 100644
index 2dd0849..0000000
--- a/test/intrinsics/gen/frexp/3c4f48.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn frexp(vec<4, f32>) -> __frexp_result_vec<4>
-fn frexp_3c4f48() {
-  var res = frexp(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  frexp_3c4f48();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  frexp_3c4f48();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  frexp_3c4f48();
-}
diff --git a/test/intrinsics/gen/frexp/4bdfc7.wgsl b/test/intrinsics/gen/frexp/4bdfc7.wgsl
deleted file mode 100644
index eff4518..0000000
--- a/test/intrinsics/gen/frexp/4bdfc7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn frexp(vec<2, f32>) -> __frexp_result_vec<2>
-fn frexp_4bdfc7() {
-  var res = frexp(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  frexp_4bdfc7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  frexp_4bdfc7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  frexp_4bdfc7();
-}
diff --git a/test/intrinsics/gen/frexp/eabd40.wgsl b/test/intrinsics/gen/frexp/eabd40.wgsl
deleted file mode 100644
index 3f2f00d..0000000
--- a/test/intrinsics/gen/frexp/eabd40.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn frexp(f32) -> __frexp_result
-fn frexp_eabd40() {
-  var res = frexp(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  frexp_eabd40();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  frexp_eabd40();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  frexp_eabd40();
-}
diff --git a/test/intrinsics/gen/fwidth/5d1b39.wgsl b/test/intrinsics/gen/fwidth/5d1b39.wgsl
deleted file mode 100644
index 8400934..0000000
--- a/test/intrinsics/gen/fwidth/5d1b39.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidth(vec<3, f32>) -> vec<3, f32>
-fn fwidth_5d1b39() {
-  var res: vec3<f32> = fwidth(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidth_5d1b39();
-}
diff --git a/test/intrinsics/gen/fwidth/b83ebb.wgsl b/test/intrinsics/gen/fwidth/b83ebb.wgsl
deleted file mode 100644
index 36592fd..0000000
--- a/test/intrinsics/gen/fwidth/b83ebb.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidth(vec<2, f32>) -> vec<2, f32>
-fn fwidth_b83ebb() {
-  var res: vec2<f32> = fwidth(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidth_b83ebb();
-}
diff --git a/test/intrinsics/gen/fwidth/d2ab9a.wgsl b/test/intrinsics/gen/fwidth/d2ab9a.wgsl
deleted file mode 100644
index 49c41ea6..0000000
--- a/test/intrinsics/gen/fwidth/d2ab9a.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidth(vec<4, f32>) -> vec<4, f32>
-fn fwidth_d2ab9a() {
-  var res: vec4<f32> = fwidth(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidth_d2ab9a();
-}
diff --git a/test/intrinsics/gen/fwidth/df38ef.wgsl b/test/intrinsics/gen/fwidth/df38ef.wgsl
deleted file mode 100644
index 9388812..0000000
--- a/test/intrinsics/gen/fwidth/df38ef.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidth(f32) -> f32
-fn fwidth_df38ef() {
-  var res: f32 = fwidth(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidth_df38ef();
-}
diff --git a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl b/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl
deleted file mode 100644
index a7c4cd3..0000000
--- a/test/intrinsics/gen/fwidthCoarse/159c8a.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthCoarse(f32) -> f32
-fn fwidthCoarse_159c8a() {
-  var res: f32 = fwidthCoarse(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthCoarse_159c8a();
-}
diff --git a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl b/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl
deleted file mode 100644
index 044c582..0000000
--- a/test/intrinsics/gen/fwidthCoarse/1e59d9.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthCoarse(vec<3, f32>) -> vec<3, f32>
-fn fwidthCoarse_1e59d9() {
-  var res: vec3<f32> = fwidthCoarse(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthCoarse_1e59d9();
-}
diff --git a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl b/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl
deleted file mode 100644
index da66152..0000000
--- a/test/intrinsics/gen/fwidthCoarse/4e4fc4.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthCoarse(vec<4, f32>) -> vec<4, f32>
-fn fwidthCoarse_4e4fc4() {
-  var res: vec4<f32> = fwidthCoarse(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthCoarse_4e4fc4();
-}
diff --git a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl b/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl
deleted file mode 100644
index bfd46bb..0000000
--- a/test/intrinsics/gen/fwidthCoarse/e653f7.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthCoarse(vec<2, f32>) -> vec<2, f32>
-fn fwidthCoarse_e653f7() {
-  var res: vec2<f32> = fwidthCoarse(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthCoarse_e653f7();
-}
diff --git a/test/intrinsics/gen/fwidthFine/523fdc.wgsl b/test/intrinsics/gen/fwidthFine/523fdc.wgsl
deleted file mode 100644
index d02b674..0000000
--- a/test/intrinsics/gen/fwidthFine/523fdc.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthFine(vec<3, f32>) -> vec<3, f32>
-fn fwidthFine_523fdc() {
-  var res: vec3<f32> = fwidthFine(vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthFine_523fdc();
-}
diff --git a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl b/test/intrinsics/gen/fwidthFine/68f4ef.wgsl
deleted file mode 100644
index cd641a0..0000000
--- a/test/intrinsics/gen/fwidthFine/68f4ef.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthFine(vec<4, f32>) -> vec<4, f32>
-fn fwidthFine_68f4ef() {
-  var res: vec4<f32> = fwidthFine(vec4<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthFine_68f4ef();
-}
diff --git a/test/intrinsics/gen/fwidthFine/f1742d.wgsl b/test/intrinsics/gen/fwidthFine/f1742d.wgsl
deleted file mode 100644
index c78f9b0..0000000
--- a/test/intrinsics/gen/fwidthFine/f1742d.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthFine(f32) -> f32
-fn fwidthFine_f1742d() {
-  var res: f32 = fwidthFine(1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthFine_f1742d();
-}
diff --git a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl b/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl
deleted file mode 100644
index 4176ec2..0000000
--- a/test/intrinsics/gen/fwidthFine/ff6aa0.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn fwidthFine(vec<2, f32>) -> vec<2, f32>
-fn fwidthFine_ff6aa0() {
-  var res: vec2<f32> = fwidthFine(vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  fwidthFine_ff6aa0();
-}
diff --git a/test/intrinsics/gen/inverseSqrt/84407e.wgsl b/test/intrinsics/gen/inverseSqrt/84407e.wgsl
deleted file mode 100644
index f6160f1..0000000
--- a/test/intrinsics/gen/inverseSqrt/84407e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn inverseSqrt(f32) -> f32
-fn inverseSqrt_84407e() {
-  var res: f32 = inverseSqrt(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  inverseSqrt_84407e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  inverseSqrt_84407e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  inverseSqrt_84407e();
-}
diff --git a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl b/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl
deleted file mode 100644
index e94567e..0000000
--- a/test/intrinsics/gen/inverseSqrt/8f2bd2.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn inverseSqrt(vec<2, f32>) -> vec<2, f32>
-fn inverseSqrt_8f2bd2() {
-  var res: vec2<f32> = inverseSqrt(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  inverseSqrt_8f2bd2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  inverseSqrt_8f2bd2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  inverseSqrt_8f2bd2();
-}
diff --git a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl b/test/intrinsics/gen/inverseSqrt/b197b1.wgsl
deleted file mode 100644
index c189515..0000000
--- a/test/intrinsics/gen/inverseSqrt/b197b1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn inverseSqrt(vec<3, f32>) -> vec<3, f32>
-fn inverseSqrt_b197b1() {
-  var res: vec3<f32> = inverseSqrt(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  inverseSqrt_b197b1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  inverseSqrt_b197b1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  inverseSqrt_b197b1();
-}
diff --git a/test/intrinsics/gen/inverseSqrt/c22347.wgsl b/test/intrinsics/gen/inverseSqrt/c22347.wgsl
deleted file mode 100644
index 20e13f2..0000000
--- a/test/intrinsics/gen/inverseSqrt/c22347.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn inverseSqrt(vec<4, f32>) -> vec<4, f32>
-fn inverseSqrt_c22347() {
-  var res: vec4<f32> = inverseSqrt(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  inverseSqrt_c22347();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  inverseSqrt_c22347();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  inverseSqrt_c22347();
-}
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl b/test/intrinsics/gen/isFinite/34d32b.wgsl
deleted file mode 100644
index 20d8b32..0000000
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isFinite(vec<2, f32>) -> vec<2, bool>
-fn isFinite_34d32b() {
-  var res: vec2<bool> = isFinite(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_34d32b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_34d32b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_34d32b();
-}
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
deleted file mode 100644
index e8a8c27..0000000
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.glsl
+++ /dev/null
@@ -1,80 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isFinite(vec2<f32>());
-                        ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isFinite_34d32b() {
-  bvec2 res = isfinite(vec2(0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isFinite_34d32b();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_34d32b() {
-  bvec2 res = isfinite(vec2(0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isFinite_34d32b();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_34d32b() {
-  bvec2 res = isfinite(vec2(0.0f, 0.0f));
-}
-
-void compute_main() {
-  isFinite_34d32b();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 2-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.hlsl b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.hlsl
deleted file mode 100644
index 26da207..0000000
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isFinite(vec2<f32>());
-                        ^^^^^^^^
-
-void isFinite_34d32b() {
-  bool2 res = isfinite(float2(0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isFinite_34d32b();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isFinite_34d32b();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isFinite_34d32b();
-  return;
-}
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.msl b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.msl
deleted file mode 100644
index 34352c0..0000000
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isFinite(vec2<f32>());
-                        ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isFinite_34d32b() {
-  bool2 res = isfinite(float2());
-}
-
-float4 vertex_main_inner() {
-  isFinite_34d32b();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isFinite_34d32b();
-  return;
-}
-
-kernel void compute_main() {
-  isFinite_34d32b();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.spvasm
deleted file mode 100644
index 831fa2d..0000000
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.spvasm
+++ /dev/null
@@ -1,76 +0,0 @@
-intrinsics/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isFinite(vec2<f32>());
-                        ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 38
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isFinite_34d32b "isFinite_34d32b"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v2bool = OpTypeVector %bool 2
-    %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
-%_ptr_Function_v2bool = OpTypePointer Function %v2bool
-         %23 = OpConstantNull %v2bool
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isFinite_34d32b = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v2bool Function %23
-         %18 = OpIsInf %v2bool %17
-         %19 = OpIsNan %v2bool %17
-         %20 = OpLogicalOr %v2bool %18 %19
-         %13 = OpLogicalNot %v2bool %20
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %isFinite_34d32b
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isFinite_34d32b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %isFinite_34d32b
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.wgsl b/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.wgsl
deleted file mode 100644
index 8b38ba9..0000000
--- a/test/intrinsics/gen/isFinite/34d32b.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isFinite/34d32b.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isFinite(vec2<f32>());
-                        ^^^^^^^^
-
-fn isFinite_34d32b() {
-  var res : vec2<bool> = isFinite(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_34d32b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_34d32b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_34d32b();
-}
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl b/test/intrinsics/gen/isFinite/426f9f.wgsl
deleted file mode 100644
index e43f7a6..0000000
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isFinite(f32) -> bool
-fn isFinite_426f9f() {
-  var res: bool = isFinite(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_426f9f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_426f9f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_426f9f();
-}
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
deleted file mode 100644
index 0669ad2..0000000
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.glsl
+++ /dev/null
@@ -1,80 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isFinite(1.0);
-                  ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isFinite_426f9f() {
-  bool res = isfinite(1.0f);
-}
-
-vec4 vertex_main() {
-  isFinite_426f9f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_426f9f() {
-  bool res = isfinite(1.0f);
-}
-
-void fragment_main() {
-  isFinite_426f9f();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_426f9f() {
-  bool res = isfinite(1.0f);
-}
-
-void compute_main() {
-  isFinite_426f9f();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.hlsl b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.hlsl
deleted file mode 100644
index 9e215be..0000000
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isFinite(1.0);
-                  ^^^^^^^^
-
-void isFinite_426f9f() {
-  bool res = isfinite(1.0f);
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isFinite_426f9f();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isFinite_426f9f();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isFinite_426f9f();
-  return;
-}
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.msl b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.msl
deleted file mode 100644
index 39432e0..0000000
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isFinite(1.0);
-                  ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isFinite_426f9f() {
-  bool res = isfinite(1.0f);
-}
-
-float4 vertex_main_inner() {
-  isFinite_426f9f();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isFinite_426f9f();
-  return;
-}
-
-kernel void compute_main() {
-  isFinite_426f9f();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.spvasm
deleted file mode 100644
index 5b55562..0000000
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.spvasm
+++ /dev/null
@@ -1,73 +0,0 @@
-intrinsics/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isFinite(1.0);
-                  ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 35
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isFinite_426f9f "isFinite_426f9f"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-    %float_1 = OpConstant %float 1
-%_ptr_Function_bool = OpTypePointer Function %bool
-         %21 = OpConstantNull %bool
-         %22 = OpTypeFunction %v4float
-%isFinite_426f9f = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_bool Function %21
-         %16 = OpIsInf %bool %float_1
-         %17 = OpIsNan %bool %float_1
-         %18 = OpLogicalOr %bool %16 %17
-         %13 = OpLogicalNot %bool %18
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %isFinite_426f9f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %isFinite_426f9f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isFinite_426f9f
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.wgsl b/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.wgsl
deleted file mode 100644
index 6dd9547..0000000
--- a/test/intrinsics/gen/isFinite/426f9f.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isFinite(1.0);
-                  ^^^^^^^^
-
-fn isFinite_426f9f() {
-  var res : bool = isFinite(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_426f9f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_426f9f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_426f9f();
-}
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl b/test/intrinsics/gen/isFinite/8a23ad.wgsl
deleted file mode 100644
index 24a52c0..0000000
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isFinite(vec<3, f32>) -> vec<3, bool>
-fn isFinite_8a23ad() {
-  var res: vec3<bool> = isFinite(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_8a23ad();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_8a23ad();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_8a23ad();
-}
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
deleted file mode 100644
index beb55f0..0000000
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.glsl
+++ /dev/null
@@ -1,80 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isFinite(vec3<f32>());
-                        ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isFinite_8a23ad() {
-  bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isFinite_8a23ad();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_8a23ad() {
-  bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isFinite_8a23ad();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_8a23ad() {
-  bvec3 res = isfinite(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isFinite_8a23ad();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 3-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.hlsl b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.hlsl
deleted file mode 100644
index 098b3e7..0000000
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isFinite(vec3<f32>());
-                        ^^^^^^^^
-
-void isFinite_8a23ad() {
-  bool3 res = isfinite(float3(0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isFinite_8a23ad();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isFinite_8a23ad();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isFinite_8a23ad();
-  return;
-}
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.msl b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.msl
deleted file mode 100644
index 5b9e079..0000000
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isFinite(vec3<f32>());
-                        ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isFinite_8a23ad() {
-  bool3 res = isfinite(float3());
-}
-
-float4 vertex_main_inner() {
-  isFinite_8a23ad();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isFinite_8a23ad();
-  return;
-}
-
-kernel void compute_main() {
-  isFinite_8a23ad();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.spvasm
deleted file mode 100644
index d496b6e..0000000
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.spvasm
+++ /dev/null
@@ -1,76 +0,0 @@
-intrinsics/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isFinite(vec3<f32>());
-                        ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 38
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isFinite_8a23ad "isFinite_8a23ad"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v3bool = OpTypeVector %bool 3
-    %v3float = OpTypeVector %float 3
-         %17 = OpConstantNull %v3float
-%_ptr_Function_v3bool = OpTypePointer Function %v3bool
-         %23 = OpConstantNull %v3bool
-         %24 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isFinite_8a23ad = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v3bool Function %23
-         %18 = OpIsInf %v3bool %17
-         %19 = OpIsNan %v3bool %17
-         %20 = OpLogicalOr %v3bool %18 %19
-         %13 = OpLogicalNot %v3bool %20
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %24
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %isFinite_8a23ad
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %29 = OpLabel
-         %30 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %30
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isFinite_8a23ad
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %void %isFinite_8a23ad
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.wgsl b/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.wgsl
deleted file mode 100644
index 6aa23a5..0000000
--- a/test/intrinsics/gen/isFinite/8a23ad.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isFinite/8a23ad.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isFinite(vec3<f32>());
-                        ^^^^^^^^
-
-fn isFinite_8a23ad() {
-  var res : vec3<bool> = isFinite(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_8a23ad();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_8a23ad();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_8a23ad();
-}
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl b/test/intrinsics/gen/isFinite/f31987.wgsl
deleted file mode 100644
index 0a3f631..0000000
--- a/test/intrinsics/gen/isFinite/f31987.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isFinite(vec<4, f32>) -> vec<4, bool>
-fn isFinite_f31987() {
-  var res: vec4<bool> = isFinite(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_f31987();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_f31987();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_f31987();
-}
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
deleted file mode 100644
index aaf60d1..0000000
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.glsl
+++ /dev/null
@@ -1,80 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isFinite(vec4<f32>());
-                        ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isFinite_f31987() {
-  bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isFinite_f31987();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_f31987() {
-  bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isFinite_f31987();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-void isFinite_f31987() {
-  bvec4 res = isfinite(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isFinite_f31987();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'isfinite' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp 4-component vector of bool'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.hlsl b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.hlsl
deleted file mode 100644
index cb51c62..0000000
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isFinite(vec4<f32>());
-                        ^^^^^^^^
-
-void isFinite_f31987() {
-  bool4 res = isfinite(float4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isFinite_f31987();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isFinite_f31987();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isFinite_f31987();
-  return;
-}
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.msl b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.msl
deleted file mode 100644
index 5e6c504..0000000
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isFinite(vec4<f32>());
-                        ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isFinite_f31987() {
-  bool4 res = isfinite(float4());
-}
-
-float4 vertex_main_inner() {
-  isFinite_f31987();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isFinite_f31987();
-  return;
-}
-
-kernel void compute_main() {
-  isFinite_f31987();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.spvasm b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.spvasm
deleted file mode 100644
index ee68c59..0000000
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.spvasm
+++ /dev/null
@@ -1,74 +0,0 @@
-intrinsics/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isFinite(vec4<f32>());
-                        ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 36
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isFinite_f31987 "isFinite_f31987"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v4bool = OpTypeVector %bool 4
-%_ptr_Function_v4bool = OpTypePointer Function %v4bool
-         %21 = OpConstantNull %v4bool
-         %22 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isFinite_f31987 = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4bool Function %21
-         %16 = OpIsInf %v4bool %5
-         %17 = OpIsNan %v4bool %5
-         %18 = OpLogicalOr %v4bool %16 %17
-         %13 = OpLogicalNot %v4bool %18
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %22
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %isFinite_f31987
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %28
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isFinite_f31987
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %isFinite_f31987
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.wgsl b/test/intrinsics/gen/isFinite/f31987.wgsl.expected.wgsl
deleted file mode 100644
index a5e86db..0000000
--- a/test/intrinsics/gen/isFinite/f31987.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isFinite/f31987.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isFinite(vec4<f32>());
-                        ^^^^^^^^
-
-fn isFinite_f31987() {
-  var res : vec4<bool> = isFinite(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isFinite_f31987();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isFinite_f31987();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isFinite_f31987();
-}
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl b/test/intrinsics/gen/isInf/666f2a.wgsl
deleted file mode 100644
index 7550d27..0000000
--- a/test/intrinsics/gen/isInf/666f2a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isInf(vec<3, f32>) -> vec<3, bool>
-fn isInf_666f2a() {
-  var res: vec3<bool> = isInf(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_666f2a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_666f2a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_666f2a();
-}
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
deleted file mode 100644
index 0daf17d..0000000
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isInf(vec3<f32>());
-                        ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isInf_666f2a() {
-  bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isInf_666f2a();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_666f2a() {
-  bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isInf_666f2a();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_666f2a() {
-  bvec3 res = isinf(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isInf_666f2a();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.hlsl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.hlsl
deleted file mode 100644
index cb815e1..0000000
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isInf(vec3<f32>());
-                        ^^^^^
-
-void isInf_666f2a() {
-  bool3 res = isinf(float3(0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isInf_666f2a();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isInf_666f2a();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isInf_666f2a();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.msl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.msl
deleted file mode 100644
index fa37ad7..0000000
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isInf(vec3<f32>());
-                        ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isInf_666f2a() {
-  bool3 res = isinf(float3());
-}
-
-float4 vertex_main_inner() {
-  isInf_666f2a();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isInf_666f2a();
-  return;
-}
-
-kernel void compute_main() {
-  isInf_666f2a();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.spvasm
deleted file mode 100644
index 42db2c1..0000000
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.spvasm
+++ /dev/null
@@ -1,73 +0,0 @@
-intrinsics/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isInf(vec3<f32>());
-                        ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 35
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isInf_666f2a "isInf_666f2a"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v3bool = OpTypeVector %bool 3
-    %v3float = OpTypeVector %float 3
-         %17 = OpConstantNull %v3float
-%_ptr_Function_v3bool = OpTypePointer Function %v3bool
-         %20 = OpConstantNull %v3bool
-         %21 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isInf_666f2a = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v3bool Function %20
-         %13 = OpIsInf %v3bool %17
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %isInf_666f2a
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %isInf_666f2a
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isInf_666f2a
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.wgsl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.wgsl
deleted file mode 100644
index 4fa25cb..0000000
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isInf(vec3<f32>());
-                        ^^^^^
-
-fn isInf_666f2a() {
-  var res : vec3<bool> = isInf(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_666f2a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_666f2a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_666f2a();
-}
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl b/test/intrinsics/gen/isInf/7bd98f.wgsl
deleted file mode 100644
index eaea74d..0000000
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isInf(f32) -> bool
-fn isInf_7bd98f() {
-  var res: bool = isInf(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_7bd98f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_7bd98f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_7bd98f();
-}
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
deleted file mode 100644
index b4790ba..0000000
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isInf(1.0);
-                  ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isInf_7bd98f() {
-  bool res = isinf(1.0f);
-}
-
-vec4 vertex_main() {
-  isInf_7bd98f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_7bd98f() {
-  bool res = isinf(1.0f);
-}
-
-void fragment_main() {
-  isInf_7bd98f();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_7bd98f() {
-  bool res = isinf(1.0f);
-}
-
-void compute_main() {
-  isInf_7bd98f();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.hlsl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.hlsl
deleted file mode 100644
index 710b925..0000000
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isInf(1.0);
-                  ^^^^^
-
-void isInf_7bd98f() {
-  bool res = isinf(1.0f);
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isInf_7bd98f();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isInf_7bd98f();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isInf_7bd98f();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.msl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.msl
deleted file mode 100644
index c2a807b..0000000
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isInf(1.0);
-                  ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isInf_7bd98f() {
-  bool res = isinf(1.0f);
-}
-
-float4 vertex_main_inner() {
-  isInf_7bd98f();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isInf_7bd98f();
-  return;
-}
-
-kernel void compute_main() {
-  isInf_7bd98f();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.spvasm
deleted file mode 100644
index b04b2b1..0000000
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.spvasm
+++ /dev/null
@@ -1,70 +0,0 @@
-intrinsics/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isInf(1.0);
-                  ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 32
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isInf_7bd98f "isInf_7bd98f"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-    %float_1 = OpConstant %float 1
-%_ptr_Function_bool = OpTypePointer Function %bool
-         %18 = OpConstantNull %bool
-         %19 = OpTypeFunction %v4float
-%isInf_7bd98f = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_bool Function %18
-         %13 = OpIsInf %bool %float_1
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %19
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %isInf_7bd98f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %25
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %isInf_7bd98f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %isInf_7bd98f
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.wgsl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.wgsl
deleted file mode 100644
index 82deb30..0000000
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isInf(1.0);
-                  ^^^^^
-
-fn isInf_7bd98f() {
-  var res : bool = isInf(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_7bd98f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_7bd98f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_7bd98f();
-}
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl b/test/intrinsics/gen/isInf/7e81b5.wgsl
deleted file mode 100644
index 0a96753..0000000
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isInf(vec<4, f32>) -> vec<4, bool>
-fn isInf_7e81b5() {
-  var res: vec4<bool> = isInf(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_7e81b5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_7e81b5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_7e81b5();
-}
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
deleted file mode 100644
index 0ed29fd..0000000
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isInf(vec4<f32>());
-                        ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isInf_7e81b5() {
-  bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isInf_7e81b5();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_7e81b5() {
-  bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isInf_7e81b5();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_7e81b5() {
-  bvec4 res = isinf(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isInf_7e81b5();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.hlsl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.hlsl
deleted file mode 100644
index f04d9c0..0000000
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isInf(vec4<f32>());
-                        ^^^^^
-
-void isInf_7e81b5() {
-  bool4 res = isinf(float4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isInf_7e81b5();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isInf_7e81b5();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isInf_7e81b5();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.msl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.msl
deleted file mode 100644
index de416fb..0000000
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isInf(vec4<f32>());
-                        ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isInf_7e81b5() {
-  bool4 res = isinf(float4());
-}
-
-float4 vertex_main_inner() {
-  isInf_7e81b5();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isInf_7e81b5();
-  return;
-}
-
-kernel void compute_main() {
-  isInf_7e81b5();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.spvasm
deleted file mode 100644
index c8a1781..0000000
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.spvasm
+++ /dev/null
@@ -1,71 +0,0 @@
-intrinsics/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isInf(vec4<f32>());
-                        ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 33
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isInf_7e81b5 "isInf_7e81b5"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v4bool = OpTypeVector %bool 4
-%_ptr_Function_v4bool = OpTypePointer Function %v4bool
-         %18 = OpConstantNull %v4bool
-         %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isInf_7e81b5 = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4bool Function %18
-         %13 = OpIsInf %v4bool %5
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %19
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %isInf_7e81b5
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %25
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %isInf_7e81b5
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isInf_7e81b5
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.wgsl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.wgsl
deleted file mode 100644
index 3fced5a..0000000
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isInf(vec4<f32>());
-                        ^^^^^
-
-fn isInf_7e81b5() {
-  var res : vec4<bool> = isInf(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_7e81b5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_7e81b5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_7e81b5();
-}
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl b/test/intrinsics/gen/isInf/a46d6f.wgsl
deleted file mode 100644
index 5841a41..0000000
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isInf(vec<2, f32>) -> vec<2, bool>
-fn isInf_a46d6f() {
-  var res: vec2<bool> = isInf(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_a46d6f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_a46d6f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_a46d6f();
-}
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
deleted file mode 100644
index 78a4a3a..0000000
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isInf(vec2<f32>());
-                        ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isInf_a46d6f() {
-  bvec2 res = isinf(vec2(0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isInf_a46d6f();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_a46d6f() {
-  bvec2 res = isinf(vec2(0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isInf_a46d6f();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isInf_a46d6f() {
-  bvec2 res = isinf(vec2(0.0f, 0.0f));
-}
-
-void compute_main() {
-  isInf_a46d6f();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.hlsl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.hlsl
deleted file mode 100644
index bb06413..0000000
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isInf(vec2<f32>());
-                        ^^^^^
-
-void isInf_a46d6f() {
-  bool2 res = isinf(float2(0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isInf_a46d6f();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isInf_a46d6f();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isInf_a46d6f();
-  return;
-}
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.msl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.msl
deleted file mode 100644
index f4c9032..0000000
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isInf(vec2<f32>());
-                        ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isInf_a46d6f() {
-  bool2 res = isinf(float2());
-}
-
-float4 vertex_main_inner() {
-  isInf_a46d6f();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isInf_a46d6f();
-  return;
-}
-
-kernel void compute_main() {
-  isInf_a46d6f();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.spvasm b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.spvasm
deleted file mode 100644
index 52b4ee8..0000000
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.spvasm
+++ /dev/null
@@ -1,73 +0,0 @@
-intrinsics/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isInf(vec2<f32>());
-                        ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 35
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isInf_a46d6f "isInf_a46d6f"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v2bool = OpTypeVector %bool 2
-    %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
-%_ptr_Function_v2bool = OpTypePointer Function %v2bool
-         %20 = OpConstantNull %v2bool
-         %21 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isInf_a46d6f = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v2bool Function %20
-         %13 = OpIsInf %v2bool %17
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %isInf_a46d6f
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %isInf_a46d6f
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isInf_a46d6f
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.wgsl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.wgsl
deleted file mode 100644
index 3fa68d9..0000000
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isInf(vec2<f32>());
-                        ^^^^^
-
-fn isInf_a46d6f() {
-  var res : vec2<bool> = isInf(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isInf_a46d6f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isInf_a46d6f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isInf_a46d6f();
-}
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl b/test/intrinsics/gen/isNan/1280ab.wgsl
deleted file mode 100644
index fb5e25c..0000000
--- a/test/intrinsics/gen/isNan/1280ab.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNan(vec<3, f32>) -> vec<3, bool>
-fn isNan_1280ab() {
-  var res: vec3<bool> = isNan(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_1280ab();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_1280ab();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_1280ab();
-}
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
deleted file mode 100644
index 3ca91af..0000000
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNan(vec3<f32>());
-                        ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isNan_1280ab() {
-  bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isNan_1280ab();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_1280ab() {
-  bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isNan_1280ab();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_1280ab() {
-  bvec3 res = isnan(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isNan_1280ab();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.hlsl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.hlsl
deleted file mode 100644
index 55394cc..0000000
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNan(vec3<f32>());
-                        ^^^^^
-
-void isNan_1280ab() {
-  bool3 res = isnan(float3(0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNan_1280ab();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNan_1280ab();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNan_1280ab();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.msl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.msl
deleted file mode 100644
index 7a8c6dd..0000000
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNan(vec3<f32>());
-                        ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNan_1280ab() {
-  bool3 res = isnan(float3());
-}
-
-float4 vertex_main_inner() {
-  isNan_1280ab();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNan_1280ab();
-  return;
-}
-
-kernel void compute_main() {
-  isNan_1280ab();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.spvasm
deleted file mode 100644
index 91bdbc9..0000000
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.spvasm
+++ /dev/null
@@ -1,73 +0,0 @@
-intrinsics/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNan(vec3<f32>());
-                        ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 35
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNan_1280ab "isNan_1280ab"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v3bool = OpTypeVector %bool 3
-    %v3float = OpTypeVector %float 3
-         %17 = OpConstantNull %v3float
-%_ptr_Function_v3bool = OpTypePointer Function %v3bool
-         %20 = OpConstantNull %v3bool
-         %21 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isNan_1280ab = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v3bool Function %20
-         %13 = OpIsNan %v3bool %17
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %isNan_1280ab
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %isNan_1280ab
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isNan_1280ab
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.wgsl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.wgsl
deleted file mode 100644
index ec27bcd..0000000
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNan(vec3<f32>());
-                        ^^^^^
-
-fn isNan_1280ab() {
-  var res : vec3<bool> = isNan(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_1280ab();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_1280ab();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_1280ab();
-}
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl b/test/intrinsics/gen/isNan/4d280d.wgsl
deleted file mode 100644
index 330440d..0000000
--- a/test/intrinsics/gen/isNan/4d280d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNan(vec<4, f32>) -> vec<4, bool>
-fn isNan_4d280d() {
-  var res: vec4<bool> = isNan(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_4d280d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_4d280d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_4d280d();
-}
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
deleted file mode 100644
index 61f6600..0000000
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNan(vec4<f32>());
-                        ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isNan_4d280d() {
-  bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isNan_4d280d();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_4d280d() {
-  bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isNan_4d280d();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_4d280d() {
-  bvec4 res = isnan(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isNan_4d280d();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.hlsl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.hlsl
deleted file mode 100644
index 18a17d5..0000000
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNan(vec4<f32>());
-                        ^^^^^
-
-void isNan_4d280d() {
-  bool4 res = isnan(float4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNan_4d280d();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNan_4d280d();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNan_4d280d();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.msl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.msl
deleted file mode 100644
index e8c2d9c..0000000
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNan(vec4<f32>());
-                        ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNan_4d280d() {
-  bool4 res = isnan(float4());
-}
-
-float4 vertex_main_inner() {
-  isNan_4d280d();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNan_4d280d();
-  return;
-}
-
-kernel void compute_main() {
-  isNan_4d280d();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.spvasm
deleted file mode 100644
index ee5a96e..0000000
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.spvasm
+++ /dev/null
@@ -1,71 +0,0 @@
-intrinsics/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNan(vec4<f32>());
-                        ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 33
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNan_4d280d "isNan_4d280d"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v4bool = OpTypeVector %bool 4
-%_ptr_Function_v4bool = OpTypePointer Function %v4bool
-         %18 = OpConstantNull %v4bool
-         %19 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isNan_4d280d = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4bool Function %18
-         %13 = OpIsNan %v4bool %5
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %19
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %isNan_4d280d
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %25
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %28 = OpLabel
-         %29 = OpFunctionCall %void %isNan_4d280d
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %31 = OpLabel
-         %32 = OpFunctionCall %void %isNan_4d280d
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.wgsl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.wgsl
deleted file mode 100644
index 57ba354..0000000
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNan(vec4<f32>());
-                        ^^^^^
-
-fn isNan_4d280d() {
-  var res : vec4<bool> = isNan(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_4d280d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_4d280d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_4d280d();
-}
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl b/test/intrinsics/gen/isNan/67ecd3.wgsl
deleted file mode 100644
index 9b082ec..0000000
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNan(vec<2, f32>) -> vec<2, bool>
-fn isNan_67ecd3() {
-  var res: vec2<bool> = isNan(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_67ecd3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_67ecd3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_67ecd3();
-}
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
deleted file mode 100644
index d0a67e5..0000000
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNan(vec2<f32>());
-                        ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isNan_67ecd3() {
-  bvec2 res = isnan(vec2(0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isNan_67ecd3();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_67ecd3() {
-  bvec2 res = isnan(vec2(0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isNan_67ecd3();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_67ecd3() {
-  bvec2 res = isnan(vec2(0.0f, 0.0f));
-}
-
-void compute_main() {
-  isNan_67ecd3();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.hlsl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.hlsl
deleted file mode 100644
index c83f79d..0000000
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNan(vec2<f32>());
-                        ^^^^^
-
-void isNan_67ecd3() {
-  bool2 res = isnan(float2(0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNan_67ecd3();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNan_67ecd3();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNan_67ecd3();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.msl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.msl
deleted file mode 100644
index 901c4ca..0000000
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNan(vec2<f32>());
-                        ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNan_67ecd3() {
-  bool2 res = isnan(float2());
-}
-
-float4 vertex_main_inner() {
-  isNan_67ecd3();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNan_67ecd3();
-  return;
-}
-
-kernel void compute_main() {
-  isNan_67ecd3();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.spvasm
deleted file mode 100644
index 575cb56..0000000
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.spvasm
+++ /dev/null
@@ -1,73 +0,0 @@
-intrinsics/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNan(vec2<f32>());
-                        ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 35
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNan_67ecd3 "isNan_67ecd3"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v2bool = OpTypeVector %bool 2
-    %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
-%_ptr_Function_v2bool = OpTypePointer Function %v2bool
-         %20 = OpConstantNull %v2bool
-         %21 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isNan_67ecd3 = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v2bool Function %20
-         %13 = OpIsNan %v2bool %17
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %21
-         %23 = OpLabel
-         %24 = OpFunctionCall %void %isNan_67ecd3
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %26 = OpLabel
-         %27 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %27
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %isNan_67ecd3
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isNan_67ecd3
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.wgsl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.wgsl
deleted file mode 100644
index 2f9573d..0000000
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNan(vec2<f32>());
-                        ^^^^^
-
-fn isNan_67ecd3() {
-  var res : vec2<bool> = isNan(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_67ecd3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_67ecd3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_67ecd3();
-}
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl b/test/intrinsics/gen/isNan/e4978e.wgsl
deleted file mode 100644
index f28a7d1..0000000
--- a/test/intrinsics/gen/isNan/e4978e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNan(f32) -> bool
-fn isNan_e4978e() {
-  var res: bool = isNan(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_e4978e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_e4978e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_e4978e();
-}
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
deleted file mode 100644
index 9f74dfe..0000000
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
+++ /dev/null
@@ -1,54 +0,0 @@
-intrinsics/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNan(1.0);
-                  ^^^^^
-
-#version 310 es
-precision mediump float;
-
-void isNan_e4978e() {
-  bool res = isnan(1.0f);
-}
-
-vec4 vertex_main() {
-  isNan_e4978e();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_e4978e() {
-  bool res = isnan(1.0f);
-}
-
-void fragment_main() {
-  isNan_e4978e();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-#version 310 es
-precision mediump float;
-
-void isNan_e4978e() {
-  bool res = isnan(1.0f);
-}
-
-void compute_main() {
-  isNan_e4978e();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.hlsl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.hlsl
deleted file mode 100644
index 99d53a5..0000000
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-intrinsics/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNan(1.0);
-                  ^^^^^
-
-void isNan_e4978e() {
-  bool res = isnan(1.0f);
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNan_e4978e();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNan_e4978e();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNan_e4978e();
-  return;
-}
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.msl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.msl
deleted file mode 100644
index 89f7640..0000000
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNan(1.0);
-                  ^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNan_e4978e() {
-  bool res = isnan(1.0f);
-}
-
-float4 vertex_main_inner() {
-  isNan_e4978e();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNan_e4978e();
-  return;
-}
-
-kernel void compute_main() {
-  isNan_e4978e();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.spvasm b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.spvasm
deleted file mode 100644
index 08f50a7..0000000
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,70 +0,0 @@
-intrinsics/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNan(1.0);
-                  ^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 32
-; Schema: 0
-               OpCapability Shader
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNan_e4978e "isNan_e4978e"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-    %float_1 = OpConstant %float 1
-%_ptr_Function_bool = OpTypePointer Function %bool
-         %18 = OpConstantNull %bool
-         %19 = OpTypeFunction %v4float
-%isNan_e4978e = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_bool Function %18
-         %13 = OpIsNan %bool %float_1
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %19
-         %21 = OpLabel
-         %22 = OpFunctionCall %void %isNan_e4978e
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %24 = OpLabel
-         %25 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %25
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %isNan_e4978e
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %30 = OpLabel
-         %31 = OpFunctionCall %void %isNan_e4978e
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.wgsl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.wgsl
deleted file mode 100644
index 0e27431..0000000
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNan(1.0);
-                  ^^^^^
-
-fn isNan_e4978e() {
-  var res : bool = isNan(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNan_e4978e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNan_e4978e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNan_e4978e();
-}
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl b/test/intrinsics/gen/isNormal/863dcd.wgsl
deleted file mode 100644
index a814ddb..0000000
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNormal(vec<4, f32>) -> vec<4, bool>
-fn isNormal_863dcd() {
-  var res: vec4<bool> = isNormal(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_863dcd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_863dcd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_863dcd();
-}
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
deleted file mode 100644
index 45a8806..0000000
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.glsl
+++ /dev/null
@@ -1,98 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNormal(vec4<f32>());
-                        ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-bvec4 tint_isNormal(vec4 param_0) {
-  uint4 exponent = asuint(param_0) & 0x7f80000;
-  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_863dcd() {
-  bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isNormal_863dcd();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bvec4 tint_isNormal(vec4 param_0) {
-  uint4 exponent = asuint(param_0) & 0x7f80000;
-  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_863dcd() {
-  bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isNormal_863dcd();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bvec4 tint_isNormal(vec4 param_0) {
-  uint4 exponent = asuint(param_0) & 0x7f80000;
-  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_863dcd() {
-  bvec4 res = tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isNormal_863dcd();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.hlsl b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.hlsl
deleted file mode 100644
index 978aed2..0000000
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.hlsl
+++ /dev/null
@@ -1,40 +0,0 @@
-intrinsics/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNormal(vec4<f32>());
-                        ^^^^^^^^
-
-bool4 tint_isNormal(float4 param_0) {
-  uint4 exponent = asuint(param_0) & 0x7f80000;
-  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-void isNormal_863dcd() {
-  bool4 res = tint_isNormal(float4(0.0f, 0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNormal_863dcd();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNormal_863dcd();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNormal_863dcd();
-  return;
-}
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.msl b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.msl
deleted file mode 100644
index aa87291..0000000
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNormal(vec4<f32>());
-                        ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNormal_863dcd() {
-  bool4 res = isnormal(float4());
-}
-
-float4 vertex_main_inner() {
-  isNormal_863dcd();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNormal_863dcd();
-  return;
-}
-
-kernel void compute_main() {
-  isNormal_863dcd();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.spvasm
deleted file mode 100644
index b901c91..0000000
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.spvasm
+++ /dev/null
@@ -1,83 +0,0 @@
-intrinsics/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNormal(vec4<f32>());
-                        ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-         %16 = OpExtInstImport "GLSL.std.450"
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNormal_863dcd "isNormal_863dcd"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v4bool = OpTypeVector %bool 4
-       %uint = OpTypeInt 32 0
-%uint_133693440 = OpConstant %uint 133693440
-%uint_524288 = OpConstant %uint 524288
-%uint_133169152 = OpConstant %uint 133169152
-     %v4uint = OpTypeVector %uint 4
-%_ptr_Function_v4bool = OpTypePointer Function %v4bool
-         %30 = OpConstantNull %v4bool
-         %31 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isNormal_863dcd = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v4bool Function %30
-         %22 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
-         %23 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
-         %24 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
-         %25 = OpBitcast %v4uint %5
-         %26 = OpBitwiseAnd %v4uint %25 %22
-         %27 = OpExtInst %v4uint %16 UClamp %26 %23 %24
-         %13 = OpIEqual %v4bool %26 %27
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %31
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %isNormal_863dcd
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %36 = OpLabel
-         %37 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %37
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %40 = OpLabel
-         %41 = OpFunctionCall %void %isNormal_863dcd
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %43 = OpLabel
-         %44 = OpFunctionCall %void %isNormal_863dcd
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.wgsl b/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.wgsl
deleted file mode 100644
index 79f0261..0000000
--- a/test/intrinsics/gen/isNormal/863dcd.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNormal/863dcd.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec4<bool> = isNormal(vec4<f32>());
-                        ^^^^^^^^
-
-fn isNormal_863dcd() {
-  var res : vec4<bool> = isNormal(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_863dcd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_863dcd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_863dcd();
-}
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl b/test/intrinsics/gen/isNormal/b00ab1.wgsl
deleted file mode 100644
index 7113dcc..0000000
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNormal(vec<2, f32>) -> vec<2, bool>
-fn isNormal_b00ab1() {
-  var res: vec2<bool> = isNormal(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_b00ab1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_b00ab1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_b00ab1();
-}
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
deleted file mode 100644
index 038cf35..0000000
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.glsl
+++ /dev/null
@@ -1,98 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNormal(vec2<f32>());
-                        ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-bvec2 tint_isNormal(vec2 param_0) {
-  uint2 exponent = asuint(param_0) & 0x7f80000;
-  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_b00ab1() {
-  bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isNormal_b00ab1();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bvec2 tint_isNormal(vec2 param_0) {
-  uint2 exponent = asuint(param_0) & 0x7f80000;
-  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_b00ab1() {
-  bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isNormal_b00ab1();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bvec2 tint_isNormal(vec2 param_0) {
-  uint2 exponent = asuint(param_0) & 0x7f80000;
-  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_b00ab1() {
-  bvec2 res = tint_isNormal(vec2(0.0f, 0.0f));
-}
-
-void compute_main() {
-  isNormal_b00ab1();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint2' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.hlsl b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.hlsl
deleted file mode 100644
index 226bf93..0000000
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.hlsl
+++ /dev/null
@@ -1,40 +0,0 @@
-intrinsics/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNormal(vec2<f32>());
-                        ^^^^^^^^
-
-bool2 tint_isNormal(float2 param_0) {
-  uint2 exponent = asuint(param_0) & 0x7f80000;
-  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-void isNormal_b00ab1() {
-  bool2 res = tint_isNormal(float2(0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNormal_b00ab1();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNormal_b00ab1();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNormal_b00ab1();
-  return;
-}
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.msl b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.msl
deleted file mode 100644
index d51f774..0000000
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNormal(vec2<f32>());
-                        ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNormal_b00ab1() {
-  bool2 res = isnormal(float2());
-}
-
-float4 vertex_main_inner() {
-  isNormal_b00ab1();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNormal_b00ab1();
-  return;
-}
-
-kernel void compute_main() {
-  isNormal_b00ab1();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.spvasm
deleted file mode 100644
index 92ba069..0000000
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.spvasm
+++ /dev/null
@@ -1,85 +0,0 @@
-intrinsics/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNormal(vec2<f32>());
-                        ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 47
-; Schema: 0
-               OpCapability Shader
-         %18 = OpExtInstImport "GLSL.std.450"
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNormal_b00ab1 "isNormal_b00ab1"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v2bool = OpTypeVector %bool 2
-    %v2float = OpTypeVector %float 2
-         %17 = OpConstantNull %v2float
-       %uint = OpTypeInt 32 0
-%uint_133693440 = OpConstant %uint 133693440
-%uint_524288 = OpConstant %uint 524288
-%uint_133169152 = OpConstant %uint 133169152
-     %v2uint = OpTypeVector %uint 2
-%_ptr_Function_v2bool = OpTypePointer Function %v2bool
-         %32 = OpConstantNull %v2bool
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isNormal_b00ab1 = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v2bool Function %32
-         %24 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
-         %25 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
-         %26 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
-         %27 = OpBitcast %v2uint %17
-         %28 = OpBitwiseAnd %v2uint %27 %24
-         %29 = OpExtInst %v2uint %18 UClamp %28 %25 %26
-         %13 = OpIEqual %v2bool %28 %29
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %isNormal_b00ab1
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %isNormal_b00ab1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %isNormal_b00ab1
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.wgsl b/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.wgsl
deleted file mode 100644
index c6b748c..0000000
--- a/test/intrinsics/gen/isNormal/b00ab1.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNormal/b00ab1.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec2<bool> = isNormal(vec2<f32>());
-                        ^^^^^^^^
-
-fn isNormal_b00ab1() {
-  var res : vec2<bool> = isNormal(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_b00ab1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_b00ab1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_b00ab1();
-}
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl b/test/intrinsics/gen/isNormal/c286b7.wgsl
deleted file mode 100644
index b44cb1f..0000000
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNormal(vec<3, f32>) -> vec<3, bool>
-fn isNormal_c286b7() {
-  var res: vec3<bool> = isNormal(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_c286b7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_c286b7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_c286b7();
-}
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
deleted file mode 100644
index 4215a0e..0000000
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.glsl
+++ /dev/null
@@ -1,98 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNormal(vec3<f32>());
-                        ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-bvec3 tint_isNormal(vec3 param_0) {
-  uint3 exponent = asuint(param_0) & 0x7f80000;
-  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_c286b7() {
-  bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
-}
-
-vec4 vertex_main() {
-  isNormal_c286b7();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bvec3 tint_isNormal(vec3 param_0) {
-  uint3 exponent = asuint(param_0) & 0x7f80000;
-  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_c286b7() {
-  bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void fragment_main() {
-  isNormal_c286b7();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bvec3 tint_isNormal(vec3 param_0) {
-  uint3 exponent = asuint(param_0) & 0x7f80000;
-  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_c286b7() {
-  bvec3 res = tint_isNormal(vec3(0.0f, 0.0f, 0.0f));
-}
-
-void compute_main() {
-  isNormal_c286b7();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint3' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.hlsl b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.hlsl
deleted file mode 100644
index eeb5d55..0000000
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.hlsl
+++ /dev/null
@@ -1,40 +0,0 @@
-intrinsics/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNormal(vec3<f32>());
-                        ^^^^^^^^
-
-bool3 tint_isNormal(float3 param_0) {
-  uint3 exponent = asuint(param_0) & 0x7f80000;
-  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-void isNormal_c286b7() {
-  bool3 res = tint_isNormal(float3(0.0f, 0.0f, 0.0f));
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNormal_c286b7();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNormal_c286b7();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNormal_c286b7();
-  return;
-}
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.msl b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.msl
deleted file mode 100644
index 3717571..0000000
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNormal(vec3<f32>());
-                        ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNormal_c286b7() {
-  bool3 res = isnormal(float3());
-}
-
-float4 vertex_main_inner() {
-  isNormal_c286b7();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNormal_c286b7();
-  return;
-}
-
-kernel void compute_main() {
-  isNormal_c286b7();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.spvasm
deleted file mode 100644
index b1a0806..0000000
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,85 +0,0 @@
-intrinsics/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNormal(vec3<f32>());
-                        ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 47
-; Schema: 0
-               OpCapability Shader
-         %18 = OpExtInstImport "GLSL.std.450"
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNormal_c286b7 "isNormal_c286b7"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v3bool = OpTypeVector %bool 3
-    %v3float = OpTypeVector %float 3
-         %17 = OpConstantNull %v3float
-       %uint = OpTypeInt 32 0
-%uint_133693440 = OpConstant %uint 133693440
-%uint_524288 = OpConstant %uint 524288
-%uint_133169152 = OpConstant %uint 133169152
-     %v3uint = OpTypeVector %uint 3
-%_ptr_Function_v3bool = OpTypePointer Function %v3bool
-         %32 = OpConstantNull %v3bool
-         %33 = OpTypeFunction %v4float
-    %float_1 = OpConstant %float 1
-%isNormal_c286b7 = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_v3bool Function %32
-         %24 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
-         %25 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
-         %26 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
-         %27 = OpBitcast %v3uint %17
-         %28 = OpBitwiseAnd %v3uint %27 %24
-         %29 = OpExtInst %v3uint %18 UClamp %28 %25 %26
-         %13 = OpIEqual %v3bool %28 %29
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %33
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %isNormal_c286b7
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %39
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %42 = OpLabel
-         %43 = OpFunctionCall %void %isNormal_c286b7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %45 = OpLabel
-         %46 = OpFunctionCall %void %isNormal_c286b7
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.wgsl b/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.wgsl
deleted file mode 100644
index ca46949..0000000
--- a/test/intrinsics/gen/isNormal/c286b7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNormal/c286b7.wgsl:28:25 warning: use of deprecated intrinsic
-  var res: vec3<bool> = isNormal(vec3<f32>());
-                        ^^^^^^^^
-
-fn isNormal_c286b7() {
-  var res : vec3<bool> = isNormal(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_c286b7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_c286b7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_c286b7();
-}
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl b/test/intrinsics/gen/isNormal/c6e880.wgsl
deleted file mode 100644
index a5d8390..0000000
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn isNormal(f32) -> bool
-fn isNormal_c6e880() {
-  var res: bool = isNormal(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_c6e880();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_c6e880();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_c6e880();
-}
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
deleted file mode 100644
index 0361851..0000000
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.glsl
+++ /dev/null
@@ -1,101 +0,0 @@
-SKIP: FAILED
-
-intrinsics/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNormal(1.0);
-                  ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-bool tint_isNormal(float param_0) {
-  uint exponent = asuint(param_0) & 0x7f80000;
-  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_c6e880() {
-  bool res = tint_isNormal(1.0f);
-}
-
-vec4 vertex_main() {
-  isNormal_c6e880();
-  return vec4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-void main() {
-  vec4 inner_result = vertex_main();
-  gl_Position = inner_result;
-  gl_Position.y = -(gl_Position.y);
-  gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bool tint_isNormal(float param_0) {
-  uint exponent = asuint(param_0) & 0x7f80000;
-  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_c6e880() {
-  bool res = tint_isNormal(1.0f);
-}
-
-void fragment_main() {
-  isNormal_c6e880();
-}
-
-void main() {
-  fragment_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp mediump uint'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
-#version 310 es
-precision mediump float;
-
-bool tint_isNormal(float param_0) {
-  uint exponent = asuint(param_0) & 0x7f80000;
-  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void isNormal_c6e880() {
-  bool res = tint_isNormal(1.0f);
-}
-
-void compute_main() {
-  isNormal_c6e880();
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  compute_main();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'asuint' : no matching overloaded function found 
-ERROR: 0:5: '=' :  cannot convert from ' const float' to ' temp highp uint'
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 3 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.hlsl b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.hlsl
deleted file mode 100644
index 5ef69b6..0000000
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.hlsl
+++ /dev/null
@@ -1,40 +0,0 @@
-intrinsics/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNormal(1.0);
-                  ^^^^^^^^
-
-bool tint_isNormal(float param_0) {
-  uint exponent = asuint(param_0) & 0x7f80000;
-  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-void isNormal_c6e880() {
-  bool res = tint_isNormal(1.0f);
-}
-
-struct tint_symbol {
-  float4 value : SV_Position;
-};
-
-float4 vertex_main_inner() {
-  isNormal_c6e880();
-  return float4(0.0f, 0.0f, 0.0f, 0.0f);
-}
-
-tint_symbol vertex_main() {
-  const float4 inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = (tint_symbol)0;
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-void fragment_main() {
-  isNormal_c6e880();
-  return;
-}
-
-[numthreads(1, 1, 1)]
-void compute_main() {
-  isNormal_c6e880();
-  return;
-}
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.msl b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.msl
deleted file mode 100644
index 148fa0a..0000000
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-intrinsics/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNormal(1.0);
-                  ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-struct tint_symbol {
-  float4 value [[position]];
-};
-
-void isNormal_c6e880() {
-  bool res = isnormal(1.0f);
-}
-
-float4 vertex_main_inner() {
-  isNormal_c6e880();
-  return float4();
-}
-
-vertex tint_symbol vertex_main() {
-  float4 const inner_result = vertex_main_inner();
-  tint_symbol wrapper_result = {};
-  wrapper_result.value = inner_result;
-  return wrapper_result;
-}
-
-fragment void fragment_main() {
-  isNormal_c6e880();
-  return;
-}
-
-kernel void compute_main() {
-  isNormal_c6e880();
-  return;
-}
-
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.spvasm b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.spvasm
deleted file mode 100644
index 98da25d..0000000
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.spvasm
+++ /dev/null
@@ -1,78 +0,0 @@
-intrinsics/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNormal(1.0);
-                  ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-         %16 = OpExtInstImport "GLSL.std.450"
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
-               OpEntryPoint Fragment %fragment_main "fragment_main"
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %fragment_main OriginUpperLeft
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %value "value"
-               OpName %vertex_point_size "vertex_point_size"
-               OpName %isNormal_c6e880 "isNormal_c6e880"
-               OpName %res "res"
-               OpName %vertex_main_inner "vertex_main_inner"
-               OpName %vertex_main "vertex_main"
-               OpName %fragment_main "fragment_main"
-               OpName %compute_main "compute_main"
-               OpDecorate %value BuiltIn Position
-               OpDecorate %vertex_point_size BuiltIn PointSize
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-%_ptr_Output_v4float = OpTypePointer Output %v4float
-          %5 = OpConstantNull %v4float
-      %value = OpVariable %_ptr_Output_v4float Output %5
-%_ptr_Output_float = OpTypePointer Output %float
-          %8 = OpConstantNull %float
-%vertex_point_size = OpVariable %_ptr_Output_float Output %8
-       %void = OpTypeVoid
-          %9 = OpTypeFunction %void
-       %bool = OpTypeBool
-    %float_1 = OpConstant %float 1
-       %uint = OpTypeInt 32 0
-%uint_133693440 = OpConstant %uint 133693440
-%uint_524288 = OpConstant %uint 524288
-%uint_133169152 = OpConstant %uint 133169152
-%_ptr_Function_bool = OpTypePointer Function %bool
-         %26 = OpConstantNull %bool
-         %27 = OpTypeFunction %v4float
-%isNormal_c6e880 = OpFunction %void None %9
-         %12 = OpLabel
-        %res = OpVariable %_ptr_Function_bool Function %26
-         %21 = OpBitcast %uint %float_1
-         %22 = OpBitwiseAnd %uint %21 %uint_133693440
-         %23 = OpExtInst %uint %16 UClamp %22 %uint_524288 %uint_133169152
-         %13 = OpIEqual %bool %22 %23
-               OpStore %res %13
-               OpReturn
-               OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %27
-         %29 = OpLabel
-         %30 = OpFunctionCall %void %isNormal_c6e880
-               OpReturnValue %5
-               OpFunctionEnd
-%vertex_main = OpFunction %void None %9
-         %32 = OpLabel
-         %33 = OpFunctionCall %v4float %vertex_main_inner
-               OpStore %value %33
-               OpStore %vertex_point_size %float_1
-               OpReturn
-               OpFunctionEnd
-%fragment_main = OpFunction %void None %9
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %isNormal_c6e880
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %9
-         %38 = OpLabel
-         %39 = OpFunctionCall %void %isNormal_c6e880
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.wgsl b/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.wgsl
deleted file mode 100644
index 1dc6685..0000000
--- a/test/intrinsics/gen/isNormal/c6e880.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-intrinsics/gen/isNormal/c6e880.wgsl:28:19 warning: use of deprecated intrinsic
-  var res: bool = isNormal(1.0);
-                  ^^^^^^^^
-
-fn isNormal_c6e880() {
-  var res : bool = isNormal(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  isNormal_c6e880();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  isNormal_c6e880();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  isNormal_c6e880();
-}
diff --git a/test/intrinsics/gen/ldexp/a31cdc.wgsl b/test/intrinsics/gen/ldexp/a31cdc.wgsl
deleted file mode 100644
index 2994d5f..0000000
--- a/test/intrinsics/gen/ldexp/a31cdc.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ldexp(vec<3, f32>, vec<3, i32>) -> vec<3, f32>
-fn ldexp_a31cdc() {
-  var res: vec3<f32> = ldexp(vec3<f32>(), vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ldexp_a31cdc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ldexp_a31cdc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ldexp_a31cdc();
-}
diff --git a/test/intrinsics/gen/ldexp/abd718.wgsl b/test/intrinsics/gen/ldexp/abd718.wgsl
deleted file mode 100644
index 5fec178..0000000
--- a/test/intrinsics/gen/ldexp/abd718.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ldexp(vec<2, f32>, vec<2, i32>) -> vec<2, f32>
-fn ldexp_abd718() {
-  var res: vec2<f32> = ldexp(vec2<f32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ldexp_abd718();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ldexp_abd718();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ldexp_abd718();
-}
diff --git a/test/intrinsics/gen/ldexp/cc9cde.wgsl b/test/intrinsics/gen/ldexp/cc9cde.wgsl
deleted file mode 100644
index 9f4702e..0000000
--- a/test/intrinsics/gen/ldexp/cc9cde.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ldexp(vec<4, f32>, vec<4, i32>) -> vec<4, f32>
-fn ldexp_cc9cde() {
-  var res: vec4<f32> = ldexp(vec4<f32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ldexp_cc9cde();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ldexp_cc9cde();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ldexp_cc9cde();
-}
diff --git a/test/intrinsics/gen/ldexp/db8b49.wgsl b/test/intrinsics/gen/ldexp/db8b49.wgsl
deleted file mode 100644
index f0f29a1..0000000
--- a/test/intrinsics/gen/ldexp/db8b49.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn ldexp(f32, i32) -> f32
-fn ldexp_db8b49() {
-  var res: f32 = ldexp(1.0, 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  ldexp_db8b49();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  ldexp_db8b49();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  ldexp_db8b49();
-}
diff --git a/test/intrinsics/gen/length/056071.wgsl b/test/intrinsics/gen/length/056071.wgsl
deleted file mode 100644
index 46dfdfe..0000000
--- a/test/intrinsics/gen/length/056071.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn length(vec<3, f32>) -> f32
-fn length_056071() {
-  var res: f32 = length(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  length_056071();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  length_056071();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  length_056071();
-}
diff --git a/test/intrinsics/gen/length/602a17.wgsl b/test/intrinsics/gen/length/602a17.wgsl
deleted file mode 100644
index 4458a54..0000000
--- a/test/intrinsics/gen/length/602a17.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn length(f32) -> f32
-fn length_602a17() {
-  var res: f32 = length(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  length_602a17();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  length_602a17();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  length_602a17();
-}
diff --git a/test/intrinsics/gen/length/afde8b.wgsl b/test/intrinsics/gen/length/afde8b.wgsl
deleted file mode 100644
index 0e7faf2..0000000
--- a/test/intrinsics/gen/length/afde8b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn length(vec<2, f32>) -> f32
-fn length_afde8b() {
-  var res: f32 = length(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  length_afde8b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  length_afde8b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  length_afde8b();
-}
diff --git a/test/intrinsics/gen/length/becebf.wgsl b/test/intrinsics/gen/length/becebf.wgsl
deleted file mode 100644
index 5029412..0000000
--- a/test/intrinsics/gen/length/becebf.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn length(vec<4, f32>) -> f32
-fn length_becebf() {
-  var res: f32 = length(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  length_becebf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  length_becebf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  length_becebf();
-}
diff --git a/test/intrinsics/gen/log/3da25a.wgsl b/test/intrinsics/gen/log/3da25a.wgsl
deleted file mode 100644
index 12e9fe3..0000000
--- a/test/intrinsics/gen/log/3da25a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log(vec<4, f32>) -> vec<4, f32>
-fn log_3da25a() {
-  var res: vec4<f32> = log(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log_3da25a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log_3da25a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log_3da25a();
-}
diff --git a/test/intrinsics/gen/log/7114a6.wgsl b/test/intrinsics/gen/log/7114a6.wgsl
deleted file mode 100644
index 0332f5b..0000000
--- a/test/intrinsics/gen/log/7114a6.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log(f32) -> f32
-fn log_7114a6() {
-  var res: f32 = log(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log_7114a6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log_7114a6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log_7114a6();
-}
diff --git a/test/intrinsics/gen/log/b2ce28.wgsl b/test/intrinsics/gen/log/b2ce28.wgsl
deleted file mode 100644
index be0a07b..0000000
--- a/test/intrinsics/gen/log/b2ce28.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log(vec<2, f32>) -> vec<2, f32>
-fn log_b2ce28() {
-  var res: vec2<f32> = log(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log_b2ce28();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log_b2ce28();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log_b2ce28();
-}
diff --git a/test/intrinsics/gen/log/f4c570.wgsl b/test/intrinsics/gen/log/f4c570.wgsl
deleted file mode 100644
index e705146..0000000
--- a/test/intrinsics/gen/log/f4c570.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log(vec<3, f32>) -> vec<3, f32>
-fn log_f4c570() {
-  var res: vec3<f32> = log(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log_f4c570();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log_f4c570();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log_f4c570();
-}
diff --git a/test/intrinsics/gen/log2/4036ed.wgsl b/test/intrinsics/gen/log2/4036ed.wgsl
deleted file mode 100644
index 0932fb4..0000000
--- a/test/intrinsics/gen/log2/4036ed.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log2(f32) -> f32
-fn log2_4036ed() {
-  var res: f32 = log2(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log2_4036ed();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log2_4036ed();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log2_4036ed();
-}
diff --git a/test/intrinsics/gen/log2/902988.wgsl b/test/intrinsics/gen/log2/902988.wgsl
deleted file mode 100644
index 83325a2..0000000
--- a/test/intrinsics/gen/log2/902988.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log2(vec<4, f32>) -> vec<4, f32>
-fn log2_902988() {
-  var res: vec4<f32> = log2(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log2_902988();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log2_902988();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log2_902988();
-}
diff --git a/test/intrinsics/gen/log2/adb233.wgsl b/test/intrinsics/gen/log2/adb233.wgsl
deleted file mode 100644
index f231a4a..0000000
--- a/test/intrinsics/gen/log2/adb233.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log2(vec<3, f32>) -> vec<3, f32>
-fn log2_adb233() {
-  var res: vec3<f32> = log2(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log2_adb233();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log2_adb233();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log2_adb233();
-}
diff --git a/test/intrinsics/gen/log2/aea659.wgsl b/test/intrinsics/gen/log2/aea659.wgsl
deleted file mode 100644
index d874511..0000000
--- a/test/intrinsics/gen/log2/aea659.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn log2(vec<2, f32>) -> vec<2, f32>
-fn log2_aea659() {
-  var res: vec2<f32> = log2(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  log2_aea659();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  log2_aea659();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  log2_aea659();
-}
diff --git a/test/intrinsics/gen/max/0c0aae.wgsl b/test/intrinsics/gen/max/0c0aae.wgsl
deleted file mode 100644
index 1dcd5e8..0000000
--- a/test/intrinsics/gen/max/0c0aae.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(u32, u32) -> u32
-fn max_0c0aae() {
-  var res: u32 = max(1u, 1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_0c0aae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_0c0aae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_0c0aae();
-}
diff --git a/test/intrinsics/gen/max/25eafe.wgsl b/test/intrinsics/gen/max/25eafe.wgsl
deleted file mode 100644
index 238cba1..0000000
--- a/test/intrinsics/gen/max/25eafe.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
-fn max_25eafe() {
-  var res: vec3<i32> = max(vec3<i32>(), vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_25eafe();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_25eafe();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_25eafe();
-}
diff --git a/test/intrinsics/gen/max/320815.wgsl b/test/intrinsics/gen/max/320815.wgsl
deleted file mode 100644
index e4b11d1..0000000
--- a/test/intrinsics/gen/max/320815.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
-fn max_320815() {
-  var res: vec2<u32> = max(vec2<u32>(), vec2<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_320815();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_320815();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_320815();
-}
diff --git a/test/intrinsics/gen/max/44a39d.wgsl b/test/intrinsics/gen/max/44a39d.wgsl
deleted file mode 100644
index 9af6704..0000000
--- a/test/intrinsics/gen/max/44a39d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(f32, f32) -> f32
-fn max_44a39d() {
-  var res: f32 = max(1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_44a39d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_44a39d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_44a39d();
-}
diff --git a/test/intrinsics/gen/max/453e04.wgsl b/test/intrinsics/gen/max/453e04.wgsl
deleted file mode 100644
index b3813d9..0000000
--- a/test/intrinsics/gen/max/453e04.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
-fn max_453e04() {
-  var res: vec4<u32> = max(vec4<u32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_453e04();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_453e04();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_453e04();
-}
diff --git a/test/intrinsics/gen/max/462050.wgsl b/test/intrinsics/gen/max/462050.wgsl
deleted file mode 100644
index 03523b9..0000000
--- a/test/intrinsics/gen/max/462050.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn max_462050() {
-  var res: vec2<f32> = max(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_462050();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_462050();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_462050();
-}
diff --git a/test/intrinsics/gen/max/4883ac.wgsl b/test/intrinsics/gen/max/4883ac.wgsl
deleted file mode 100644
index a0244ea..0000000
--- a/test/intrinsics/gen/max/4883ac.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn max_4883ac() {
-  var res: vec3<f32> = max(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_4883ac();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_4883ac();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_4883ac();
-}
diff --git a/test/intrinsics/gen/max/85e6bc.wgsl b/test/intrinsics/gen/max/85e6bc.wgsl
deleted file mode 100644
index 5e8f666..0000000
--- a/test/intrinsics/gen/max/85e6bc.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
-fn max_85e6bc() {
-  var res: vec4<i32> = max(vec4<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_85e6bc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_85e6bc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_85e6bc();
-}
diff --git a/test/intrinsics/gen/max/a93419.wgsl b/test/intrinsics/gen/max/a93419.wgsl
deleted file mode 100644
index 4dc296a..0000000
--- a/test/intrinsics/gen/max/a93419.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn max_a93419() {
-  var res: vec4<f32> = max(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_a93419();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_a93419();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_a93419();
-}
diff --git a/test/intrinsics/gen/max/b1b73a.wgsl b/test/intrinsics/gen/max/b1b73a.wgsl
deleted file mode 100644
index 17a9808..0000000
--- a/test/intrinsics/gen/max/b1b73a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
-fn max_b1b73a() {
-  var res: vec3<u32> = max(vec3<u32>(), vec3<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_b1b73a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_b1b73a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_b1b73a();
-}
diff --git a/test/intrinsics/gen/max/ce7c30.wgsl b/test/intrinsics/gen/max/ce7c30.wgsl
deleted file mode 100644
index 167bd6c..0000000
--- a/test/intrinsics/gen/max/ce7c30.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(i32, i32) -> i32
-fn max_ce7c30() {
-  var res: i32 = max(1, 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_ce7c30();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_ce7c30();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_ce7c30();
-}
diff --git a/test/intrinsics/gen/max/e8192f.wgsl b/test/intrinsics/gen/max/e8192f.wgsl
deleted file mode 100644
index 3691990..0000000
--- a/test/intrinsics/gen/max/e8192f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn max(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
-fn max_e8192f() {
-  var res: vec2<i32> = max(vec2<i32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  max_e8192f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  max_e8192f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  max_e8192f();
-}
diff --git a/test/intrinsics/gen/min/03c7e3.wgsl b/test/intrinsics/gen/min/03c7e3.wgsl
deleted file mode 100644
index ed5cb3d..0000000
--- a/test/intrinsics/gen/min/03c7e3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
-fn min_03c7e3() {
-  var res: vec2<i32> = min(vec2<i32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_03c7e3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_03c7e3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_03c7e3();
-}
diff --git a/test/intrinsics/gen/min/0dc614.wgsl b/test/intrinsics/gen/min/0dc614.wgsl
deleted file mode 100644
index 976011e..0000000
--- a/test/intrinsics/gen/min/0dc614.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
-fn min_0dc614() {
-  var res: vec4<u32> = min(vec4<u32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_0dc614();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_0dc614();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_0dc614();
-}
diff --git a/test/intrinsics/gen/min/3941e1.wgsl b/test/intrinsics/gen/min/3941e1.wgsl
deleted file mode 100644
index b45498f..0000000
--- a/test/intrinsics/gen/min/3941e1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
-fn min_3941e1() {
-  var res: vec4<i32> = min(vec4<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_3941e1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_3941e1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_3941e1();
-}
diff --git a/test/intrinsics/gen/min/46c5d3.wgsl b/test/intrinsics/gen/min/46c5d3.wgsl
deleted file mode 100644
index b3d8710..0000000
--- a/test/intrinsics/gen/min/46c5d3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(u32, u32) -> u32
-fn min_46c5d3() {
-  var res: u32 = min(1u, 1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_46c5d3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_46c5d3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_46c5d3();
-}
diff --git a/test/intrinsics/gen/min/82b28f.wgsl b/test/intrinsics/gen/min/82b28f.wgsl
deleted file mode 100644
index 01dfafd..0000000
--- a/test/intrinsics/gen/min/82b28f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
-fn min_82b28f() {
-  var res: vec2<u32> = min(vec2<u32>(), vec2<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_82b28f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_82b28f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_82b28f();
-}
diff --git a/test/intrinsics/gen/min/93cfc4.wgsl b/test/intrinsics/gen/min/93cfc4.wgsl
deleted file mode 100644
index 91bc5af..0000000
--- a/test/intrinsics/gen/min/93cfc4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn min_93cfc4() {
-  var res: vec3<f32> = min(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_93cfc4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_93cfc4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_93cfc4();
-}
diff --git a/test/intrinsics/gen/min/a45171.wgsl b/test/intrinsics/gen/min/a45171.wgsl
deleted file mode 100644
index 01b49b4..0000000
--- a/test/intrinsics/gen/min/a45171.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
-fn min_a45171() {
-  var res: vec3<i32> = min(vec3<i32>(), vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_a45171();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_a45171();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_a45171();
-}
diff --git a/test/intrinsics/gen/min/aa28ad.wgsl b/test/intrinsics/gen/min/aa28ad.wgsl
deleted file mode 100644
index cd9775f..0000000
--- a/test/intrinsics/gen/min/aa28ad.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn min_aa28ad() {
-  var res: vec2<f32> = min(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_aa28ad();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_aa28ad();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_aa28ad();
-}
diff --git a/test/intrinsics/gen/min/af326d.wgsl b/test/intrinsics/gen/min/af326d.wgsl
deleted file mode 100644
index 0a1cde9d..0000000
--- a/test/intrinsics/gen/min/af326d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(f32, f32) -> f32
-fn min_af326d() {
-  var res: f32 = min(1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_af326d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_af326d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_af326d();
-}
diff --git a/test/intrinsics/gen/min/c70bb7.wgsl b/test/intrinsics/gen/min/c70bb7.wgsl
deleted file mode 100644
index 20d33ea..0000000
--- a/test/intrinsics/gen/min/c70bb7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
-fn min_c70bb7() {
-  var res: vec3<u32> = min(vec3<u32>(), vec3<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_c70bb7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_c70bb7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_c70bb7();
-}
diff --git a/test/intrinsics/gen/min/c73147.wgsl b/test/intrinsics/gen/min/c73147.wgsl
deleted file mode 100644
index 25b6ce2..0000000
--- a/test/intrinsics/gen/min/c73147.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(i32, i32) -> i32
-fn min_c73147() {
-  var res: i32 = min(1, 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_c73147();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_c73147();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_c73147();
-}
diff --git a/test/intrinsics/gen/min/c76fa6.wgsl b/test/intrinsics/gen/min/c76fa6.wgsl
deleted file mode 100644
index 367f8f5..0000000
--- a/test/intrinsics/gen/min/c76fa6.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn min(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn min_c76fa6() {
-  var res: vec4<f32> = min(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  min_c76fa6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  min_c76fa6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  min_c76fa6();
-}
diff --git a/test/intrinsics/gen/mix/0c8c33.wgsl b/test/intrinsics/gen/mix/0c8c33.wgsl
deleted file mode 100644
index c2ba55d..0000000
--- a/test/intrinsics/gen/mix/0c8c33.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn mix(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn mix_0c8c33() {
-  var res: vec3<f32> = mix(vec3<f32>(), vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  mix_0c8c33();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  mix_0c8c33();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  mix_0c8c33();
-}
diff --git a/test/intrinsics/gen/mix/1faeb1.wgsl b/test/intrinsics/gen/mix/1faeb1.wgsl
deleted file mode 100644
index 948163b..0000000
--- a/test/intrinsics/gen/mix/1faeb1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn mix(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
-fn mix_1faeb1() {
-  var res: vec4<f32> = mix(vec4<f32>(), vec4<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  mix_1faeb1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  mix_1faeb1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  mix_1faeb1();
-}
diff --git a/test/intrinsics/gen/mix/2fadab.wgsl b/test/intrinsics/gen/mix/2fadab.wgsl
deleted file mode 100644
index 94551f9..0000000
--- a/test/intrinsics/gen/mix/2fadab.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn mix(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
-fn mix_2fadab() {
-  var res: vec2<f32> = mix(vec2<f32>(), vec2<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  mix_2fadab();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  mix_2fadab();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  mix_2fadab();
-}
diff --git a/test/intrinsics/gen/mix/315264.wgsl b/test/intrinsics/gen/mix/315264.wgsl
deleted file mode 100644
index 3c8a050..0000000
--- a/test/intrinsics/gen/mix/315264.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn mix(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
-fn mix_315264() {
-  var res: vec3<f32> = mix(vec3<f32>(), vec3<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  mix_315264();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  mix_315264();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  mix_315264();
-}
diff --git a/test/intrinsics/gen/mix/4f0b5e.wgsl b/test/intrinsics/gen/mix/4f0b5e.wgsl
deleted file mode 100644
index 327cd1f..0000000
--- a/test/intrinsics/gen/mix/4f0b5e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn mix(f32, f32, f32) -> f32
-fn mix_4f0b5e() {
-  var res: f32 = mix(1.0, 1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  mix_4f0b5e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  mix_4f0b5e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  mix_4f0b5e();
-}
diff --git a/test/intrinsics/gen/mix/6f8adc.wgsl b/test/intrinsics/gen/mix/6f8adc.wgsl
deleted file mode 100644
index ed6872f..0000000
--- a/test/intrinsics/gen/mix/6f8adc.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn mix(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn mix_6f8adc() {
-  var res: vec2<f32> = mix(vec2<f32>(), vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  mix_6f8adc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  mix_6f8adc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  mix_6f8adc();
-}
diff --git a/test/intrinsics/gen/mix/c37ede.wgsl b/test/intrinsics/gen/mix/c37ede.wgsl
deleted file mode 100644
index 59185cf..0000000
--- a/test/intrinsics/gen/mix/c37ede.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn mix(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn mix_c37ede() {
-  var res: vec4<f32> = mix(vec4<f32>(), vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  mix_c37ede();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  mix_c37ede();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  mix_c37ede();
-}
diff --git a/test/intrinsics/gen/modf/180fed.wgsl b/test/intrinsics/gen/modf/180fed.wgsl
deleted file mode 100644
index c9ad660..0000000
--- a/test/intrinsics/gen/modf/180fed.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn modf(f32) -> __modf_result
-fn modf_180fed() {
-  var res = modf(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  modf_180fed();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  modf_180fed();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  modf_180fed();
-}
diff --git a/test/intrinsics/gen/modf/9b75f7.wgsl b/test/intrinsics/gen/modf/9b75f7.wgsl
deleted file mode 100644
index 982a75c..0000000
--- a/test/intrinsics/gen/modf/9b75f7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn modf(vec<3, f32>) -> __modf_result_vec<3>
-fn modf_9b75f7() {
-  var res = modf(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  modf_9b75f7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  modf_9b75f7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  modf_9b75f7();
-}
diff --git a/test/intrinsics/gen/modf/ec2dbc.wgsl b/test/intrinsics/gen/modf/ec2dbc.wgsl
deleted file mode 100644
index 8de77ad..0000000
--- a/test/intrinsics/gen/modf/ec2dbc.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn modf(vec<4, f32>) -> __modf_result_vec<4>
-fn modf_ec2dbc() {
-  var res = modf(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  modf_ec2dbc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  modf_ec2dbc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  modf_ec2dbc();
-}
diff --git a/test/intrinsics/gen/modf/f5f20d.wgsl b/test/intrinsics/gen/modf/f5f20d.wgsl
deleted file mode 100644
index 0a0dcf5..0000000
--- a/test/intrinsics/gen/modf/f5f20d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn modf(vec<2, f32>) -> __modf_result_vec<2>
-fn modf_f5f20d() {
-  var res = modf(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  modf_f5f20d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  modf_f5f20d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  modf_f5f20d();
-}
diff --git a/test/intrinsics/gen/normalize/64d8c0.wgsl b/test/intrinsics/gen/normalize/64d8c0.wgsl
deleted file mode 100644
index 2109b61..0000000
--- a/test/intrinsics/gen/normalize/64d8c0.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn normalize(vec<3, f32>) -> vec<3, f32>
-fn normalize_64d8c0() {
-  var res: vec3<f32> = normalize(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  normalize_64d8c0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  normalize_64d8c0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  normalize_64d8c0();
-}
diff --git a/test/intrinsics/gen/normalize/9a0aab.wgsl b/test/intrinsics/gen/normalize/9a0aab.wgsl
deleted file mode 100644
index 12bf4ac..0000000
--- a/test/intrinsics/gen/normalize/9a0aab.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn normalize(vec<4, f32>) -> vec<4, f32>
-fn normalize_9a0aab() {
-  var res: vec4<f32> = normalize(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  normalize_9a0aab();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  normalize_9a0aab();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  normalize_9a0aab();
-}
diff --git a/test/intrinsics/gen/normalize/fc2ef1.wgsl b/test/intrinsics/gen/normalize/fc2ef1.wgsl
deleted file mode 100644
index 0c11b89..0000000
--- a/test/intrinsics/gen/normalize/fc2ef1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn normalize(vec<2, f32>) -> vec<2, f32>
-fn normalize_fc2ef1() {
-  var res: vec2<f32> = normalize(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  normalize_fc2ef1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  normalize_fc2ef1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  normalize_fc2ef1();
-}
diff --git a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl b/test/intrinsics/gen/pack2x16float/0e97b3.wgsl
deleted file mode 100644
index ae2610c..0000000
--- a/test/intrinsics/gen/pack2x16float/0e97b3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pack2x16float(vec2<f32>) -> u32
-fn pack2x16float_0e97b3() {
-  var res: u32 = pack2x16float(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pack2x16float_0e97b3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pack2x16float_0e97b3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pack2x16float_0e97b3();
-}
diff --git a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl b/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl
deleted file mode 100644
index 7d0aeb3..0000000
--- a/test/intrinsics/gen/pack2x16snorm/6c169b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pack2x16snorm(vec2<f32>) -> u32
-fn pack2x16snorm_6c169b() {
-  var res: u32 = pack2x16snorm(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pack2x16snorm_6c169b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pack2x16snorm_6c169b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pack2x16snorm_6c169b();
-}
diff --git a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl b/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl
deleted file mode 100644
index 022aaa6..0000000
--- a/test/intrinsics/gen/pack2x16unorm/0f08e4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pack2x16unorm(vec2<f32>) -> u32
-fn pack2x16unorm_0f08e4() {
-  var res: u32 = pack2x16unorm(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pack2x16unorm_0f08e4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pack2x16unorm_0f08e4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pack2x16unorm_0f08e4();
-}
diff --git a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl b/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl
deleted file mode 100644
index 6495f5e..0000000
--- a/test/intrinsics/gen/pack4x8snorm/4d22e7.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pack4x8snorm(vec4<f32>) -> u32
-fn pack4x8snorm_4d22e7() {
-  var res: u32 = pack4x8snorm(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pack4x8snorm_4d22e7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pack4x8snorm_4d22e7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pack4x8snorm_4d22e7();
-}
diff --git a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl b/test/intrinsics/gen/pack4x8unorm/95c456.wgsl
deleted file mode 100644
index d76e075..0000000
--- a/test/intrinsics/gen/pack4x8unorm/95c456.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pack4x8unorm(vec4<f32>) -> u32
-fn pack4x8unorm_95c456() {
-  var res: u32 = pack4x8unorm(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pack4x8unorm_95c456();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pack4x8unorm_95c456();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pack4x8unorm_95c456();
-}
diff --git a/test/intrinsics/gen/pow/04a908.wgsl b/test/intrinsics/gen/pow/04a908.wgsl
deleted file mode 100644
index cc17d35..0000000
--- a/test/intrinsics/gen/pow/04a908.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pow(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn pow_04a908() {
-  var res: vec4<f32> = pow(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pow_04a908();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pow_04a908();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pow_04a908();
-}
diff --git a/test/intrinsics/gen/pow/46e029.wgsl b/test/intrinsics/gen/pow/46e029.wgsl
deleted file mode 100644
index 7366f03..0000000
--- a/test/intrinsics/gen/pow/46e029.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pow(f32, f32) -> f32
-fn pow_46e029() {
-  var res: f32 = pow(1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pow_46e029();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pow_46e029();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pow_46e029();
-}
diff --git a/test/intrinsics/gen/pow/4a46c9.wgsl b/test/intrinsics/gen/pow/4a46c9.wgsl
deleted file mode 100644
index c6e5af0..0000000
--- a/test/intrinsics/gen/pow/4a46c9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pow(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn pow_4a46c9() {
-  var res: vec3<f32> = pow(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pow_4a46c9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pow_4a46c9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pow_4a46c9();
-}
diff --git a/test/intrinsics/gen/pow/e60ea5.wgsl b/test/intrinsics/gen/pow/e60ea5.wgsl
deleted file mode 100644
index e2080cb..0000000
--- a/test/intrinsics/gen/pow/e60ea5.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn pow(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn pow_e60ea5() {
-  var res: vec2<f32> = pow(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  pow_e60ea5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  pow_e60ea5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  pow_e60ea5();
-}
diff --git a/test/intrinsics/gen/radians/09b7fc.wgsl b/test/intrinsics/gen/radians/09b7fc.wgsl
deleted file mode 100644
index e397d3a..0000000
--- a/test/intrinsics/gen/radians/09b7fc.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn radians(vec<4, f32>) -> vec<4, f32>
-fn radians_09b7fc() {
-  var res: vec4<f32> = radians(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  radians_09b7fc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  radians_09b7fc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  radians_09b7fc();
-}
diff --git a/test/intrinsics/gen/radians/61687a.wgsl b/test/intrinsics/gen/radians/61687a.wgsl
deleted file mode 100644
index 9ff8560..0000000
--- a/test/intrinsics/gen/radians/61687a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn radians(vec<2, f32>) -> vec<2, f32>
-fn radians_61687a() {
-  var res: vec2<f32> = radians(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  radians_61687a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  radians_61687a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  radians_61687a();
-}
diff --git a/test/intrinsics/gen/radians/6b0ff2.wgsl b/test/intrinsics/gen/radians/6b0ff2.wgsl
deleted file mode 100644
index 8ceaeb2..0000000
--- a/test/intrinsics/gen/radians/6b0ff2.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn radians(f32) -> f32
-fn radians_6b0ff2() {
-  var res: f32 = radians(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  radians_6b0ff2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  radians_6b0ff2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  radians_6b0ff2();
-}
diff --git a/test/intrinsics/gen/radians/f96258.wgsl b/test/intrinsics/gen/radians/f96258.wgsl
deleted file mode 100644
index bca54a5..0000000
--- a/test/intrinsics/gen/radians/f96258.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn radians(vec<3, f32>) -> vec<3, f32>
-fn radians_f96258() {
-  var res: vec3<f32> = radians(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  radians_f96258();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  radians_f96258();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  radians_f96258();
-}
diff --git a/test/intrinsics/gen/reflect/05357e.wgsl b/test/intrinsics/gen/reflect/05357e.wgsl
deleted file mode 100644
index 97aaac7..0000000
--- a/test/intrinsics/gen/reflect/05357e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reflect(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn reflect_05357e() {
-  var res: vec4<f32> = reflect(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reflect_05357e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reflect_05357e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reflect_05357e();
-}
diff --git a/test/intrinsics/gen/reflect/b61e10.wgsl b/test/intrinsics/gen/reflect/b61e10.wgsl
deleted file mode 100644
index 124022b..0000000
--- a/test/intrinsics/gen/reflect/b61e10.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reflect(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn reflect_b61e10() {
-  var res: vec2<f32> = reflect(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reflect_b61e10();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reflect_b61e10();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reflect_b61e10();
-}
diff --git a/test/intrinsics/gen/reflect/f47fdb.wgsl b/test/intrinsics/gen/reflect/f47fdb.wgsl
deleted file mode 100644
index 3048fe0..0000000
--- a/test/intrinsics/gen/reflect/f47fdb.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reflect(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn reflect_f47fdb() {
-  var res: vec3<f32> = reflect(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reflect_f47fdb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reflect_f47fdb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reflect_f47fdb();
-}
diff --git a/test/intrinsics/gen/refract/7e02e6.wgsl b/test/intrinsics/gen/refract/7e02e6.wgsl
deleted file mode 100644
index ff46411..0000000
--- a/test/intrinsics/gen/refract/7e02e6.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn refract(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
-fn refract_7e02e6() {
-  var res: vec4<f32> = refract(vec4<f32>(), vec4<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  refract_7e02e6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  refract_7e02e6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  refract_7e02e6();
-}
diff --git a/test/intrinsics/gen/refract/cbc1d2.wgsl b/test/intrinsics/gen/refract/cbc1d2.wgsl
deleted file mode 100644
index 40c0531..0000000
--- a/test/intrinsics/gen/refract/cbc1d2.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn refract(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
-fn refract_cbc1d2() {
-  var res: vec3<f32> = refract(vec3<f32>(), vec3<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  refract_cbc1d2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  refract_cbc1d2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  refract_cbc1d2();
-}
diff --git a/test/intrinsics/gen/refract/cd905f.wgsl b/test/intrinsics/gen/refract/cd905f.wgsl
deleted file mode 100644
index 9c9e3fd..0000000
--- a/test/intrinsics/gen/refract/cd905f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn refract(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
-fn refract_cd905f() {
-  var res: vec2<f32> = refract(vec2<f32>(), vec2<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  refract_cd905f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  refract_cd905f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  refract_cd905f();
-}
diff --git a/test/intrinsics/gen/reverseBits/222177.wgsl b/test/intrinsics/gen/reverseBits/222177.wgsl
deleted file mode 100644
index bdbba4a..0000000
--- a/test/intrinsics/gen/reverseBits/222177.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(vec<2, i32>) -> vec<2, i32>
-fn reverseBits_222177() {
-  var res: vec2<i32> = reverseBits(vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_222177();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_222177();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_222177();
-}
diff --git a/test/intrinsics/gen/reverseBits/35fea9.wgsl b/test/intrinsics/gen/reverseBits/35fea9.wgsl
deleted file mode 100644
index 319f6d2..0000000
--- a/test/intrinsics/gen/reverseBits/35fea9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(vec<4, u32>) -> vec<4, u32>
-fn reverseBits_35fea9() {
-  var res: vec4<u32> = reverseBits(vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_35fea9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_35fea9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_35fea9();
-}
diff --git a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl b/test/intrinsics/gen/reverseBits/4dbd6f.wgsl
deleted file mode 100644
index 09ab61f..0000000
--- a/test/intrinsics/gen/reverseBits/4dbd6f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(vec<4, i32>) -> vec<4, i32>
-fn reverseBits_4dbd6f() {
-  var res: vec4<i32> = reverseBits(vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_4dbd6f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_4dbd6f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_4dbd6f();
-}
diff --git a/test/intrinsics/gen/reverseBits/7c4269.wgsl b/test/intrinsics/gen/reverseBits/7c4269.wgsl
deleted file mode 100644
index 6be3409..0000000
--- a/test/intrinsics/gen/reverseBits/7c4269.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(i32) -> i32
-fn reverseBits_7c4269() {
-  var res: i32 = reverseBits(1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_7c4269();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_7c4269();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_7c4269();
-}
diff --git a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl b/test/intrinsics/gen/reverseBits/a6ccd4.wgsl
deleted file mode 100644
index 3559904..0000000
--- a/test/intrinsics/gen/reverseBits/a6ccd4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(vec<3, u32>) -> vec<3, u32>
-fn reverseBits_a6ccd4() {
-  var res: vec3<u32> = reverseBits(vec3<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_a6ccd4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_a6ccd4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_a6ccd4();
-}
diff --git a/test/intrinsics/gen/reverseBits/c21bc1.wgsl b/test/intrinsics/gen/reverseBits/c21bc1.wgsl
deleted file mode 100644
index 985e64a..0000000
--- a/test/intrinsics/gen/reverseBits/c21bc1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(vec<3, i32>) -> vec<3, i32>
-fn reverseBits_c21bc1() {
-  var res: vec3<i32> = reverseBits(vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_c21bc1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_c21bc1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_c21bc1();
-}
diff --git a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl b/test/intrinsics/gen/reverseBits/e1f4c1.wgsl
deleted file mode 100644
index d186157..0000000
--- a/test/intrinsics/gen/reverseBits/e1f4c1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(vec<2, u32>) -> vec<2, u32>
-fn reverseBits_e1f4c1() {
-  var res: vec2<u32> = reverseBits(vec2<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_e1f4c1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_e1f4c1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_e1f4c1();
-}
diff --git a/test/intrinsics/gen/reverseBits/e31adf.wgsl b/test/intrinsics/gen/reverseBits/e31adf.wgsl
deleted file mode 100644
index c32c738..0000000
--- a/test/intrinsics/gen/reverseBits/e31adf.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn reverseBits(u32) -> u32
-fn reverseBits_e31adf() {
-  var res: u32 = reverseBits(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  reverseBits_e31adf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  reverseBits_e31adf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  reverseBits_e31adf();
-}
diff --git a/test/intrinsics/gen/round/106c0b.wgsl b/test/intrinsics/gen/round/106c0b.wgsl
deleted file mode 100644
index 52ebd56..0000000
--- a/test/intrinsics/gen/round/106c0b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn round(vec<4, f32>) -> vec<4, f32>
-fn round_106c0b() {
-  var res: vec4<f32> = round(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  round_106c0b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  round_106c0b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  round_106c0b();
-}
diff --git a/test/intrinsics/gen/round/1c7897.wgsl b/test/intrinsics/gen/round/1c7897.wgsl
deleted file mode 100644
index c0f13ae..0000000
--- a/test/intrinsics/gen/round/1c7897.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn round(vec<3, f32>) -> vec<3, f32>
-fn round_1c7897() {
-  var res: vec3<f32> = round(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  round_1c7897();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  round_1c7897();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  round_1c7897();
-}
diff --git a/test/intrinsics/gen/round/52c84d.wgsl b/test/intrinsics/gen/round/52c84d.wgsl
deleted file mode 100644
index 385bb5e..0000000
--- a/test/intrinsics/gen/round/52c84d.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn round(vec<2, f32>) -> vec<2, f32>
-fn round_52c84d() {
-  var res: vec2<f32> = round(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  round_52c84d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  round_52c84d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  round_52c84d();
-}
diff --git a/test/intrinsics/gen/round/9edc38.wgsl b/test/intrinsics/gen/round/9edc38.wgsl
deleted file mode 100644
index e4fd176..0000000
--- a/test/intrinsics/gen/round/9edc38.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn round(f32) -> f32
-fn round_9edc38() {
-  var res: f32 = round(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  round_9edc38();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  round_9edc38();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  round_9edc38();
-}
diff --git a/test/intrinsics/gen/select/00b848.wgsl b/test/intrinsics/gen/select/00b848.wgsl
deleted file mode 100644
index a1f4834..0000000
--- a/test/intrinsics/gen/select/00b848.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, i32>, vec<2, i32>, vec<2, bool>) -> vec<2, i32>
-fn select_00b848() {
-  var res: vec2<i32> = select(vec2<i32>(), vec2<i32>(), vec2<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_00b848();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_00b848();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_00b848();
-}
diff --git a/test/intrinsics/gen/select/01e2cd.wgsl b/test/intrinsics/gen/select/01e2cd.wgsl
deleted file mode 100644
index c8e0408..0000000
--- a/test/intrinsics/gen/select/01e2cd.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, i32>, vec<3, i32>, vec<3, bool>) -> vec<3, i32>
-fn select_01e2cd() {
-  var res: vec3<i32> = select(vec3<i32>(), vec3<i32>(), vec3<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_01e2cd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_01e2cd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_01e2cd();
-}
diff --git a/test/intrinsics/gen/select/087ea4.wgsl b/test/intrinsics/gen/select/087ea4.wgsl
deleted file mode 100644
index f8f7924..0000000
--- a/test/intrinsics/gen/select/087ea4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, u32>, vec<4, u32>, bool) -> vec<4, u32>
-fn select_087ea4() {
-  var res: vec4<u32> = select(vec4<u32>(), vec4<u32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_087ea4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_087ea4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_087ea4();
-}
diff --git a/test/intrinsics/gen/select/1e960b.wgsl b/test/intrinsics/gen/select/1e960b.wgsl
deleted file mode 100644
index 92c0df6..0000000
--- a/test/intrinsics/gen/select/1e960b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, u32>, vec<2, u32>, vec<2, bool>) -> vec<2, u32>
-fn select_1e960b() {
-  var res: vec2<u32> = select(vec2<u32>(), vec2<u32>(), vec2<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_1e960b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_1e960b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_1e960b();
-}
diff --git a/test/intrinsics/gen/select/266aff.wgsl b/test/intrinsics/gen/select/266aff.wgsl
deleted file mode 100644
index 6faee8a..0000000
--- a/test/intrinsics/gen/select/266aff.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, f32>, vec<2, f32>, vec<2, bool>) -> vec<2, f32>
-fn select_266aff() {
-  var res: vec2<f32> = select(vec2<f32>(), vec2<f32>(), vec2<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_266aff();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_266aff();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_266aff();
-}
diff --git a/test/intrinsics/gen/select/28a27e.wgsl b/test/intrinsics/gen/select/28a27e.wgsl
deleted file mode 100644
index cc515a9..0000000
--- a/test/intrinsics/gen/select/28a27e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, u32>, vec<3, u32>, vec<3, bool>) -> vec<3, u32>
-fn select_28a27e() {
-  var res: vec3<u32> = select(vec3<u32>(), vec3<u32>(), vec3<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_28a27e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_28a27e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_28a27e();
-}
diff --git a/test/intrinsics/gen/select/3c25ce.wgsl b/test/intrinsics/gen/select/3c25ce.wgsl
deleted file mode 100644
index 85d68b1..0000000
--- a/test/intrinsics/gen/select/3c25ce.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, bool>, vec<3, bool>, bool) -> vec<3, bool>
-fn select_3c25ce() {
-  var res: vec3<bool> = select(vec3<bool>(), vec3<bool>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_3c25ce();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_3c25ce();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_3c25ce();
-}
diff --git a/test/intrinsics/gen/select/416e14.wgsl b/test/intrinsics/gen/select/416e14.wgsl
deleted file mode 100644
index c69cd17..0000000
--- a/test/intrinsics/gen/select/416e14.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(f32, f32, bool) -> f32
-fn select_416e14() {
-  var res: f32 = select(1.0, 1.0, bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_416e14();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_416e14();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_416e14();
-}
diff --git a/test/intrinsics/gen/select/51b047.wgsl b/test/intrinsics/gen/select/51b047.wgsl
deleted file mode 100644
index f774d3f..0000000
--- a/test/intrinsics/gen/select/51b047.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, u32>, vec<2, u32>, bool) -> vec<2, u32>
-fn select_51b047() {
-  var res: vec2<u32> = select(vec2<u32>(), vec2<u32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_51b047();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_51b047();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_51b047();
-}
diff --git a/test/intrinsics/gen/select/713567.wgsl b/test/intrinsics/gen/select/713567.wgsl
deleted file mode 100644
index 9dad142..0000000
--- a/test/intrinsics/gen/select/713567.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, f32>, vec<4, f32>, bool) -> vec<4, f32>
-fn select_713567() {
-  var res: vec4<f32> = select(vec4<f32>(), vec4<f32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_713567();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_713567();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_713567();
-}
diff --git a/test/intrinsics/gen/select/78be5f.wgsl b/test/intrinsics/gen/select/78be5f.wgsl
deleted file mode 100644
index 363cb61..0000000
--- a/test/intrinsics/gen/select/78be5f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, f32>, vec<3, f32>, bool) -> vec<3, f32>
-fn select_78be5f() {
-  var res: vec3<f32> = select(vec3<f32>(), vec3<f32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_78be5f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_78be5f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_78be5f();
-}
diff --git a/test/intrinsics/gen/select/80a9a9.wgsl b/test/intrinsics/gen/select/80a9a9.wgsl
deleted file mode 100644
index 970d4b0..0000000
--- a/test/intrinsics/gen/select/80a9a9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, bool>, vec<3, bool>, vec<3, bool>) -> vec<3, bool>
-fn select_80a9a9() {
-  var res: vec3<bool> = select(vec3<bool>(), vec3<bool>(), vec3<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_80a9a9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_80a9a9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_80a9a9();
-}
diff --git a/test/intrinsics/gen/select/8fa62c.wgsl b/test/intrinsics/gen/select/8fa62c.wgsl
deleted file mode 100644
index 6fd149a..0000000
--- a/test/intrinsics/gen/select/8fa62c.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, i32>, vec<3, i32>, bool) -> vec<3, i32>
-fn select_8fa62c() {
-  var res: vec3<i32> = select(vec3<i32>(), vec3<i32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_8fa62c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_8fa62c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_8fa62c();
-}
diff --git a/test/intrinsics/gen/select/99f883.wgsl b/test/intrinsics/gen/select/99f883.wgsl
deleted file mode 100644
index 25c5a25..0000000
--- a/test/intrinsics/gen/select/99f883.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(u32, u32, bool) -> u32
-fn select_99f883() {
-  var res: u32 = select(1u, 1u, bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_99f883();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_99f883();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_99f883();
-}
diff --git a/test/intrinsics/gen/select/a2860e.wgsl b/test/intrinsics/gen/select/a2860e.wgsl
deleted file mode 100644
index 6b3b0b2..0000000
--- a/test/intrinsics/gen/select/a2860e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, i32>, vec<4, i32>, vec<4, bool>) -> vec<4, i32>
-fn select_a2860e() {
-  var res: vec4<i32> = select(vec4<i32>(), vec4<i32>(), vec4<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_a2860e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_a2860e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_a2860e();
-}
diff --git a/test/intrinsics/gen/select/ab069f.wgsl b/test/intrinsics/gen/select/ab069f.wgsl
deleted file mode 100644
index a55fa79..0000000
--- a/test/intrinsics/gen/select/ab069f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, i32>, vec<4, i32>, bool) -> vec<4, i32>
-fn select_ab069f() {
-  var res: vec4<i32> = select(vec4<i32>(), vec4<i32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_ab069f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_ab069f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_ab069f();
-}
diff --git a/test/intrinsics/gen/select/b04721.wgsl b/test/intrinsics/gen/select/b04721.wgsl
deleted file mode 100644
index 1de6739..0000000
--- a/test/intrinsics/gen/select/b04721.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, u32>, vec<3, u32>, bool) -> vec<3, u32>
-fn select_b04721() {
-  var res: vec3<u32> = select(vec3<u32>(), vec3<u32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_b04721();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_b04721();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_b04721();
-}
diff --git a/test/intrinsics/gen/select/bb447f.wgsl b/test/intrinsics/gen/select/bb447f.wgsl
deleted file mode 100644
index f15929a..0000000
--- a/test/intrinsics/gen/select/bb447f.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, i32>, vec<2, i32>, bool) -> vec<2, i32>
-fn select_bb447f() {
-  var res: vec2<i32> = select(vec2<i32>(), vec2<i32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_bb447f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_bb447f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_bb447f();
-}
diff --git a/test/intrinsics/gen/select/bb8aae.wgsl b/test/intrinsics/gen/select/bb8aae.wgsl
deleted file mode 100644
index 786f619..0000000
--- a/test/intrinsics/gen/select/bb8aae.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, f32>, vec<4, f32>, vec<4, bool>) -> vec<4, f32>
-fn select_bb8aae() {
-  var res: vec4<f32> = select(vec4<f32>(), vec4<f32>(), vec4<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_bb8aae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_bb8aae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_bb8aae();
-}
diff --git a/test/intrinsics/gen/select/bf3d29.wgsl b/test/intrinsics/gen/select/bf3d29.wgsl
deleted file mode 100644
index db8e855..0000000
--- a/test/intrinsics/gen/select/bf3d29.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, f32>, vec<2, f32>, bool) -> vec<2, f32>
-fn select_bf3d29() {
-  var res: vec2<f32> = select(vec2<f32>(), vec2<f32>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_bf3d29();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_bf3d29();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_bf3d29();
-}
diff --git a/test/intrinsics/gen/select/c31f9e.wgsl b/test/intrinsics/gen/select/c31f9e.wgsl
deleted file mode 100644
index 3f04796..0000000
--- a/test/intrinsics/gen/select/c31f9e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(bool, bool, bool) -> bool
-fn select_c31f9e() {
-  var res: bool = select(bool(), bool(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_c31f9e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_c31f9e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_c31f9e();
-}
diff --git a/test/intrinsics/gen/select/c41bd1.wgsl b/test/intrinsics/gen/select/c41bd1.wgsl
deleted file mode 100644
index a4a0143..0000000
--- a/test/intrinsics/gen/select/c41bd1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, bool>, vec<4, bool>, bool) -> vec<4, bool>
-fn select_c41bd1() {
-  var res: vec4<bool> = select(vec4<bool>(), vec4<bool>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_c41bd1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_c41bd1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_c41bd1();
-}
diff --git a/test/intrinsics/gen/select/c4a4ef.wgsl b/test/intrinsics/gen/select/c4a4ef.wgsl
deleted file mode 100644
index 5826ca0..0000000
--- a/test/intrinsics/gen/select/c4a4ef.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, u32>, vec<4, u32>, vec<4, bool>) -> vec<4, u32>
-fn select_c4a4ef() {
-  var res: vec4<u32> = select(vec4<u32>(), vec4<u32>(), vec4<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_c4a4ef();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_c4a4ef();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_c4a4ef();
-}
diff --git a/test/intrinsics/gen/select/cb9301.wgsl b/test/intrinsics/gen/select/cb9301.wgsl
deleted file mode 100644
index 1de0ad1..0000000
--- a/test/intrinsics/gen/select/cb9301.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, bool>, vec<2, bool>, vec<2, bool>) -> vec<2, bool>
-fn select_cb9301() {
-  var res: vec2<bool> = select(vec2<bool>(), vec2<bool>(), vec2<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_cb9301();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_cb9301();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_cb9301();
-}
diff --git a/test/intrinsics/gen/select/e3e028.wgsl b/test/intrinsics/gen/select/e3e028.wgsl
deleted file mode 100644
index 7d28666..0000000
--- a/test/intrinsics/gen/select/e3e028.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<4, bool>, vec<4, bool>, vec<4, bool>) -> vec<4, bool>
-fn select_e3e028() {
-  var res: vec4<bool> = select(vec4<bool>(), vec4<bool>(), vec4<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_e3e028();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_e3e028();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_e3e028();
-}
diff --git a/test/intrinsics/gen/select/ebfea2.wgsl b/test/intrinsics/gen/select/ebfea2.wgsl
deleted file mode 100644
index bd572c5..0000000
--- a/test/intrinsics/gen/select/ebfea2.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<3, f32>, vec<3, f32>, vec<3, bool>) -> vec<3, f32>
-fn select_ebfea2() {
-  var res: vec3<f32> = select(vec3<f32>(), vec3<f32>(), vec3<bool>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_ebfea2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_ebfea2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_ebfea2();
-}
diff --git a/test/intrinsics/gen/select/ed8a15.wgsl b/test/intrinsics/gen/select/ed8a15.wgsl
deleted file mode 100644
index df1f6ad..0000000
--- a/test/intrinsics/gen/select/ed8a15.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(i32, i32, bool) -> i32
-fn select_ed8a15() {
-  var res: i32 = select(1, 1, bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_ed8a15();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_ed8a15();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_ed8a15();
-}
diff --git a/test/intrinsics/gen/select/fb7e53.wgsl b/test/intrinsics/gen/select/fb7e53.wgsl
deleted file mode 100644
index 92d50f3..0000000
--- a/test/intrinsics/gen/select/fb7e53.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn select(vec<2, bool>, vec<2, bool>, bool) -> vec<2, bool>
-fn select_fb7e53() {
-  var res: vec2<bool> = select(vec2<bool>(), vec2<bool>(), bool());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  select_fb7e53();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  select_fb7e53();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  select_fb7e53();
-}
diff --git a/test/intrinsics/gen/sign/159665.wgsl b/test/intrinsics/gen/sign/159665.wgsl
deleted file mode 100644
index a3d87a4..0000000
--- a/test/intrinsics/gen/sign/159665.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sign(vec<3, f32>) -> vec<3, f32>
-fn sign_159665() {
-  var res: vec3<f32> = sign(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sign_159665();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sign_159665();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sign_159665();
-}
diff --git a/test/intrinsics/gen/sign/b8f634.wgsl b/test/intrinsics/gen/sign/b8f634.wgsl
deleted file mode 100644
index c8ced09..0000000
--- a/test/intrinsics/gen/sign/b8f634.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sign(vec<4, f32>) -> vec<4, f32>
-fn sign_b8f634() {
-  var res: vec4<f32> = sign(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sign_b8f634();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sign_b8f634();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sign_b8f634();
-}
diff --git a/test/intrinsics/gen/sign/d065d8.wgsl b/test/intrinsics/gen/sign/d065d8.wgsl
deleted file mode 100644
index 98d6b5e..0000000
--- a/test/intrinsics/gen/sign/d065d8.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sign(vec<2, f32>) -> vec<2, f32>
-fn sign_d065d8() {
-  var res: vec2<f32> = sign(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sign_d065d8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sign_d065d8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sign_d065d8();
-}
diff --git a/test/intrinsics/gen/sign/dd790e.wgsl b/test/intrinsics/gen/sign/dd790e.wgsl
deleted file mode 100644
index 7765ea3..0000000
--- a/test/intrinsics/gen/sign/dd790e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sign(f32) -> f32
-fn sign_dd790e() {
-  var res: f32 = sign(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sign_dd790e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sign_dd790e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sign_dd790e();
-}
diff --git a/test/intrinsics/gen/sin/01f241.wgsl b/test/intrinsics/gen/sin/01f241.wgsl
deleted file mode 100644
index 58c1794..0000000
--- a/test/intrinsics/gen/sin/01f241.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sin(vec<3, f32>) -> vec<3, f32>
-fn sin_01f241() {
-  var res: vec3<f32> = sin(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sin_01f241();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sin_01f241();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sin_01f241();
-}
diff --git a/test/intrinsics/gen/sin/4e3979.wgsl b/test/intrinsics/gen/sin/4e3979.wgsl
deleted file mode 100644
index ae447d2..0000000
--- a/test/intrinsics/gen/sin/4e3979.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sin(vec<4, f32>) -> vec<4, f32>
-fn sin_4e3979() {
-  var res: vec4<f32> = sin(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sin_4e3979();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sin_4e3979();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sin_4e3979();
-}
diff --git a/test/intrinsics/gen/sin/b78c91.wgsl b/test/intrinsics/gen/sin/b78c91.wgsl
deleted file mode 100644
index d8ecd40..0000000
--- a/test/intrinsics/gen/sin/b78c91.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sin(f32) -> f32
-fn sin_b78c91() {
-  var res: f32 = sin(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sin_b78c91();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sin_b78c91();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sin_b78c91();
-}
diff --git a/test/intrinsics/gen/sin/fc8bc4.wgsl b/test/intrinsics/gen/sin/fc8bc4.wgsl
deleted file mode 100644
index b828689..0000000
--- a/test/intrinsics/gen/sin/fc8bc4.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sin(vec<2, f32>) -> vec<2, f32>
-fn sin_fc8bc4() {
-  var res: vec2<f32> = sin(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sin_fc8bc4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sin_fc8bc4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sin_fc8bc4();
-}
diff --git a/test/intrinsics/gen/sinh/445e33.wgsl b/test/intrinsics/gen/sinh/445e33.wgsl
deleted file mode 100644
index 2bb1e20..0000000
--- a/test/intrinsics/gen/sinh/445e33.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sinh(vec<4, f32>) -> vec<4, f32>
-fn sinh_445e33() {
-  var res: vec4<f32> = sinh(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sinh_445e33();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sinh_445e33();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sinh_445e33();
-}
diff --git a/test/intrinsics/gen/sinh/7bb598.wgsl b/test/intrinsics/gen/sinh/7bb598.wgsl
deleted file mode 100644
index 872b87b..0000000
--- a/test/intrinsics/gen/sinh/7bb598.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sinh(f32) -> f32
-fn sinh_7bb598() {
-  var res: f32 = sinh(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sinh_7bb598();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sinh_7bb598();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sinh_7bb598();
-}
diff --git a/test/intrinsics/gen/sinh/b9860e.wgsl b/test/intrinsics/gen/sinh/b9860e.wgsl
deleted file mode 100644
index 3039b48..0000000
--- a/test/intrinsics/gen/sinh/b9860e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sinh(vec<2, f32>) -> vec<2, f32>
-fn sinh_b9860e() {
-  var res: vec2<f32> = sinh(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sinh_b9860e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sinh_b9860e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sinh_b9860e();
-}
diff --git a/test/intrinsics/gen/sinh/c9a5eb.wgsl b/test/intrinsics/gen/sinh/c9a5eb.wgsl
deleted file mode 100644
index 9c79e98..0000000
--- a/test/intrinsics/gen/sinh/c9a5eb.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sinh(vec<3, f32>) -> vec<3, f32>
-fn sinh_c9a5eb() {
-  var res: vec3<f32> = sinh(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sinh_c9a5eb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sinh_c9a5eb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sinh_c9a5eb();
-}
diff --git a/test/intrinsics/gen/smoothStep/5f615b.wgsl b/test/intrinsics/gen/smoothStep/5f615b.wgsl
deleted file mode 100644
index 4b1a4ab..0000000
--- a/test/intrinsics/gen/smoothStep/5f615b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn smoothStep(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn smoothStep_5f615b() {
-  var res: vec4<f32> = smoothStep(vec4<f32>(), vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  smoothStep_5f615b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  smoothStep_5f615b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  smoothStep_5f615b();
-}
diff --git a/test/intrinsics/gen/smoothStep/658be3.wgsl b/test/intrinsics/gen/smoothStep/658be3.wgsl
deleted file mode 100644
index 8e39364..0000000
--- a/test/intrinsics/gen/smoothStep/658be3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn smoothStep(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn smoothStep_658be3() {
-  var res: vec3<f32> = smoothStep(vec3<f32>(), vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  smoothStep_658be3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  smoothStep_658be3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  smoothStep_658be3();
-}
diff --git a/test/intrinsics/gen/smoothStep/c11eef.wgsl b/test/intrinsics/gen/smoothStep/c11eef.wgsl
deleted file mode 100644
index 7839f09..0000000
--- a/test/intrinsics/gen/smoothStep/c11eef.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn smoothStep(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn smoothStep_c11eef() {
-  var res: vec2<f32> = smoothStep(vec2<f32>(), vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  smoothStep_c11eef();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  smoothStep_c11eef();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  smoothStep_c11eef();
-}
diff --git a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl b/test/intrinsics/gen/smoothStep/cb0bfb.wgsl
deleted file mode 100644
index 5c6c8c2..0000000
--- a/test/intrinsics/gen/smoothStep/cb0bfb.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn smoothStep(f32, f32, f32) -> f32
-fn smoothStep_cb0bfb() {
-  var res: f32 = smoothStep(1.0, 1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  smoothStep_cb0bfb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  smoothStep_cb0bfb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  smoothStep_cb0bfb();
-}
diff --git a/test/intrinsics/gen/sqrt/20c74e.wgsl b/test/intrinsics/gen/sqrt/20c74e.wgsl
deleted file mode 100644
index b954397..0000000
--- a/test/intrinsics/gen/sqrt/20c74e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sqrt(f32) -> f32
-fn sqrt_20c74e() {
-  var res: f32 = sqrt(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sqrt_20c74e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sqrt_20c74e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sqrt_20c74e();
-}
diff --git a/test/intrinsics/gen/sqrt/8c7024.wgsl b/test/intrinsics/gen/sqrt/8c7024.wgsl
deleted file mode 100644
index 4e929d6..0000000
--- a/test/intrinsics/gen/sqrt/8c7024.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sqrt(vec<2, f32>) -> vec<2, f32>
-fn sqrt_8c7024() {
-  var res: vec2<f32> = sqrt(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sqrt_8c7024();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sqrt_8c7024();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sqrt_8c7024();
-}
diff --git a/test/intrinsics/gen/sqrt/aa0d7a.wgsl b/test/intrinsics/gen/sqrt/aa0d7a.wgsl
deleted file mode 100644
index e15b170..0000000
--- a/test/intrinsics/gen/sqrt/aa0d7a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sqrt(vec<4, f32>) -> vec<4, f32>
-fn sqrt_aa0d7a() {
-  var res: vec4<f32> = sqrt(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sqrt_aa0d7a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sqrt_aa0d7a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sqrt_aa0d7a();
-}
diff --git a/test/intrinsics/gen/sqrt/f8c59a.wgsl b/test/intrinsics/gen/sqrt/f8c59a.wgsl
deleted file mode 100644
index 5916a9f..0000000
--- a/test/intrinsics/gen/sqrt/f8c59a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn sqrt(vec<3, f32>) -> vec<3, f32>
-fn sqrt_f8c59a() {
-  var res: vec3<f32> = sqrt(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  sqrt_f8c59a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  sqrt_f8c59a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  sqrt_f8c59a();
-}
diff --git a/test/intrinsics/gen/step/0b073b.wgsl b/test/intrinsics/gen/step/0b073b.wgsl
deleted file mode 100644
index 5d88c86..0000000
--- a/test/intrinsics/gen/step/0b073b.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn step(f32, f32) -> f32
-fn step_0b073b() {
-  var res: f32 = step(1.0, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  step_0b073b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  step_0b073b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  step_0b073b();
-}
diff --git a/test/intrinsics/gen/step/19accd.wgsl b/test/intrinsics/gen/step/19accd.wgsl
deleted file mode 100644
index 9493036..0000000
--- a/test/intrinsics/gen/step/19accd.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn step(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
-fn step_19accd() {
-  var res: vec2<f32> = step(vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  step_19accd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  step_19accd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  step_19accd();
-}
diff --git a/test/intrinsics/gen/step/334303.wgsl b/test/intrinsics/gen/step/334303.wgsl
deleted file mode 100644
index 63d3ead..0000000
--- a/test/intrinsics/gen/step/334303.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn step(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
-fn step_334303() {
-  var res: vec3<f32> = step(vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  step_334303();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  step_334303();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  step_334303();
-}
diff --git a/test/intrinsics/gen/step/e2b337.wgsl b/test/intrinsics/gen/step/e2b337.wgsl
deleted file mode 100644
index e691130..0000000
--- a/test/intrinsics/gen/step/e2b337.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn step(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
-fn step_e2b337() {
-  var res: vec4<f32> = step(vec4<f32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  step_e2b337();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  step_e2b337();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  step_e2b337();
-}
diff --git a/test/intrinsics/gen/storageBarrier/d87211.wgsl b/test/intrinsics/gen/storageBarrier/d87211.wgsl
deleted file mode 100644
index 2931174..0000000
--- a/test/intrinsics/gen/storageBarrier/d87211.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn storageBarrier()
-fn storageBarrier_d87211() {
-  storageBarrier();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  storageBarrier_d87211();
-}
diff --git a/test/intrinsics/gen/tan/244e2a.wgsl b/test/intrinsics/gen/tan/244e2a.wgsl
deleted file mode 100644
index 599499f..0000000
--- a/test/intrinsics/gen/tan/244e2a.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tan(vec<4, f32>) -> vec<4, f32>
-fn tan_244e2a() {
-  var res: vec4<f32> = tan(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tan_244e2a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tan_244e2a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tan_244e2a();
-}
diff --git a/test/intrinsics/gen/tan/2f030e.wgsl b/test/intrinsics/gen/tan/2f030e.wgsl
deleted file mode 100644
index 3ee8e72..0000000
--- a/test/intrinsics/gen/tan/2f030e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tan(f32) -> f32
-fn tan_2f030e() {
-  var res: f32 = tan(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tan_2f030e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tan_2f030e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tan_2f030e();
-}
diff --git a/test/intrinsics/gen/tan/7ea104.wgsl b/test/intrinsics/gen/tan/7ea104.wgsl
deleted file mode 100644
index 6250daa..0000000
--- a/test/intrinsics/gen/tan/7ea104.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tan(vec<3, f32>) -> vec<3, f32>
-fn tan_7ea104() {
-  var res: vec3<f32> = tan(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tan_7ea104();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tan_7ea104();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tan_7ea104();
-}
diff --git a/test/intrinsics/gen/tan/8ce3e9.wgsl b/test/intrinsics/gen/tan/8ce3e9.wgsl
deleted file mode 100644
index 85765f1..0000000
--- a/test/intrinsics/gen/tan/8ce3e9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tan(vec<2, f32>) -> vec<2, f32>
-fn tan_8ce3e9() {
-  var res: vec2<f32> = tan(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tan_8ce3e9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tan_8ce3e9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tan_8ce3e9();
-}
diff --git a/test/intrinsics/gen/tanh/5663c5.wgsl b/test/intrinsics/gen/tanh/5663c5.wgsl
deleted file mode 100644
index 96b2fdb..0000000
--- a/test/intrinsics/gen/tanh/5663c5.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tanh(vec<4, f32>) -> vec<4, f32>
-fn tanh_5663c5() {
-  var res: vec4<f32> = tanh(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tanh_5663c5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tanh_5663c5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tanh_5663c5();
-}
diff --git a/test/intrinsics/gen/tanh/5724b3.wgsl b/test/intrinsics/gen/tanh/5724b3.wgsl
deleted file mode 100644
index c0f35098..0000000
--- a/test/intrinsics/gen/tanh/5724b3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tanh(vec<2, f32>) -> vec<2, f32>
-fn tanh_5724b3() {
-  var res: vec2<f32> = tanh(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tanh_5724b3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tanh_5724b3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tanh_5724b3();
-}
diff --git a/test/intrinsics/gen/tanh/9f9fb9.wgsl b/test/intrinsics/gen/tanh/9f9fb9.wgsl
deleted file mode 100644
index e83ed57..0000000
--- a/test/intrinsics/gen/tanh/9f9fb9.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tanh(vec<3, f32>) -> vec<3, f32>
-fn tanh_9f9fb9() {
-  var res: vec3<f32> = tanh(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tanh_9f9fb9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tanh_9f9fb9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tanh_9f9fb9();
-}
diff --git a/test/intrinsics/gen/tanh/c15fdb.wgsl b/test/intrinsics/gen/tanh/c15fdb.wgsl
deleted file mode 100644
index 20c69fd..0000000
--- a/test/intrinsics/gen/tanh/c15fdb.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn tanh(f32) -> f32
-fn tanh_c15fdb() {
-  var res: f32 = tanh(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  tanh_c15fdb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  tanh_c15fdb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  tanh_c15fdb();
-}
diff --git a/test/intrinsics/gen/textureDimensions/002b2a.wgsl b/test/intrinsics/gen/textureDimensions/002b2a.wgsl
deleted file mode 100644
index 96f16b2..0000000
--- a/test/intrinsics/gen/textureDimensions/002b2a.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<f32>;
-
-// fn textureDimensions(texture: texture_1d<f32>) -> i32
-fn textureDimensions_002b2a() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_002b2a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_002b2a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_002b2a();
-}
diff --git a/test/intrinsics/gen/textureDimensions/012b82.wgsl b/test/intrinsics/gen/textureDimensions/012b82.wgsl
deleted file mode 100644
index b1697be..0000000
--- a/test/intrinsics/gen/textureDimensions/012b82.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<r32sint, write>) -> vec2<i32>
-fn textureDimensions_012b82() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_012b82();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_012b82();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_012b82();
-}
diff --git a/test/intrinsics/gen/textureDimensions/08753d.wgsl b/test/intrinsics/gen/textureDimensions/08753d.wgsl
deleted file mode 100644
index 05fcbdd..0000000
--- a/test/intrinsics/gen/textureDimensions/08753d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba16sint, write>) -> i32
-fn textureDimensions_08753d() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_08753d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_08753d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_08753d();
-}
diff --git a/test/intrinsics/gen/textureDimensions/0c4772.wgsl b/test/intrinsics/gen/textureDimensions/0c4772.wgsl
deleted file mode 100644
index daad042..0000000
--- a/test/intrinsics/gen/textureDimensions/0c4772.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba16float, write>) -> vec3<i32>
-fn textureDimensions_0c4772() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_0c4772();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_0c4772();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_0c4772();
-}
diff --git a/test/intrinsics/gen/textureDimensions/0cce40.wgsl b/test/intrinsics/gen/textureDimensions/0cce40.wgsl
deleted file mode 100644
index a9ae133..0000000
--- a/test/intrinsics/gen/textureDimensions/0cce40.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<r32sint, write>) -> i32
-fn textureDimensions_0cce40() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_0cce40();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_0cce40();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_0cce40();
-}
diff --git a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl b/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl
deleted file mode 100644
index 1fef317..0000000
--- a/test/intrinsics/gen/textureDimensions/0cf2ff.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba16uint, write>) -> vec2<i32>
-fn textureDimensions_0cf2ff() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_0cf2ff();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_0cf2ff();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_0cf2ff();
-}
diff --git a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl b/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl
deleted file mode 100644
index 255f1ee..0000000
--- a/test/intrinsics/gen/textureDimensions/0d8b7e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<r32uint, write>) -> vec2<i32>
-fn textureDimensions_0d8b7e() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_0d8b7e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_0d8b7e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_0d8b7e();
-}
diff --git a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl b/test/intrinsics/gen/textureDimensions/0e32ee.wgsl
deleted file mode 100644
index be5b433..0000000
--- a/test/intrinsics/gen/textureDimensions/0e32ee.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba16uint, write>) -> vec3<i32>
-fn textureDimensions_0e32ee() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_0e32ee();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_0e32ee();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_0e32ee();
-}
diff --git a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl b/test/intrinsics/gen/textureDimensions/0f3c50.wgsl
deleted file mode 100644
index 2cc8fec..0000000
--- a/test/intrinsics/gen/textureDimensions/0f3c50.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
-
-// fn textureDimensions(texture: texture_2d_array<i32>) -> vec2<i32>
-fn textureDimensions_0f3c50() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_0f3c50();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_0f3c50();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_0f3c50();
-}
diff --git a/test/intrinsics/gen/textureDimensions/1191a5.wgsl b/test/intrinsics/gen/textureDimensions/1191a5.wgsl
deleted file mode 100644
index 6b0382b..0000000
--- a/test/intrinsics/gen/textureDimensions/1191a5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<u32>;
-
-// fn textureDimensions(texture: texture_2d<u32>) -> vec2<i32>
-fn textureDimensions_1191a5() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_1191a5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_1191a5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_1191a5();
-}
diff --git a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl b/test/intrinsics/gen/textureDimensions/12c9bb.wgsl
deleted file mode 100644
index b2fa3ef..0000000
--- a/test/intrinsics/gen/textureDimensions/12c9bb.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-
-// fn textureDimensions(texture: texture_depth_2d, level: i32) -> vec2<i32>
-fn textureDimensions_12c9bb() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_12c9bb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_12c9bb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_12c9bb();
-}
diff --git a/test/intrinsics/gen/textureDimensions/147998.wgsl b/test/intrinsics/gen/textureDimensions/147998.wgsl
deleted file mode 100644
index 41ebd81..0000000
--- a/test/intrinsics/gen/textureDimensions/147998.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rg32float, write>) -> vec2<i32>
-fn textureDimensions_147998() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_147998();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_147998();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_147998();
-}
diff --git a/test/intrinsics/gen/textureDimensions/16036c.wgsl b/test/intrinsics/gen/textureDimensions/16036c.wgsl
deleted file mode 100644
index c231cc4..0000000
--- a/test/intrinsics/gen/textureDimensions/16036c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, write>) -> vec2<i32>
-fn textureDimensions_16036c() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_16036c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_16036c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_16036c();
-}
diff --git a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl b/test/intrinsics/gen/textureDimensions/1b71f0.wgsl
deleted file mode 100644
index 558f3e3..0000000
--- a/test/intrinsics/gen/textureDimensions/1b71f0.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba16sint, write>) -> vec3<i32>
-fn textureDimensions_1b71f0() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_1b71f0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_1b71f0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_1b71f0();
-}
diff --git a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl b/test/intrinsics/gen/textureDimensions/1d6c26.wgsl
deleted file mode 100644
index d2d2980..0000000
--- a/test/intrinsics/gen/textureDimensions/1d6c26.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, write>) -> vec2<i32>
-fn textureDimensions_1d6c26() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_1d6c26();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_1d6c26();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_1d6c26();
-}
diff --git a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl b/test/intrinsics/gen/textureDimensions/1e9e39.wgsl
deleted file mode 100644
index a30fbe0..0000000
--- a/test/intrinsics/gen/textureDimensions/1e9e39.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba16float, write>) -> i32
-fn textureDimensions_1e9e39() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_1e9e39();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_1e9e39();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_1e9e39();
-}
diff --git a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl b/test/intrinsics/gen/textureDimensions/1f20c5.wgsl
deleted file mode 100644
index 0e49717..0000000
--- a/test/intrinsics/gen/textureDimensions/1f20c5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
-
-// fn textureDimensions(texture: texture_2d_array<u32>) -> vec2<i32>
-fn textureDimensions_1f20c5() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_1f20c5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_1f20c5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_1f20c5();
-}
diff --git a/test/intrinsics/gen/textureDimensions/214dd4.wgsl b/test/intrinsics/gen/textureDimensions/214dd4.wgsl
deleted file mode 100644
index 27c2d8a..0000000
--- a/test/intrinsics/gen/textureDimensions/214dd4.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba8sint, write>) -> vec3<i32>
-fn textureDimensions_214dd4() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_214dd4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_214dd4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_214dd4();
-}
diff --git a/test/intrinsics/gen/textureDimensions/221f22.wgsl b/test/intrinsics/gen/textureDimensions/221f22.wgsl
deleted file mode 100644
index 70098d7..0000000
--- a/test/intrinsics/gen/textureDimensions/221f22.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
-
-// fn textureDimensions(texture: texture_cube_array<i32>, level: i32) -> vec2<i32>
-fn textureDimensions_221f22() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_221f22();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_221f22();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_221f22();
-}
diff --git a/test/intrinsics/gen/textureDimensions/267788.wgsl b/test/intrinsics/gen/textureDimensions/267788.wgsl
deleted file mode 100644
index d431dc7..0000000
--- a/test/intrinsics/gen/textureDimensions/267788.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
-
-// fn textureDimensions(texture: texture_2d_array<u32>, level: i32) -> vec2<i32>
-fn textureDimensions_267788() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_267788();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_267788();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_267788();
-}
diff --git a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl b/test/intrinsics/gen/textureDimensions/26bdfa.wgsl
deleted file mode 100644
index 4100047..0000000
--- a/test/intrinsics/gen/textureDimensions/26bdfa.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-
-// fn textureDimensions(texture: texture_3d<f32>, level: i32) -> vec3<i32>
-fn textureDimensions_26bdfa() {
-  var res: vec3<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_26bdfa();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_26bdfa();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_26bdfa();
-}
diff --git a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl b/test/intrinsics/gen/textureDimensions/26ef6c.wgsl
deleted file mode 100644
index ec36468..0000000
--- a/test/intrinsics/gen/textureDimensions/26ef6c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, write>) -> vec2<i32>
-fn textureDimensions_26ef6c() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_26ef6c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_26ef6c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_26ef6c();
-}
diff --git a/test/intrinsics/gen/textureDimensions/2ad087.wgsl b/test/intrinsics/gen/textureDimensions/2ad087.wgsl
deleted file mode 100644
index 74ab99e..0000000
--- a/test/intrinsics/gen/textureDimensions/2ad087.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba16sint, write>) -> vec2<i32>
-fn textureDimensions_2ad087() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_2ad087();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_2ad087();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_2ad087();
-}
diff --git a/test/intrinsics/gen/textureDimensions/2efa05.wgsl b/test/intrinsics/gen/textureDimensions/2efa05.wgsl
deleted file mode 100644
index b5da206..0000000
--- a/test/intrinsics/gen/textureDimensions/2efa05.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<u32>;
-
-// fn textureDimensions(texture: texture_3d<u32>, level: i32) -> vec3<i32>
-fn textureDimensions_2efa05() {
-  var res: vec3<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_2efa05();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_2efa05();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_2efa05();
-}
diff --git a/test/intrinsics/gen/textureDimensions/2f289f.wgsl b/test/intrinsics/gen/textureDimensions/2f289f.wgsl
deleted file mode 100644
index 0ac6e35..0000000
--- a/test/intrinsics/gen/textureDimensions/2f289f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<r32sint, write>) -> vec3<i32>
-fn textureDimensions_2f289f() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_2f289f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_2f289f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_2f289f();
-}
diff --git a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl b/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl
deleted file mode 100644
index 0bd62a0..0000000
--- a/test/intrinsics/gen/textureDimensions/2fe1cc.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-
-// fn textureDimensions(texture: texture_2d<f32>, level: i32) -> vec2<i32>
-fn textureDimensions_2fe1cc() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_2fe1cc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_2fe1cc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_2fe1cc();
-}
diff --git a/test/intrinsics/gen/textureDimensions/318ecc.wgsl b/test/intrinsics/gen/textureDimensions/318ecc.wgsl
deleted file mode 100644
index 015839c..0000000
--- a/test/intrinsics/gen/textureDimensions/318ecc.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba16uint, write>) -> i32
-fn textureDimensions_318ecc() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_318ecc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_318ecc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_318ecc();
-}
diff --git a/test/intrinsics/gen/textureDimensions/340d06.wgsl b/test/intrinsics/gen/textureDimensions/340d06.wgsl
deleted file mode 100644
index 71af9d0..0000000
--- a/test/intrinsics/gen/textureDimensions/340d06.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<r32uint, write>) -> vec3<i32>
-fn textureDimensions_340d06() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_340d06();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_340d06();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_340d06();
-}
diff --git a/test/intrinsics/gen/textureDimensions/398e30.wgsl b/test/intrinsics/gen/textureDimensions/398e30.wgsl
deleted file mode 100644
index 0bdd487..0000000
--- a/test/intrinsics/gen/textureDimensions/398e30.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, write>) -> vec2<i32>
-fn textureDimensions_398e30() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_398e30();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_398e30();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_398e30();
-}
diff --git a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl b/test/intrinsics/gen/textureDimensions/3a94ea.wgsl
deleted file mode 100644
index eb60d1e..0000000
--- a/test/intrinsics/gen/textureDimensions/3a94ea.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rg32uint, write>) -> vec2<i32>
-fn textureDimensions_3a94ea() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_3a94ea();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_3a94ea();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_3a94ea();
-}
diff --git a/test/intrinsics/gen/textureDimensions/3aca08.wgsl b/test/intrinsics/gen/textureDimensions/3aca08.wgsl
deleted file mode 100644
index 3d96944..0000000
--- a/test/intrinsics/gen/textureDimensions/3aca08.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba32float, write>) -> i32
-fn textureDimensions_3aca08() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_3aca08();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_3aca08();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_3aca08();
-}
diff --git a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl b/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl
deleted file mode 100644
index e3837a8..0000000
--- a/test/intrinsics/gen/textureDimensions/3c5ad8.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba8sint, write>) -> vec2<i32>
-fn textureDimensions_3c5ad8() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_3c5ad8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_3c5ad8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_3c5ad8();
-}
diff --git a/test/intrinsics/gen/textureDimensions/4152a6.wgsl b/test/intrinsics/gen/textureDimensions/4152a6.wgsl
deleted file mode 100644
index f13d3ce..0000000
--- a/test/intrinsics/gen/textureDimensions/4152a6.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
-
-// fn textureDimensions(texture: texture_cube_array<u32>) -> vec2<i32>
-fn textureDimensions_4152a6() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_4152a6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_4152a6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_4152a6();
-}
diff --git a/test/intrinsics/gen/textureDimensions/423f99.wgsl b/test/intrinsics/gen/textureDimensions/423f99.wgsl
deleted file mode 100644
index d76008d..0000000
--- a/test/intrinsics/gen/textureDimensions/423f99.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<i32>;
-
-// fn textureDimensions(texture: texture_1d<i32>) -> i32
-fn textureDimensions_423f99() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_423f99();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_423f99();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_423f99();
-}
diff --git a/test/intrinsics/gen/textureDimensions/4267ee.wgsl b/test/intrinsics/gen/textureDimensions/4267ee.wgsl
deleted file mode 100644
index 77143ec..0000000
--- a/test/intrinsics/gen/textureDimensions/4267ee.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba32float, write>) -> vec2<i32>
-fn textureDimensions_4267ee() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_4267ee();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_4267ee();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_4267ee();
-}
diff --git a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl b/test/intrinsics/gen/textureDimensions/42d4e6.wgsl
deleted file mode 100644
index 8638394..0000000
--- a/test/intrinsics/gen/textureDimensions/42d4e6.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba8unorm, write>) -> i32
-fn textureDimensions_42d4e6() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_42d4e6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_42d4e6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_42d4e6();
-}
diff --git a/test/intrinsics/gen/textureDimensions/48cb89.wgsl b/test/intrinsics/gen/textureDimensions/48cb89.wgsl
deleted file mode 100644
index 12414cd..0000000
--- a/test/intrinsics/gen/textureDimensions/48cb89.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba16float, write>) -> vec2<i32>
-fn textureDimensions_48cb89() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_48cb89();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_48cb89();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_48cb89();
-}
diff --git a/test/intrinsics/gen/textureDimensions/49d274.wgsl b/test/intrinsics/gen/textureDimensions/49d274.wgsl
deleted file mode 100644
index b4569f0..0000000
--- a/test/intrinsics/gen/textureDimensions/49d274.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rg32sint, write>) -> vec2<i32>
-fn textureDimensions_49d274() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_49d274();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_49d274();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_49d274();
-}
diff --git a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl b/test/intrinsics/gen/textureDimensions/4df9a8.wgsl
deleted file mode 100644
index 5c8a80e..0000000
--- a/test/intrinsics/gen/textureDimensions/4df9a8.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rg32uint, write>) -> i32
-fn textureDimensions_4df9a8() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_4df9a8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_4df9a8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_4df9a8();
-}
diff --git a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl b/test/intrinsics/gen/textureDimensions/50a9ee.wgsl
deleted file mode 100644
index ab5dab1..0000000
--- a/test/intrinsics/gen/textureDimensions/50a9ee.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-
-// fn textureDimensions(texture: texture_cube_array<f32>, level: i32) -> vec2<i32>
-fn textureDimensions_50a9ee() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_50a9ee();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_50a9ee();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_50a9ee();
-}
diff --git a/test/intrinsics/gen/textureDimensions/52045c.wgsl b/test/intrinsics/gen/textureDimensions/52045c.wgsl
deleted file mode 100644
index 25dfd9d..0000000
--- a/test/intrinsics/gen/textureDimensions/52045c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<i32>;
-
-// fn textureDimensions(texture: texture_1d<i32>, level: i32) -> i32
-fn textureDimensions_52045c() {
-  var res: i32 = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_52045c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_52045c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_52045c();
-}
diff --git a/test/intrinsics/gen/textureDimensions/55b23e.wgsl b/test/intrinsics/gen/textureDimensions/55b23e.wgsl
deleted file mode 100644
index 182bd4f..0000000
--- a/test/intrinsics/gen/textureDimensions/55b23e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rg32float, write>) -> i32
-fn textureDimensions_55b23e() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_55b23e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_55b23e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_55b23e();
-}
diff --git a/test/intrinsics/gen/textureDimensions/579629.wgsl b/test/intrinsics/gen/textureDimensions/579629.wgsl
deleted file mode 100644
index 3892c0a..0000000
--- a/test/intrinsics/gen/textureDimensions/579629.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
-
-// fn textureDimensions(texture: texture_multisampled_2d<u32>) -> vec2<i32>
-fn textureDimensions_579629() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_579629();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_579629();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_579629();
-}
diff --git a/test/intrinsics/gen/textureDimensions/57da0b.wgsl b/test/intrinsics/gen/textureDimensions/57da0b.wgsl
deleted file mode 100644
index 92e1e1a..0000000
--- a/test/intrinsics/gen/textureDimensions/57da0b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<r32uint, write>) -> i32
-fn textureDimensions_57da0b() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_57da0b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_57da0b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_57da0b();
-}
diff --git a/test/intrinsics/gen/textureDimensions/57e28f.wgsl b/test/intrinsics/gen/textureDimensions/57e28f.wgsl
deleted file mode 100644
index b0cf7cc..0000000
--- a/test/intrinsics/gen/textureDimensions/57e28f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-
-// fn textureDimensions(texture: texture_depth_cube) -> vec2<i32>
-fn textureDimensions_57e28f() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_57e28f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_57e28f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_57e28f();
-}
diff --git a/test/intrinsics/gen/textureDimensions/58a515.wgsl b/test/intrinsics/gen/textureDimensions/58a515.wgsl
deleted file mode 100644
index 9cbebcb..0000000
--- a/test/intrinsics/gen/textureDimensions/58a515.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba16float, write>) -> vec2<i32>
-fn textureDimensions_58a515() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_58a515();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_58a515();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_58a515();
-}
diff --git a/test/intrinsics/gen/textureDimensions/5985f3.wgsl b/test/intrinsics/gen/textureDimensions/5985f3.wgsl
deleted file mode 100644
index 9c37e5f..0000000
--- a/test/intrinsics/gen/textureDimensions/5985f3.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, write>) -> vec2<i32>
-fn textureDimensions_5985f3() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_5985f3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_5985f3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_5985f3();
-}
diff --git a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl b/test/intrinsics/gen/textureDimensions/5caa5e.wgsl
deleted file mode 100644
index 3701763..0000000
--- a/test/intrinsics/gen/textureDimensions/5caa5e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba32uint, write>) -> i32
-fn textureDimensions_5caa5e() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_5caa5e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_5caa5e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_5caa5e();
-}
diff --git a/test/intrinsics/gen/textureDimensions/5e295d.wgsl b/test/intrinsics/gen/textureDimensions/5e295d.wgsl
deleted file mode 100644
index 3e4cd1b..0000000
--- a/test/intrinsics/gen/textureDimensions/5e295d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, write>) -> vec2<i32>
-fn textureDimensions_5e295d() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_5e295d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_5e295d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_5e295d();
-}
diff --git a/test/intrinsics/gen/textureDimensions/60bf54.wgsl b/test/intrinsics/gen/textureDimensions/60bf54.wgsl
deleted file mode 100644
index fd0c02b..0000000
--- a/test/intrinsics/gen/textureDimensions/60bf54.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rg32sint, write>) -> vec3<i32>
-fn textureDimensions_60bf54() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_60bf54();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_60bf54();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_60bf54();
-}
diff --git a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl b/test/intrinsics/gen/textureDimensions/63f3cf.wgsl
deleted file mode 100644
index 7cab4b8..0000000
--- a/test/intrinsics/gen/textureDimensions/63f3cf.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rg32float, write>) -> vec3<i32>
-fn textureDimensions_63f3cf() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_63f3cf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_63f3cf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_63f3cf();
-}
diff --git a/test/intrinsics/gen/textureDimensions/68105c.wgsl b/test/intrinsics/gen/textureDimensions/68105c.wgsl
deleted file mode 100644
index 9e15d77..0000000
--- a/test/intrinsics/gen/textureDimensions/68105c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba32uint, write>) -> vec2<i32>
-fn textureDimensions_68105c() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_68105c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_68105c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_68105c();
-}
diff --git a/test/intrinsics/gen/textureDimensions/686ef2.wgsl b/test/intrinsics/gen/textureDimensions/686ef2.wgsl
deleted file mode 100644
index 6ed1d53..0000000
--- a/test/intrinsics/gen/textureDimensions/686ef2.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<i32>;
-
-// fn textureDimensions(texture: texture_cube<i32>, level: i32) -> vec2<i32>
-fn textureDimensions_686ef2() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_686ef2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_686ef2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_686ef2();
-}
diff --git a/test/intrinsics/gen/textureDimensions/6adac6.wgsl b/test/intrinsics/gen/textureDimensions/6adac6.wgsl
deleted file mode 100644
index f35d628..0000000
--- a/test/intrinsics/gen/textureDimensions/6adac6.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba32sint, write>) -> i32
-fn textureDimensions_6adac6() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_6adac6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_6adac6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_6adac6();
-}
diff --git a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl b/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl
deleted file mode 100644
index a8718fb..0000000
--- a/test/intrinsics/gen/textureDimensions/6ec1b4.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<u32>;
-
-// fn textureDimensions(texture: texture_3d<u32>) -> vec3<i32>
-fn textureDimensions_6ec1b4() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_6ec1b4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_6ec1b4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_6ec1b4();
-}
diff --git a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl b/test/intrinsics/gen/textureDimensions/6f0d79.wgsl
deleted file mode 100644
index 395a6e0..0000000
--- a/test/intrinsics/gen/textureDimensions/6f0d79.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, write>) -> vec2<i32>
-fn textureDimensions_6f0d79() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_6f0d79();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_6f0d79();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_6f0d79();
-}
diff --git a/test/intrinsics/gen/textureDimensions/702c53.wgsl b/test/intrinsics/gen/textureDimensions/702c53.wgsl
deleted file mode 100644
index 401f1ea..0000000
--- a/test/intrinsics/gen/textureDimensions/702c53.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba8unorm, write>) -> vec2<i32>
-fn textureDimensions_702c53() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_702c53();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_702c53();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_702c53();
-}
diff --git a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl b/test/intrinsics/gen/textureDimensions/72e5d6.wgsl
deleted file mode 100644
index 309d93f..0000000
--- a/test/intrinsics/gen/textureDimensions/72e5d6.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-
-// fn textureDimensions(texture: texture_depth_2d_array, level: i32) -> vec2<i32>
-fn textureDimensions_72e5d6() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_72e5d6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_72e5d6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_72e5d6();
-}
diff --git a/test/intrinsics/gen/textureDimensions/79df87.wgsl b/test/intrinsics/gen/textureDimensions/79df87.wgsl
deleted file mode 100644
index 4319d63..0000000
--- a/test/intrinsics/gen/textureDimensions/79df87.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<u32>;
-
-// fn textureDimensions(texture: texture_1d<u32>, level: i32) -> i32
-fn textureDimensions_79df87() {
-  var res: i32 = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_79df87();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_79df87();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_79df87();
-}
diff --git a/test/intrinsics/gen/textureDimensions/7bf826.wgsl b/test/intrinsics/gen/textureDimensions/7bf826.wgsl
deleted file mode 100644
index 5f5b47c..0000000
--- a/test/intrinsics/gen/textureDimensions/7bf826.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-
-// fn textureDimensions(texture: texture_depth_2d_array) -> vec2<i32>
-fn textureDimensions_7bf826() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_7bf826();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_7bf826();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_7bf826();
-}
diff --git a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl b/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl
deleted file mode 100644
index f74769c..0000000
--- a/test/intrinsics/gen/textureDimensions/7f5c2e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rg32sint, write>) -> vec2<i32>
-fn textureDimensions_7f5c2e() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_7f5c2e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_7f5c2e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_7f5c2e();
-}
diff --git a/test/intrinsics/gen/textureDimensions/8028f3.wgsl b/test/intrinsics/gen/textureDimensions/8028f3.wgsl
deleted file mode 100644
index ade160d..0000000
--- a/test/intrinsics/gen/textureDimensions/8028f3.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<r32float, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<r32float, write>) -> vec3<i32>
-fn textureDimensions_8028f3() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_8028f3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_8028f3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_8028f3();
-}
diff --git a/test/intrinsics/gen/textureDimensions/811679.wgsl b/test/intrinsics/gen/textureDimensions/811679.wgsl
deleted file mode 100644
index 70b9a6c..0000000
--- a/test/intrinsics/gen/textureDimensions/811679.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba32uint, write>) -> vec3<i32>
-fn textureDimensions_811679() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_811679();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_811679();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_811679();
-}
diff --git a/test/intrinsics/gen/textureDimensions/820596.wgsl b/test/intrinsics/gen/textureDimensions/820596.wgsl
deleted file mode 100644
index f17caf0..0000000
--- a/test/intrinsics/gen/textureDimensions/820596.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rg32uint, write>) -> vec3<i32>
-fn textureDimensions_820596() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_820596();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_820596();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_820596();
-}
diff --git a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl b/test/intrinsics/gen/textureDimensions/83ee5a.wgsl
deleted file mode 100644
index ff1a2bb..0000000
--- a/test/intrinsics/gen/textureDimensions/83ee5a.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba32sint, write>) -> vec2<i32>
-fn textureDimensions_83ee5a() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_83ee5a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_83ee5a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_83ee5a();
-}
diff --git a/test/intrinsics/gen/textureDimensions/85d556.wgsl b/test/intrinsics/gen/textureDimensions/85d556.wgsl
deleted file mode 100644
index 91d1ef8..0000000
--- a/test/intrinsics/gen/textureDimensions/85d556.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-
-// fn textureDimensions(texture: texture_2d_array<f32>, level: i32) -> vec2<i32>
-fn textureDimensions_85d556() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_85d556();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_85d556();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_85d556();
-}
diff --git a/test/intrinsics/gen/textureDimensions/88ad17.wgsl b/test/intrinsics/gen/textureDimensions/88ad17.wgsl
deleted file mode 100644
index 7d9e6a8..0000000
--- a/test/intrinsics/gen/textureDimensions/88ad17.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<u32>;
-
-// fn textureDimensions(texture: texture_cube<u32>, level: i32) -> vec2<i32>
-fn textureDimensions_88ad17() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_88ad17();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_88ad17();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_88ad17();
-}
diff --git a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl b/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl
deleted file mode 100644
index abe1be4..0000000
--- a/test/intrinsics/gen/textureDimensions/8aa4c4.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-
-// fn textureDimensions(texture: texture_3d<f32>) -> vec3<i32>
-fn textureDimensions_8aa4c4() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_8aa4c4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_8aa4c4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_8aa4c4();
-}
diff --git a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl b/test/intrinsics/gen/textureDimensions/8deb5e.wgsl
deleted file mode 100644
index 1e056c5..0000000
--- a/test/intrinsics/gen/textureDimensions/8deb5e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<i32>;
-
-// fn textureDimensions(texture: texture_3d<i32>) -> vec3<i32>
-fn textureDimensions_8deb5e() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_8deb5e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_8deb5e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_8deb5e();
-}
diff --git a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl b/test/intrinsics/gen/textureDimensions/8f20bf.wgsl
deleted file mode 100644
index 11b2d27..0000000
--- a/test/intrinsics/gen/textureDimensions/8f20bf.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-
-// fn textureDimensions(texture: texture_cube_array<f32>) -> vec2<i32>
-fn textureDimensions_8f20bf() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_8f20bf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_8f20bf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_8f20bf();
-}
diff --git a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl b/test/intrinsics/gen/textureDimensions/8fca0f.wgsl
deleted file mode 100644
index e86c393..0000000
--- a/test/intrinsics/gen/textureDimensions/8fca0f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba32float, write>) -> vec3<i32>
-fn textureDimensions_8fca0f() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_8fca0f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_8fca0f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_8fca0f();
-}
diff --git a/test/intrinsics/gen/textureDimensions/90340b.wgsl b/test/intrinsics/gen/textureDimensions/90340b.wgsl
deleted file mode 100644
index 3528ecf..0000000
--- a/test/intrinsics/gen/textureDimensions/90340b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-
-// fn textureDimensions(texture: texture_depth_cube_array) -> vec2<i32>
-fn textureDimensions_90340b() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_90340b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_90340b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_90340b();
-}
diff --git a/test/intrinsics/gen/textureDimensions/9042ab.wgsl b/test/intrinsics/gen/textureDimensions/9042ab.wgsl
deleted file mode 100644
index 6a02da1..0000000
--- a/test/intrinsics/gen/textureDimensions/9042ab.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rg32uint, write>) -> vec2<i32>
-fn textureDimensions_9042ab() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_9042ab();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_9042ab();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_9042ab();
-}
diff --git a/test/intrinsics/gen/textureDimensions/9393b0.wgsl b/test/intrinsics/gen/textureDimensions/9393b0.wgsl
deleted file mode 100644
index 0ce4834..0000000
--- a/test/intrinsics/gen/textureDimensions/9393b0.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-
-// fn textureDimensions(texture: texture_depth_cube, level: i32) -> vec2<i32>
-fn textureDimensions_9393b0() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_9393b0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_9393b0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_9393b0();
-}
diff --git a/test/intrinsics/gen/textureDimensions/939fdb.wgsl b/test/intrinsics/gen/textureDimensions/939fdb.wgsl
deleted file mode 100644
index d29eec0..0000000
--- a/test/intrinsics/gen/textureDimensions/939fdb.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-
-// fn textureDimensions(texture: texture_depth_2d) -> vec2<i32>
-fn textureDimensions_939fdb() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_939fdb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_939fdb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_939fdb();
-}
diff --git a/test/intrinsics/gen/textureDimensions/962dcd.wgsl b/test/intrinsics/gen/textureDimensions/962dcd.wgsl
deleted file mode 100644
index 8831eb6..0000000
--- a/test/intrinsics/gen/textureDimensions/962dcd.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<i32>;
-
-// fn textureDimensions(texture: texture_cube<i32>) -> vec2<i32>
-fn textureDimensions_962dcd() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_962dcd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_962dcd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_962dcd();
-}
diff --git a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl b/test/intrinsics/gen/textureDimensions/9abfe5.wgsl
deleted file mode 100644
index 463f897..0000000
--- a/test/intrinsics/gen/textureDimensions/9abfe5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba32float, write>) -> vec2<i32>
-fn textureDimensions_9abfe5() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_9abfe5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_9abfe5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_9abfe5();
-}
diff --git a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl b/test/intrinsics/gen/textureDimensions/9c9c57.wgsl
deleted file mode 100644
index 62bdec3..0000000
--- a/test/intrinsics/gen/textureDimensions/9c9c57.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
-
-// fn textureDimensions(texture: texture_2d_array<i32>, level: i32) -> vec2<i32>
-fn textureDimensions_9c9c57() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_9c9c57();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_9c9c57();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_9c9c57();
-}
diff --git a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl b/test/intrinsics/gen/textureDimensions/9da9e2.wgsl
deleted file mode 100644
index 6c82fcc..0000000
--- a/test/intrinsics/gen/textureDimensions/9da9e2.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba8sint, write>) -> i32
-fn textureDimensions_9da9e2() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_9da9e2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_9da9e2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_9da9e2();
-}
diff --git a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl b/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl
deleted file mode 100644
index 09afe70..0000000
--- a/test/intrinsics/gen/textureDimensions/9eb8d8.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<r32uint, write>) -> vec2<i32>
-fn textureDimensions_9eb8d8() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_9eb8d8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_9eb8d8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_9eb8d8();
-}
diff --git a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl b/test/intrinsics/gen/textureDimensions/9f8e46.wgsl
deleted file mode 100644
index 1892e82..0000000
--- a/test/intrinsics/gen/textureDimensions/9f8e46.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-
-// fn textureDimensions(texture: texture_2d<f32>) -> vec2<i32>
-fn textureDimensions_9f8e46() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_9f8e46();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_9f8e46();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_9f8e46();
-}
diff --git a/test/intrinsics/gen/textureDimensions/a01845.wgsl b/test/intrinsics/gen/textureDimensions/a01845.wgsl
deleted file mode 100644
index 3b7b193..0000000
--- a/test/intrinsics/gen/textureDimensions/a01845.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-
-// fn textureDimensions(texture: texture_depth_cube_array, level: i32) -> vec2<i32>
-fn textureDimensions_a01845() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_a01845();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_a01845();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_a01845();
-}
diff --git a/test/intrinsics/gen/textureDimensions/a7d565.wgsl b/test/intrinsics/gen/textureDimensions/a7d565.wgsl
deleted file mode 100644
index 88779cb..0000000
--- a/test/intrinsics/gen/textureDimensions/a7d565.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<u32>;
-
-// fn textureDimensions(texture: texture_1d<u32>) -> i32
-fn textureDimensions_a7d565() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_a7d565();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_a7d565();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_a7d565();
-}
diff --git a/test/intrinsics/gen/textureDimensions/a863f2.wgsl b/test/intrinsics/gen/textureDimensions/a863f2.wgsl
deleted file mode 100644
index 61b668c..0000000
--- a/test/intrinsics/gen/textureDimensions/a863f2.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<r32float, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<r32float, write>) -> i32
-fn textureDimensions_a863f2() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_a863f2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_a863f2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_a863f2();
-}
diff --git a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl b/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl
deleted file mode 100644
index e10dcd1..0000000
--- a/test/intrinsics/gen/textureDimensions/a9c9c1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<f32>;
-
-// fn textureDimensions(texture: texture_cube<f32>, level: i32) -> vec2<i32>
-fn textureDimensions_a9c9c1() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_a9c9c1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_a9c9c1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_a9c9c1();
-}
diff --git a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl b/test/intrinsics/gen/textureDimensions/b0e16d.wgsl
deleted file mode 100644
index a1cc174..0000000
--- a/test/intrinsics/gen/textureDimensions/b0e16d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<i32>;
-
-// fn textureDimensions(texture: texture_2d<i32>, level: i32) -> vec2<i32>
-fn textureDimensions_b0e16d() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_b0e16d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_b0e16d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_b0e16d();
-}
diff --git a/test/intrinsics/gen/textureDimensions/b3c954.wgsl b/test/intrinsics/gen/textureDimensions/b3c954.wgsl
deleted file mode 100644
index bdd8173..0000000
--- a/test/intrinsics/gen/textureDimensions/b3c954.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<u32>;
-
-// fn textureDimensions(texture: texture_cube<u32>) -> vec2<i32>
-fn textureDimensions_b3c954() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_b3c954();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_b3c954();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_b3c954();
-}
diff --git a/test/intrinsics/gen/textureDimensions/b3e407.wgsl b/test/intrinsics/gen/textureDimensions/b3e407.wgsl
deleted file mode 100644
index 8c7d95c..0000000
--- a/test/intrinsics/gen/textureDimensions/b3e407.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<f32>;
-
-// fn textureDimensions(texture: texture_1d<f32>, level: i32) -> i32
-fn textureDimensions_b3e407() {
-  var res: i32 = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_b3e407();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_b3e407();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_b3e407();
-}
diff --git a/test/intrinsics/gen/textureDimensions/b91240.wgsl b/test/intrinsics/gen/textureDimensions/b91240.wgsl
deleted file mode 100644
index baf2591..0000000
--- a/test/intrinsics/gen/textureDimensions/b91240.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba8snorm, write>) -> vec2<i32>
-fn textureDimensions_b91240() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_b91240();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_b91240();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_b91240();
-}
diff --git a/test/intrinsics/gen/textureDimensions/ba1481.wgsl b/test/intrinsics/gen/textureDimensions/ba1481.wgsl
deleted file mode 100644
index c372ea1..0000000
--- a/test/intrinsics/gen/textureDimensions/ba1481.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_external;
-
-// fn textureDimensions(texture: texture_external) -> vec2<i32>
-fn textureDimensions_ba1481() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_ba1481();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_ba1481();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_ba1481();
-}
diff --git a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl b/test/intrinsics/gen/textureDimensions/bb3dde.wgsl
deleted file mode 100644
index 5519317..0000000
--- a/test/intrinsics/gen/textureDimensions/bb3dde.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba32sint, write>) -> vec3<i32>
-fn textureDimensions_bb3dde() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_bb3dde();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_bb3dde();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_bb3dde();
-}
diff --git a/test/intrinsics/gen/textureDimensions/c30e75.wgsl b/test/intrinsics/gen/textureDimensions/c30e75.wgsl
deleted file mode 100644
index 275a7ca..0000000
--- a/test/intrinsics/gen/textureDimensions/c30e75.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<r32sint, write>) -> vec2<i32>
-fn textureDimensions_c30e75() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_c30e75();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_c30e75();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_c30e75();
-}
diff --git a/test/intrinsics/gen/textureDimensions/c7943d.wgsl b/test/intrinsics/gen/textureDimensions/c7943d.wgsl
deleted file mode 100644
index 98ad655..0000000
--- a/test/intrinsics/gen/textureDimensions/c7943d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<rgba8uint, write>) -> vec2<i32>
-fn textureDimensions_c7943d() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_c7943d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_c7943d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_c7943d();
-}
diff --git a/test/intrinsics/gen/textureDimensions/cc968c.wgsl b/test/intrinsics/gen/textureDimensions/cc968c.wgsl
deleted file mode 100644
index 2c32bb9..0000000
--- a/test/intrinsics/gen/textureDimensions/cc968c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rg32sint, write>) -> i32
-fn textureDimensions_cc968c() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_cc968c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_cc968c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_cc968c();
-}
diff --git a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl b/test/intrinsics/gen/textureDimensions/cccc8f.wgsl
deleted file mode 100644
index 71072cc..0000000
--- a/test/intrinsics/gen/textureDimensions/cccc8f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba8snorm, write>) -> i32
-fn textureDimensions_cccc8f() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_cccc8f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_cccc8f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_cccc8f();
-}
diff --git a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl b/test/intrinsics/gen/textureDimensions/cd76a7.wgsl
deleted file mode 100644
index 79da9f1..0000000
--- a/test/intrinsics/gen/textureDimensions/cd76a7.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba8unorm, write>) -> vec3<i32>
-fn textureDimensions_cd76a7() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_cd76a7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_cd76a7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_cd76a7();
-}
diff --git a/test/intrinsics/gen/textureDimensions/cdf473.wgsl b/test/intrinsics/gen/textureDimensions/cdf473.wgsl
deleted file mode 100644
index 25ceca3..0000000
--- a/test/intrinsics/gen/textureDimensions/cdf473.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, write>) -> vec2<i32>
-fn textureDimensions_cdf473() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_cdf473();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_cdf473();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_cdf473();
-}
diff --git a/test/intrinsics/gen/textureDimensions/cec841.wgsl b/test/intrinsics/gen/textureDimensions/cec841.wgsl
deleted file mode 100644
index 0710769..0000000
--- a/test/intrinsics/gen/textureDimensions/cec841.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-
-// fn textureDimensions(texture: texture_2d_array<f32>) -> vec2<i32>
-fn textureDimensions_cec841() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_cec841();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_cec841();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_cec841();
-}
diff --git a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl b/test/intrinsics/gen/textureDimensions/cf7e43.wgsl
deleted file mode 100644
index 2768cce..0000000
--- a/test/intrinsics/gen/textureDimensions/cf7e43.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba8snorm, write>) -> vec3<i32>
-fn textureDimensions_cf7e43() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_cf7e43();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_cf7e43();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_cf7e43();
-}
diff --git a/test/intrinsics/gen/textureDimensions/d125bc.wgsl b/test/intrinsics/gen/textureDimensions/d125bc.wgsl
deleted file mode 100644
index e380cb2..0000000
--- a/test/intrinsics/gen/textureDimensions/d125bc.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<f32>;
-
-// fn textureDimensions(texture: texture_cube<f32>) -> vec2<i32>
-fn textureDimensions_d125bc() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_d125bc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_d125bc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_d125bc();
-}
diff --git a/test/intrinsics/gen/textureDimensions/d83c45.wgsl b/test/intrinsics/gen/textureDimensions/d83c45.wgsl
deleted file mode 100644
index feec4d5..0000000
--- a/test/intrinsics/gen/textureDimensions/d83c45.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
-
-// fn textureDimensions(texture: texture_cube_array<u32>, level: i32) -> vec2<i32>
-fn textureDimensions_d83c45() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_d83c45();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_d83c45();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_d83c45();
-}
diff --git a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl b/test/intrinsics/gen/textureDimensions/daf7c0.wgsl
deleted file mode 100644
index 5fe4ee1..0000000
--- a/test/intrinsics/gen/textureDimensions/daf7c0.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
-
-// fn textureDimensions(texture: texture_multisampled_2d<i32>) -> vec2<i32>
-fn textureDimensions_daf7c0() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_daf7c0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_daf7c0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_daf7c0();
-}
diff --git a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl b/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl
deleted file mode 100644
index d9da1be..0000000
--- a/test/intrinsics/gen/textureDimensions/dc2dd0.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, write>;
-
-// fn textureDimensions(texture: texture_storage_1d<rgba8uint, write>) -> i32
-fn textureDimensions_dc2dd0() {
-  var res: i32 = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_dc2dd0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_dc2dd0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_dc2dd0();
-}
diff --git a/test/intrinsics/gen/textureDimensions/e927be.wgsl b/test/intrinsics/gen/textureDimensions/e927be.wgsl
deleted file mode 100644
index 38da82e..0000000
--- a/test/intrinsics/gen/textureDimensions/e927be.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
-
-// fn textureDimensions(texture: texture_cube_array<i32>) -> vec2<i32>
-fn textureDimensions_e927be() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_e927be();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_e927be();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_e927be();
-}
diff --git a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl b/test/intrinsics/gen/textureDimensions/e9e96c.wgsl
deleted file mode 100644
index e2ae8ec..0000000
--- a/test/intrinsics/gen/textureDimensions/e9e96c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<r32float, write>) -> vec2<i32>
-fn textureDimensions_e9e96c() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_e9e96c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_e9e96c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_e9e96c();
-}
diff --git a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl b/test/intrinsics/gen/textureDimensions/ef5b89.wgsl
deleted file mode 100644
index 80750e3..0000000
--- a/test/intrinsics/gen/textureDimensions/ef5b89.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
-
-// fn textureDimensions(texture: texture_multisampled_2d<f32>) -> vec2<i32>
-fn textureDimensions_ef5b89() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_ef5b89();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_ef5b89();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_ef5b89();
-}
diff --git a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl b/test/intrinsics/gen/textureDimensions/efc8a4.wgsl
deleted file mode 100644
index b7dc738..0000000
--- a/test/intrinsics/gen/textureDimensions/efc8a4.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<i32>;
-
-// fn textureDimensions(texture: texture_3d<i32>, level: i32) -> vec3<i32>
-fn textureDimensions_efc8a4() {
-  var res: vec3<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_efc8a4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_efc8a4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_efc8a4();
-}
diff --git a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl b/test/intrinsics/gen/textureDimensions/f60bdb.wgsl
deleted file mode 100644
index 13edf77..0000000
--- a/test/intrinsics/gen/textureDimensions/f60bdb.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
-
-// fn textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<i32>
-fn textureDimensions_f60bdb() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_f60bdb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_f60bdb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_f60bdb();
-}
diff --git a/test/intrinsics/gen/textureDimensions/f7145b.wgsl b/test/intrinsics/gen/textureDimensions/f7145b.wgsl
deleted file mode 100644
index f8da7e1..0000000
--- a/test/intrinsics/gen/textureDimensions/f7145b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<u32>;
-
-// fn textureDimensions(texture: texture_2d<u32>, level: i32) -> vec2<i32>
-fn textureDimensions_f7145b() {
-  var res: vec2<i32> = textureDimensions(arg_0, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_f7145b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_f7145b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_f7145b();
-}
diff --git a/test/intrinsics/gen/textureDimensions/f931c7.wgsl b/test/intrinsics/gen/textureDimensions/f931c7.wgsl
deleted file mode 100644
index aa29d97..0000000
--- a/test/intrinsics/gen/textureDimensions/f931c7.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<r32float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d<r32float, write>) -> vec2<i32>
-fn textureDimensions_f931c7() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_f931c7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_f931c7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_f931c7();
-}
diff --git a/test/intrinsics/gen/textureDimensions/fa9859.wgsl b/test/intrinsics/gen/textureDimensions/fa9859.wgsl
deleted file mode 100644
index b6a1a04..0000000
--- a/test/intrinsics/gen/textureDimensions/fa9859.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<i32>;
-
-// fn textureDimensions(texture: texture_2d<i32>) -> vec2<i32>
-fn textureDimensions_fa9859() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_fa9859();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_fa9859();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_fa9859();
-}
diff --git a/test/intrinsics/gen/textureDimensions/fb5670.wgsl b/test/intrinsics/gen/textureDimensions/fb5670.wgsl
deleted file mode 100644
index 5151597..0000000
--- a/test/intrinsics/gen/textureDimensions/fb5670.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
-
-// fn textureDimensions(texture: texture_storage_2d_array<rg32float, write>) -> vec2<i32>
-fn textureDimensions_fb5670() {
-  var res: vec2<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_fb5670();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_fb5670();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_fb5670();
-}
diff --git a/test/intrinsics/gen/textureDimensions/fcac78.wgsl b/test/intrinsics/gen/textureDimensions/fcac78.wgsl
deleted file mode 100644
index 6a3c215..0000000
--- a/test/intrinsics/gen/textureDimensions/fcac78.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, write>;
-
-// fn textureDimensions(texture: texture_storage_3d<rgba8uint, write>) -> vec3<i32>
-fn textureDimensions_fcac78() {
-  var res: vec3<i32> = textureDimensions(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureDimensions_fcac78();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureDimensions_fcac78();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureDimensions_fcac78();
-}
diff --git a/test/intrinsics/gen/textureGather/01305f.wgsl b/test/intrinsics/gen/textureGather/01305f.wgsl
deleted file mode 100644
index 55af300..0000000
--- a/test/intrinsics/gen/textureGather/01305f.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d_array<u32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<u32>
-fn textureGather_01305f() {
-  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_01305f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_01305f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_01305f();
-}
diff --git a/test/intrinsics/gen/textureGather/06030a.wgsl b/test/intrinsics/gen/textureGather/06030a.wgsl
deleted file mode 100644
index 3ae4106..0000000
--- a/test/intrinsics/gen/textureGather/06030a.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d_array<f32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32>
-fn textureGather_06030a() {
-  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_06030a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_06030a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_06030a();
-}
diff --git a/test/intrinsics/gen/textureGather/10c554.wgsl b/test/intrinsics/gen/textureGather/10c554.wgsl
deleted file mode 100644
index 7abaa7f..0000000
--- a/test/intrinsics/gen/textureGather/10c554.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureGather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
-fn textureGather_10c554() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_10c554();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_10c554();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_10c554();
-}
diff --git a/test/intrinsics/gen/textureGather/15d79c.wgsl b/test/intrinsics/gen/textureGather/15d79c.wgsl
deleted file mode 100644
index 47bc2da..0000000
--- a/test/intrinsics/gen/textureGather/15d79c.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d<f32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
-fn textureGather_15d79c() {
-  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_15d79c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_15d79c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_15d79c();
-}
diff --git a/test/intrinsics/gen/textureGather/2e0ed5.wgsl b/test/intrinsics/gen/textureGather/2e0ed5.wgsl
deleted file mode 100644
index ff561c9..0000000
--- a/test/intrinsics/gen/textureGather/2e0ed5.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
-fn textureGather_2e0ed5() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_2e0ed5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_2e0ed5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_2e0ed5();
-}
diff --git a/test/intrinsics/gen/textureGather/3112e8.wgsl b/test/intrinsics/gen/textureGather/3112e8.wgsl
deleted file mode 100644
index a08ae70..0000000
--- a/test/intrinsics/gen/textureGather/3112e8.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_cube_array<f32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
-fn textureGather_3112e8() {
-  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec3<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_3112e8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_3112e8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_3112e8();
-}
diff --git a/test/intrinsics/gen/textureGather/3c527e.wgsl b/test/intrinsics/gen/textureGather/3c527e.wgsl
deleted file mode 100644
index f6f8f67..0000000
--- a/test/intrinsics/gen/textureGather/3c527e.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_cube_array<u32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_cube_array<u32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<u32>
-fn textureGather_3c527e() {
-  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec3<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_3c527e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_3c527e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_3c527e();
-}
diff --git a/test/intrinsics/gen/textureGather/43025d.wgsl b/test/intrinsics/gen/textureGather/43025d.wgsl
deleted file mode 100644
index 2cf28ef..0000000
--- a/test/intrinsics/gen/textureGather/43025d.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
-fn textureGather_43025d() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_43025d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_43025d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_43025d();
-}
diff --git a/test/intrinsics/gen/textureGather/4f2350.wgsl b/test/intrinsics/gen/textureGather/4f2350.wgsl
deleted file mode 100644
index 6945968..0000000
--- a/test/intrinsics/gen/textureGather/4f2350.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d_array<i32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<i32>
-fn textureGather_4f2350() {
-  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_4f2350();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_4f2350();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_4f2350();
-}
diff --git a/test/intrinsics/gen/textureGather/51cf0b.wgsl b/test/intrinsics/gen/textureGather/51cf0b.wgsl
deleted file mode 100644
index 6e503ce..0000000
--- a/test/intrinsics/gen/textureGather/51cf0b.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d_array<i32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d_array<i32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<i32>
-fn textureGather_51cf0b() {
-  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_51cf0b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_51cf0b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_51cf0b();
-}
diff --git a/test/intrinsics/gen/textureGather/53ece6.wgsl b/test/intrinsics/gen/textureGather/53ece6.wgsl
deleted file mode 100644
index 045f2ba..0000000
--- a/test/intrinsics/gen/textureGather/53ece6.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32>
-fn textureGather_53ece6() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_53ece6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_53ece6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_53ece6();
-}
diff --git a/test/intrinsics/gen/textureGather/57bfc6.wgsl b/test/intrinsics/gen/textureGather/57bfc6.wgsl
deleted file mode 100644
index daf1cc0..0000000
--- a/test/intrinsics/gen/textureGather/57bfc6.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_cube<f32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
-fn textureGather_57bfc6() {
-  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_57bfc6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_57bfc6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_57bfc6();
-}
diff --git a/test/intrinsics/gen/textureGather/587ba3.wgsl b/test/intrinsics/gen/textureGather/587ba3.wgsl
deleted file mode 100644
index 5bc617c..0000000
--- a/test/intrinsics/gen/textureGather/587ba3.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d<i32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>) -> vec4<i32>
-fn textureGather_587ba3() {
-  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_587ba3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_587ba3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_587ba3();
-}
diff --git a/test/intrinsics/gen/textureGather/69e0fb.wgsl b/test/intrinsics/gen/textureGather/69e0fb.wgsl
deleted file mode 100644
index 3d4a9fa..0000000
--- a/test/intrinsics/gen/textureGather/69e0fb.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d<i32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d<i32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<i32>
-fn textureGather_69e0fb() {
-  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec2<f32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_69e0fb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_69e0fb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_69e0fb();
-}
diff --git a/test/intrinsics/gen/textureGather/93003d.wgsl b/test/intrinsics/gen/textureGather/93003d.wgsl
deleted file mode 100644
index c194b51..0000000
--- a/test/intrinsics/gen/textureGather/93003d.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d<u32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<u32>
-fn textureGather_93003d() {
-  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_93003d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_93003d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_93003d();
-}
diff --git a/test/intrinsics/gen/textureGather/9a6358.wgsl b/test/intrinsics/gen/textureGather/9a6358.wgsl
deleted file mode 100644
index 0aff04c..0000000
--- a/test/intrinsics/gen/textureGather/9a6358.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
-fn textureGather_9a6358() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_9a6358();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_9a6358();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_9a6358();
-}
diff --git a/test/intrinsics/gen/textureGather/9efca2.wgsl b/test/intrinsics/gen/textureGather/9efca2.wgsl
deleted file mode 100644
index d1fd63f..0000000
--- a/test/intrinsics/gen/textureGather/9efca2.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d_array<f32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
-fn textureGather_9efca2() {
-  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_9efca2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_9efca2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_9efca2();
-}
diff --git a/test/intrinsics/gen/textureGather/bd0b1e.wgsl b/test/intrinsics/gen/textureGather/bd0b1e.wgsl
deleted file mode 100644
index e7bf959..0000000
--- a/test/intrinsics/gen/textureGather/bd0b1e.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d<f32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
-fn textureGather_bd0b1e() {
-  var res: vec4<f32> = textureGather(1, arg_1, arg_2, vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_bd0b1e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_bd0b1e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_bd0b1e();
-}
diff --git a/test/intrinsics/gen/textureGather/c409ae.wgsl b/test/intrinsics/gen/textureGather/c409ae.wgsl
deleted file mode 100644
index 8778bb7..0000000
--- a/test/intrinsics/gen/textureGather/c409ae.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
-fn textureGather_c409ae() {
-  var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_c409ae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_c409ae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_c409ae();
-}
diff --git a/test/intrinsics/gen/textureGather/c55822.wgsl b/test/intrinsics/gen/textureGather/c55822.wgsl
deleted file mode 100644
index 9cedd59..0000000
--- a/test/intrinsics/gen/textureGather/c55822.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_cube_array<i32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_cube_array<i32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<i32>
-fn textureGather_c55822() {
-  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec3<f32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_c55822();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_c55822();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_c55822();
-}
diff --git a/test/intrinsics/gen/textureGather/e1b67d.wgsl b/test/intrinsics/gen/textureGather/e1b67d.wgsl
deleted file mode 100644
index ac8f15a..0000000
--- a/test/intrinsics/gen/textureGather/e1b67d.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_cube<u32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_cube<u32>, sampler: sampler, coords: vec3<f32>) -> vec4<u32>
-fn textureGather_e1b67d() {
-  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_e1b67d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_e1b67d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_e1b67d();
-}
diff --git a/test/intrinsics/gen/textureGather/e9eff6.wgsl b/test/intrinsics/gen/textureGather/e9eff6.wgsl
deleted file mode 100644
index b0477f9..0000000
--- a/test/intrinsics/gen/textureGather/e9eff6.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d<u32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d<u32>, sampler: sampler, coords: vec2<f32>) -> vec4<u32>
-fn textureGather_e9eff6() {
-  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_e9eff6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_e9eff6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_e9eff6();
-}
diff --git a/test/intrinsics/gen/textureGather/f5f3ba.wgsl b/test/intrinsics/gen/textureGather/f5f3ba.wgsl
deleted file mode 100644
index f263256..0000000
--- a/test/intrinsics/gen/textureGather/f5f3ba.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_2d_array<u32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_2d_array<u32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<u32>
-fn textureGather_f5f3ba() {
-  var res: vec4<u32> = textureGather(1, arg_1, arg_2, vec2<f32>(), 1, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_f5f3ba();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_f5f3ba();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_f5f3ba();
-}
diff --git a/test/intrinsics/gen/textureGather/f7995a.wgsl b/test/intrinsics/gen/textureGather/f7995a.wgsl
deleted file mode 100644
index 19c42fc..0000000
--- a/test/intrinsics/gen/textureGather/f7995a.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(1) var arg_1: texture_cube<i32>;
-@group(1) @binding(2) var arg_2: sampler;
-
-// fn textureGather(component: i32, texture: texture_cube<i32>, sampler: sampler, coords: vec3<f32>) -> vec4<i32>
-fn textureGather_f7995a() {
-  var res: vec4<i32> = textureGather(1, arg_1, arg_2, vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGather_f7995a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGather_f7995a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGather_f7995a();
-}
diff --git a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl b/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl
deleted file mode 100644
index afaaa84..0000000
--- a/test/intrinsics/gen/textureGatherCompare/182fd4.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32>
-fn textureGatherCompare_182fd4() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGatherCompare_182fd4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGatherCompare_182fd4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGatherCompare_182fd4();
-}
diff --git a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl b/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl
deleted file mode 100644
index 53ed423..0000000
--- a/test/intrinsics/gen/textureGatherCompare/60d2d1.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
-fn textureGatherCompare_60d2d1() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(), 1, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGatherCompare_60d2d1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGatherCompare_60d2d1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGatherCompare_60d2d1();
-}
diff --git a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl b/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl
deleted file mode 100644
index 5a577ba..0000000
--- a/test/intrinsics/gen/textureGatherCompare/6d9352.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32>
-fn textureGatherCompare_6d9352() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGatherCompare_6d9352();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGatherCompare_6d9352();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGatherCompare_6d9352();
-}
diff --git a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl b/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl
deleted file mode 100644
index c71a699..0000000
--- a/test/intrinsics/gen/textureGatherCompare/6f1267.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> vec4<f32>
-fn textureGatherCompare_6f1267() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGatherCompare_6f1267();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGatherCompare_6f1267();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGatherCompare_6f1267();
-}
diff --git a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl b/test/intrinsics/gen/textureGatherCompare/783e65.wgsl
deleted file mode 100644
index 8bd4779..0000000
--- a/test/intrinsics/gen/textureGatherCompare/783e65.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> vec4<f32>
-fn textureGatherCompare_783e65() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGatherCompare_783e65();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGatherCompare_783e65();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGatherCompare_783e65();
-}
diff --git a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl b/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl
deleted file mode 100644
index b8a2718..0000000
--- a/test/intrinsics/gen/textureGatherCompare/a5f587.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> vec4<f32>
-fn textureGatherCompare_a5f587() {
-  var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureGatherCompare_a5f587();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureGatherCompare_a5f587();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureGatherCompare_a5f587();
-}
diff --git a/test/intrinsics/gen/textureLoad/19cf87.wgsl b/test/intrinsics/gen/textureLoad/19cf87.wgsl
deleted file mode 100644
index 609ce46..0000000
--- a/test/intrinsics/gen/textureLoad/19cf87.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-
-// fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32
-fn textureLoad_19cf87() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_19cf87();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_19cf87();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_19cf87();
-}
diff --git a/test/intrinsics/gen/textureLoad/1b8588.wgsl b/test/intrinsics/gen/textureLoad/1b8588.wgsl
deleted file mode 100644
index 80a4cae..0000000
--- a/test/intrinsics/gen/textureLoad/1b8588.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<u32>;
-
-// fn textureLoad(texture: texture_1d<u32>, coords: i32, level: i32) -> vec4<u32>
-fn textureLoad_1b8588() {
-  var res: vec4<u32> = textureLoad(arg_0, 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_1b8588();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_1b8588();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_1b8588();
-}
diff --git a/test/intrinsics/gen/textureLoad/1f2016.wgsl b/test/intrinsics/gen/textureLoad/1f2016.wgsl
deleted file mode 100644
index 9e3a286..0000000
--- a/test/intrinsics/gen/textureLoad/1f2016.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-
-// fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: i32) -> vec4<f32>
-fn textureLoad_1f2016() {
-  var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_1f2016();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_1f2016();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_1f2016();
-}
diff --git a/test/intrinsics/gen/textureLoad/484344.wgsl b/test/intrinsics/gen/textureLoad/484344.wgsl
deleted file mode 100644
index 920d8e0..0000000
--- a/test/intrinsics/gen/textureLoad/484344.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-
-// fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: i32) -> vec4<f32>
-fn textureLoad_484344() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_484344();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_484344();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_484344();
-}
diff --git a/test/intrinsics/gen/textureLoad/4fd803.wgsl b/test/intrinsics/gen/textureLoad/4fd803.wgsl
deleted file mode 100644
index d309c2b..0000000
--- a/test/intrinsics/gen/textureLoad/4fd803.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<i32>;
-
-// fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: i32) -> vec4<i32>
-fn textureLoad_4fd803() {
-  var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_4fd803();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_4fd803();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_4fd803();
-}
diff --git a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl b/test/intrinsics/gen/textureLoad/5a2f9d.wgsl
deleted file mode 100644
index 5f19cb5..0000000
--- a/test/intrinsics/gen/textureLoad/5a2f9d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<i32>;
-
-// fn textureLoad(texture: texture_1d<i32>, coords: i32, level: i32) -> vec4<i32>
-fn textureLoad_5a2f9d() {
-  var res: vec4<i32> = textureLoad(arg_0, 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_5a2f9d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_5a2f9d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_5a2f9d();
-}
diff --git a/test/intrinsics/gen/textureLoad/6154d4.wgsl b/test/intrinsics/gen/textureLoad/6154d4.wgsl
deleted file mode 100644
index ba6d633..0000000
--- a/test/intrinsics/gen/textureLoad/6154d4.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<u32>;
-
-// fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: i32) -> vec4<u32>
-fn textureLoad_6154d4() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_6154d4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_6154d4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_6154d4();
-}
diff --git a/test/intrinsics/gen/textureLoad/6273b1.wgsl b/test/intrinsics/gen/textureLoad/6273b1.wgsl
deleted file mode 100644
index 944e5a3..0000000
--- a/test/intrinsics/gen/textureLoad/6273b1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
-
-// fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32
-fn textureLoad_6273b1() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_6273b1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_6273b1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_6273b1();
-}
diff --git a/test/intrinsics/gen/textureLoad/79e697.wgsl b/test/intrinsics/gen/textureLoad/79e697.wgsl
deleted file mode 100644
index 4ed308e..0000000
--- a/test/intrinsics/gen/textureLoad/79e697.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
-
-// fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<i32>
-fn textureLoad_79e697() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_79e697();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_79e697();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_79e697();
-}
diff --git a/test/intrinsics/gen/textureLoad/7c90e5.wgsl b/test/intrinsics/gen/textureLoad/7c90e5.wgsl
deleted file mode 100644
index 29da0dc..0000000
--- a/test/intrinsics/gen/textureLoad/7c90e5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
-
-// fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<u32>
-fn textureLoad_7c90e5() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_7c90e5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_7c90e5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_7c90e5();
-}
diff --git a/test/intrinsics/gen/textureLoad/81c381.wgsl b/test/intrinsics/gen/textureLoad/81c381.wgsl
deleted file mode 100644
index dccf1b8..0000000
--- a/test/intrinsics/gen/textureLoad/81c381.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<f32>;
-
-// fn textureLoad(texture: texture_1d<f32>, coords: i32, level: i32) -> vec4<f32>
-fn textureLoad_81c381() {
-  var res: vec4<f32> = textureLoad(arg_0, 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_81c381();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_81c381();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_81c381();
-}
diff --git a/test/intrinsics/gen/textureLoad/87be85.wgsl b/test/intrinsics/gen/textureLoad/87be85.wgsl
deleted file mode 100644
index b1124d7..0000000
--- a/test/intrinsics/gen/textureLoad/87be85.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-
-// fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<f32>
-fn textureLoad_87be85() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_87be85();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_87be85();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_87be85();
-}
diff --git a/test/intrinsics/gen/textureLoad/8acf41.wgsl b/test/intrinsics/gen/textureLoad/8acf41.wgsl
deleted file mode 100644
index effdecd..0000000
--- a/test/intrinsics/gen/textureLoad/8acf41.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_external;
-
-// fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32>
-fn textureLoad_8acf41() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_8acf41();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_8acf41();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_8acf41();
-}
diff --git a/test/intrinsics/gen/textureLoad/9b2667.wgsl b/test/intrinsics/gen/textureLoad/9b2667.wgsl
deleted file mode 100644
index 4372cdb..0000000
--- a/test/intrinsics/gen/textureLoad/9b2667.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-
-// fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32
-fn textureLoad_9b2667() {
-  var res: f32 = textureLoad(arg_0, vec2<i32>(), 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_9b2667();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_9b2667();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_9b2667();
-}
diff --git a/test/intrinsics/gen/textureLoad/a583c9.wgsl b/test/intrinsics/gen/textureLoad/a583c9.wgsl
deleted file mode 100644
index 5f67c51..0000000
--- a/test/intrinsics/gen/textureLoad/a583c9.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
-
-// fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: i32) -> vec4<f32>
-fn textureLoad_a583c9() {
-  var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_a583c9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_a583c9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_a583c9();
-}
diff --git a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl b/test/intrinsics/gen/textureLoad/a9a9f5.wgsl
deleted file mode 100644
index 236927b..0000000
--- a/test/intrinsics/gen/textureLoad/a9a9f5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<u32>;
-
-// fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: i32) -> vec4<u32>
-fn textureLoad_a9a9f5() {
-  var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_a9a9f5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_a9a9f5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_a9a9f5();
-}
diff --git a/test/intrinsics/gen/textureLoad/c2a480.wgsl b/test/intrinsics/gen/textureLoad/c2a480.wgsl
deleted file mode 100644
index 6aa17f7..0000000
--- a/test/intrinsics/gen/textureLoad/c2a480.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<i32>;
-
-// fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: i32) -> vec4<i32>
-fn textureLoad_c2a480() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_c2a480();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_c2a480();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_c2a480();
-}
diff --git a/test/intrinsics/gen/textureLoad/c378ee.wgsl b/test/intrinsics/gen/textureLoad/c378ee.wgsl
deleted file mode 100644
index 2ddc52a..0000000
--- a/test/intrinsics/gen/textureLoad/c378ee.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
-
-// fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: i32) -> vec4<u32>
-fn textureLoad_c378ee() {
-  var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_c378ee();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_c378ee();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_c378ee();
-}
diff --git a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl b/test/intrinsics/gen/textureLoad/e3d2cc.wgsl
deleted file mode 100644
index 65b9d17..0000000
--- a/test/intrinsics/gen/textureLoad/e3d2cc.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
-
-// fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: i32) -> vec4<i32>
-fn textureLoad_e3d2cc() {
-  var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(), 1);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureLoad_e3d2cc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureLoad_e3d2cc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureLoad_e3d2cc();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/024820.wgsl b/test/intrinsics/gen/textureNumLayers/024820.wgsl
deleted file mode 100644
index e0ad9de..0000000
--- a/test/intrinsics/gen/textureNumLayers/024820.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-
-// fn textureNumLayers(texture: texture_2d_array<f32>) -> i32
-fn textureNumLayers_024820() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_024820();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_024820();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_024820();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/053df7.wgsl b/test/intrinsics/gen/textureNumLayers/053df7.wgsl
deleted file mode 100644
index dcb5cf3..0000000
--- a/test/intrinsics/gen/textureNumLayers/053df7.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
-
-// fn textureNumLayers(texture: texture_cube_array<u32>) -> i32
-fn textureNumLayers_053df7() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_053df7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_053df7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_053df7();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl b/test/intrinsics/gen/textureNumLayers/058cc3.wgsl
deleted file mode 100644
index 1897559..0000000
--- a/test/intrinsics/gen/textureNumLayers/058cc3.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, write>) -> i32
-fn textureNumLayers_058cc3() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_058cc3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_058cc3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_058cc3();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl b/test/intrinsics/gen/textureNumLayers/09d05d.wgsl
deleted file mode 100644
index e39514f..0000000
--- a/test/intrinsics/gen/textureNumLayers/09d05d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, write>) -> i32
-fn textureNumLayers_09d05d() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_09d05d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_09d05d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_09d05d();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl b/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl
deleted file mode 100644
index f6361f1..0000000
--- a/test/intrinsics/gen/textureNumLayers/13b4ce.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, write>) -> i32
-fn textureNumLayers_13b4ce() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_13b4ce();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_13b4ce();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_13b4ce();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl b/test/intrinsics/gen/textureNumLayers/22e53b.wgsl
deleted file mode 100644
index c9101c0..0000000
--- a/test/intrinsics/gen/textureNumLayers/22e53b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<r32sint, write>) -> i32
-fn textureNumLayers_22e53b() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_22e53b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_22e53b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_22e53b();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/562013.wgsl b/test/intrinsics/gen/textureNumLayers/562013.wgsl
deleted file mode 100644
index 18c77ad..0000000
--- a/test/intrinsics/gen/textureNumLayers/562013.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, write>) -> i32
-fn textureNumLayers_562013() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_562013();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_562013();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_562013();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl b/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl
deleted file mode 100644
index 2a0f4de..0000000
--- a/test/intrinsics/gen/textureNumLayers/5d59cd.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-
-// fn textureNumLayers(texture: texture_cube_array<f32>) -> i32
-fn textureNumLayers_5d59cd() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_5d59cd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_5d59cd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_5d59cd();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl b/test/intrinsics/gen/textureNumLayers/68a65b.wgsl
deleted file mode 100644
index f551fc2..0000000
--- a/test/intrinsics/gen/textureNumLayers/68a65b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, write>) -> i32
-fn textureNumLayers_68a65b() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_68a65b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_68a65b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_68a65b();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl b/test/intrinsics/gen/textureNumLayers/778bd1.wgsl
deleted file mode 100644
index ec88c84..0000000
--- a/test/intrinsics/gen/textureNumLayers/778bd1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-
-// fn textureNumLayers(texture: texture_depth_cube_array) -> i32
-fn textureNumLayers_778bd1() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_778bd1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_778bd1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_778bd1();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl b/test/intrinsics/gen/textureNumLayers/7f1937.wgsl
deleted file mode 100644
index 7652201..0000000
--- a/test/intrinsics/gen/textureNumLayers/7f1937.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rg32float, write>) -> i32
-fn textureNumLayers_7f1937() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_7f1937();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_7f1937();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_7f1937();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/85f980.wgsl b/test/intrinsics/gen/textureNumLayers/85f980.wgsl
deleted file mode 100644
index c91c09d..0000000
--- a/test/intrinsics/gen/textureNumLayers/85f980.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
-
-// fn textureNumLayers(texture: texture_cube_array<i32>) -> i32
-fn textureNumLayers_85f980() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_85f980();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_85f980();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_85f980();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/87953e.wgsl b/test/intrinsics/gen/textureNumLayers/87953e.wgsl
deleted file mode 100644
index d4b3e5a..0000000
--- a/test/intrinsics/gen/textureNumLayers/87953e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
-
-// fn textureNumLayers(texture: texture_2d_array<u32>) -> i32
-fn textureNumLayers_87953e() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_87953e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_87953e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_87953e();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl b/test/intrinsics/gen/textureNumLayers/893e7c.wgsl
deleted file mode 100644
index b00bdbd..0000000
--- a/test/intrinsics/gen/textureNumLayers/893e7c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
-
-// fn textureNumLayers(texture: texture_2d_array<i32>) -> i32
-fn textureNumLayers_893e7c() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_893e7c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_893e7c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_893e7c();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl b/test/intrinsics/gen/textureNumLayers/9700fb.wgsl
deleted file mode 100644
index 474b691..0000000
--- a/test/intrinsics/gen/textureNumLayers/9700fb.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, write>) -> i32
-fn textureNumLayers_9700fb() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_9700fb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_9700fb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_9700fb();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl b/test/intrinsics/gen/textureNumLayers/a216d2.wgsl
deleted file mode 100644
index f64da9e..0000000
--- a/test/intrinsics/gen/textureNumLayers/a216d2.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, write>) -> i32
-fn textureNumLayers_a216d2() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_a216d2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_a216d2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_a216d2();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl b/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl
deleted file mode 100644
index 3756b00..0000000
--- a/test/intrinsics/gen/textureNumLayers/cd5dc8.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, write>) -> i32
-fn textureNumLayers_cd5dc8() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_cd5dc8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_cd5dc8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_cd5dc8();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl b/test/intrinsics/gen/textureNumLayers/d5b228.wgsl
deleted file mode 100644
index ccc1d48..0000000
--- a/test/intrinsics/gen/textureNumLayers/d5b228.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<r32float, write>) -> i32
-fn textureNumLayers_d5b228() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_d5b228();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_d5b228();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_d5b228();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl b/test/intrinsics/gen/textureNumLayers/e31be1.wgsl
deleted file mode 100644
index d80689a..0000000
--- a/test/intrinsics/gen/textureNumLayers/e31be1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, write>) -> i32
-fn textureNumLayers_e31be1() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_e31be1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_e31be1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_e31be1();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl b/test/intrinsics/gen/textureNumLayers/e653c0.wgsl
deleted file mode 100644
index 44cb31c..0000000
--- a/test/intrinsics/gen/textureNumLayers/e653c0.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-
-// fn textureNumLayers(texture: texture_depth_2d_array) -> i32
-fn textureNumLayers_e653c0() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_e653c0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_e653c0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_e653c0();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl b/test/intrinsics/gen/textureNumLayers/ee942f.wgsl
deleted file mode 100644
index 7c4e1b4..0000000
--- a/test/intrinsics/gen/textureNumLayers/ee942f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<r32uint, write>) -> i32
-fn textureNumLayers_ee942f() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_ee942f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_ee942f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_ee942f();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/f33005.wgsl b/test/intrinsics/gen/textureNumLayers/f33005.wgsl
deleted file mode 100644
index 6d5b10c..0000000
--- a/test/intrinsics/gen/textureNumLayers/f33005.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, write>) -> i32
-fn textureNumLayers_f33005() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_f33005();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_f33005();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_f33005();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl b/test/intrinsics/gen/textureNumLayers/fcec98.wgsl
deleted file mode 100644
index aab70d9..0000000
--- a/test/intrinsics/gen/textureNumLayers/fcec98.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, write>) -> i32
-fn textureNumLayers_fcec98() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_fcec98();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_fcec98();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_fcec98();
-}
diff --git a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl b/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl
deleted file mode 100644
index e6fe277..0000000
--- a/test/intrinsics/gen/textureNumLayers/ff5e89.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
-
-// fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, write>) -> i32
-fn textureNumLayers_ff5e89() {
-  var res: i32 = textureNumLayers(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLayers_ff5e89();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLayers_ff5e89();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLayers_ff5e89();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl b/test/intrinsics/gen/textureNumLevels/076cb5.wgsl
deleted file mode 100644
index 367dac4..0000000
--- a/test/intrinsics/gen/textureNumLevels/076cb5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-
-// fn textureNumLevels(texture: texture_depth_cube) -> i32
-fn textureNumLevels_076cb5() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_076cb5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_076cb5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_076cb5();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/080d95.wgsl b/test/intrinsics/gen/textureNumLevels/080d95.wgsl
deleted file mode 100644
index b3bbba3..0000000
--- a/test/intrinsics/gen/textureNumLevels/080d95.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<i32>;
-
-// fn textureNumLevels(texture: texture_cube<i32>) -> i32
-fn textureNumLevels_080d95() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_080d95();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_080d95();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_080d95();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl b/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl
deleted file mode 100644
index b68221c..0000000
--- a/test/intrinsics/gen/textureNumLevels/09ddd0.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<u32>;
-
-// fn textureNumLevels(texture: texture_2d<u32>) -> i32
-fn textureNumLevels_09ddd0() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_09ddd0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_09ddd0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_09ddd0();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/105988.wgsl b/test/intrinsics/gen/textureNumLevels/105988.wgsl
deleted file mode 100644
index 9f03753..0000000
--- a/test/intrinsics/gen/textureNumLevels/105988.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-
-// fn textureNumLevels(texture: texture_2d_array<f32>) -> i32
-fn textureNumLevels_105988() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_105988();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_105988();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_105988();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl b/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl
deleted file mode 100644
index fc14600..0000000
--- a/test/intrinsics/gen/textureNumLevels/1e6f3b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<u32>;
-
-// fn textureNumLevels(texture: texture_1d<u32>) -> i32
-fn textureNumLevels_1e6f3b() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_1e6f3b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_1e6f3b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_1e6f3b();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/23f750.wgsl b/test/intrinsics/gen/textureNumLevels/23f750.wgsl
deleted file mode 100644
index 4b914fc..0000000
--- a/test/intrinsics/gen/textureNumLevels/23f750.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<i32>;
-
-// fn textureNumLevels(texture: texture_2d<i32>) -> i32
-fn textureNumLevels_23f750() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_23f750();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_23f750();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_23f750();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl b/test/intrinsics/gen/textureNumLevels/2c3575.wgsl
deleted file mode 100644
index 556e103..0000000
--- a/test/intrinsics/gen/textureNumLevels/2c3575.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-
-// fn textureNumLevels(texture: texture_depth_cube_array) -> i32
-fn textureNumLevels_2c3575() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_2c3575();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_2c3575();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_2c3575();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl b/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl
deleted file mode 100644
index 04ae341..0000000
--- a/test/intrinsics/gen/textureNumLevels/32a0ae.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<i32>;
-
-// fn textureNumLevels(texture: texture_1d<i32>) -> i32
-fn textureNumLevels_32a0ae() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_32a0ae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_32a0ae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_32a0ae();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl b/test/intrinsics/gen/textureNumLevels/5101cf.wgsl
deleted file mode 100644
index cab7551..0000000
--- a/test/intrinsics/gen/textureNumLevels/5101cf.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<u32>;
-
-// fn textureNumLevels(texture: texture_2d_array<u32>) -> i32
-fn textureNumLevels_5101cf() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_5101cf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_5101cf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_5101cf();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl b/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl
deleted file mode 100644
index 04be5cb..0000000
--- a/test/intrinsics/gen/textureNumLevels/51b5bb.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<f32>;
-
-// fn textureNumLevels(texture: texture_1d<f32>) -> i32
-fn textureNumLevels_51b5bb() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_51b5bb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_51b5bb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_51b5bb();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl b/test/intrinsics/gen/textureNumLevels/897aaf.wgsl
deleted file mode 100644
index 6daf4db..0000000
--- a/test/intrinsics/gen/textureNumLevels/897aaf.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<f32>;
-
-// fn textureNumLevels(texture: texture_cube<f32>) -> i32
-fn textureNumLevels_897aaf() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_897aaf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_897aaf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_897aaf();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl b/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl
deleted file mode 100644
index c471eba..0000000
--- a/test/intrinsics/gen/textureNumLevels/9da7a5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<i32>;
-
-// fn textureNumLevels(texture: texture_3d<i32>) -> i32
-fn textureNumLevels_9da7a5() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_9da7a5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_9da7a5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_9da7a5();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl b/test/intrinsics/gen/textureNumLevels/a91c03.wgsl
deleted file mode 100644
index 0d9d201..0000000
--- a/test/intrinsics/gen/textureNumLevels/a91c03.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<i32>;
-
-// fn textureNumLevels(texture: texture_cube_array<i32>) -> i32
-fn textureNumLevels_a91c03() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_a91c03();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_a91c03();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_a91c03();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl b/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl
deleted file mode 100644
index 701dd1e..0000000
--- a/test/intrinsics/gen/textureNumLevels/aee7c8.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-
-// fn textureNumLevels(texture: texture_cube_array<f32>) -> i32
-fn textureNumLevels_aee7c8() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_aee7c8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_aee7c8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_aee7c8();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl b/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl
deleted file mode 100644
index 9f8980a..0000000
--- a/test/intrinsics/gen/textureNumLevels/b1b12b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-
-// fn textureNumLevels(texture: texture_depth_2d) -> i32
-fn textureNumLevels_b1b12b() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_b1b12b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_b1b12b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_b1b12b();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl b/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl
deleted file mode 100644
index 57d2353..0000000
--- a/test/intrinsics/gen/textureNumLevels/b4f5ea.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<u32>;
-
-// fn textureNumLevels(texture: texture_3d<u32>) -> i32
-fn textureNumLevels_b4f5ea() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_b4f5ea();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_b4f5ea();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_b4f5ea();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl b/test/intrinsics/gen/textureNumLevels/d004a9.wgsl
deleted file mode 100644
index 862bc8d..0000000
--- a/test/intrinsics/gen/textureNumLevels/d004a9.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<i32>;
-
-// fn textureNumLevels(texture: texture_2d_array<i32>) -> i32
-fn textureNumLevels_d004a9() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_d004a9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_d004a9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_d004a9();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl b/test/intrinsics/gen/textureNumLevels/dca09e.wgsl
deleted file mode 100644
index 85fb619..0000000
--- a/test/intrinsics/gen/textureNumLevels/dca09e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-
-// fn textureNumLevels(texture: texture_3d<f32>) -> i32
-fn textureNumLevels_dca09e() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_dca09e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_dca09e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_dca09e();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/e67231.wgsl b/test/intrinsics/gen/textureNumLevels/e67231.wgsl
deleted file mode 100644
index 05f8db0..0000000
--- a/test/intrinsics/gen/textureNumLevels/e67231.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-
-// fn textureNumLevels(texture: texture_2d<f32>) -> i32
-fn textureNumLevels_e67231() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_e67231();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_e67231();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_e67231();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl b/test/intrinsics/gen/textureNumLevels/ed078b.wgsl
deleted file mode 100644
index 76ac64c..0000000
--- a/test/intrinsics/gen/textureNumLevels/ed078b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<u32>;
-
-// fn textureNumLevels(texture: texture_cube<u32>) -> i32
-fn textureNumLevels_ed078b() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_ed078b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_ed078b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_ed078b();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl b/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl
deleted file mode 100644
index 10ccf4e..0000000
--- a/test/intrinsics/gen/textureNumLevels/f46ec6.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<u32>;
-
-// fn textureNumLevels(texture: texture_cube_array<u32>) -> i32
-fn textureNumLevels_f46ec6() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_f46ec6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_f46ec6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_f46ec6();
-}
diff --git a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl b/test/intrinsics/gen/textureNumLevels/f5828d.wgsl
deleted file mode 100644
index bdfcc52..0000000
--- a/test/intrinsics/gen/textureNumLevels/f5828d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-
-// fn textureNumLevels(texture: texture_depth_2d_array) -> i32
-fn textureNumLevels_f5828d() {
-  var res: i32 = textureNumLevels(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumLevels_f5828d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumLevels_f5828d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumLevels_f5828d();
-}
diff --git a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl b/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl
deleted file mode 100644
index 8a28fd4..0000000
--- a/test/intrinsics/gen/textureNumSamples/2c6f14.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
-
-// fn textureNumSamples(texture: texture_multisampled_2d<f32>) -> i32
-fn textureNumSamples_2c6f14() {
-  var res: i32 = textureNumSamples(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumSamples_2c6f14();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumSamples_2c6f14();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumSamples_2c6f14();
-}
diff --git a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl b/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl
deleted file mode 100644
index 143f3a8..0000000
--- a/test/intrinsics/gen/textureNumSamples/42f8bb.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
-
-// fn textureNumSamples(texture: texture_multisampled_2d<u32>) -> i32
-fn textureNumSamples_42f8bb() {
-  var res: i32 = textureNumSamples(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumSamples_42f8bb();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumSamples_42f8bb();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumSamples_42f8bb();
-}
diff --git a/test/intrinsics/gen/textureNumSamples/449d23.wgsl b/test/intrinsics/gen/textureNumSamples/449d23.wgsl
deleted file mode 100644
index c34a440..0000000
--- a/test/intrinsics/gen/textureNumSamples/449d23.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
-
-// fn textureNumSamples(texture: texture_multisampled_2d<i32>) -> i32
-fn textureNumSamples_449d23() {
-  var res: i32 = textureNumSamples(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumSamples_449d23();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumSamples_449d23();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumSamples_449d23();
-}
diff --git a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl b/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl
deleted file mode 100644
index bafea1a..0000000
--- a/test/intrinsics/gen/textureNumSamples/a3c8a0.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
-
-// fn textureNumSamples(texture: texture_depth_multisampled_2d) -> i32
-fn textureNumSamples_a3c8a0() {
-  var res: i32 = textureNumSamples(arg_0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureNumSamples_a3c8a0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureNumSamples_a3c8a0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureNumSamples_a3c8a0();
-}
diff --git a/test/intrinsics/gen/textureSample/02aa9b.wgsl b/test/intrinsics/gen/textureSample/02aa9b.wgsl
deleted file mode 100644
index 006a838..0000000
--- a/test/intrinsics/gen/textureSample/02aa9b.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32>
-fn textureSample_02aa9b() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1, vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_02aa9b();
-}
diff --git a/test/intrinsics/gen/textureSample/100dc0.wgsl b/test/intrinsics/gen/textureSample/100dc0.wgsl
deleted file mode 100644
index a5f95e7..0000000
--- a/test/intrinsics/gen/textureSample/100dc0.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, offset: vec3<i32>) -> vec4<f32>
-fn textureSample_100dc0() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), vec3<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_100dc0();
-}
diff --git a/test/intrinsics/gen/textureSample/38bbb9.wgsl b/test/intrinsics/gen/textureSample/38bbb9.wgsl
deleted file mode 100644
index ee2abbd..0000000
--- a/test/intrinsics/gen/textureSample/38bbb9.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32
-fn textureSample_38bbb9() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_38bbb9();
-}
diff --git a/test/intrinsics/gen/textureSample/3b50bd.wgsl b/test/intrinsics/gen/textureSample/3b50bd.wgsl
deleted file mode 100644
index 0c0b55f..0000000
--- a/test/intrinsics/gen/textureSample/3b50bd.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
-fn textureSample_3b50bd() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_3b50bd();
-}
diff --git a/test/intrinsics/gen/textureSample/4dd1bf.wgsl b/test/intrinsics/gen/textureSample/4dd1bf.wgsl
deleted file mode 100644
index f722cd1..0000000
--- a/test/intrinsics/gen/textureSample/4dd1bf.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32>
-fn textureSample_4dd1bf() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(), 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_4dd1bf();
-}
diff --git a/test/intrinsics/gen/textureSample/51b514.wgsl b/test/intrinsics/gen/textureSample/51b514.wgsl
deleted file mode 100644
index 5433460..0000000
--- a/test/intrinsics/gen/textureSample/51b514.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
-fn textureSample_51b514() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_51b514();
-}
diff --git a/test/intrinsics/gen/textureSample/667d76.wgsl b/test/intrinsics/gen/textureSample/667d76.wgsl
deleted file mode 100644
index 23d98a9..0000000
--- a/test/intrinsics/gen/textureSample/667d76.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> f32
-fn textureSample_667d76() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_667d76();
-}
diff --git a/test/intrinsics/gen/textureSample/6717ca.wgsl b/test/intrinsics/gen/textureSample/6717ca.wgsl
deleted file mode 100644
index fc09cca..0000000
--- a/test/intrinsics/gen/textureSample/6717ca.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32>
-fn textureSample_6717ca() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_6717ca();
-}
diff --git a/test/intrinsics/gen/textureSample/6e64fb.wgsl b/test/intrinsics/gen/textureSample/6e64fb.wgsl
deleted file mode 100644
index d49bb9c..0000000
--- a/test/intrinsics/gen/textureSample/6e64fb.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_1d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32>
-fn textureSample_6e64fb() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_6e64fb();
-}
diff --git a/test/intrinsics/gen/textureSample/7c3baa.wgsl b/test/intrinsics/gen/textureSample/7c3baa.wgsl
deleted file mode 100644
index 9f32596..0000000
--- a/test/intrinsics/gen/textureSample/7c3baa.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
-fn textureSample_7c3baa() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(), vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_7c3baa();
-}
diff --git a/test/intrinsics/gen/textureSample/7e9ffd.wgsl b/test/intrinsics/gen/textureSample/7e9ffd.wgsl
deleted file mode 100644
index d5242f6..0000000
--- a/test/intrinsics/gen/textureSample/7e9ffd.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> f32
-fn textureSample_7e9ffd() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_7e9ffd();
-}
diff --git a/test/intrinsics/gen/textureSample/8522e7.wgsl b/test/intrinsics/gen/textureSample/8522e7.wgsl
deleted file mode 100644
index 2ac3071..0000000
--- a/test/intrinsics/gen/textureSample/8522e7.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> f32
-fn textureSample_8522e7() {
-  var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(), 1, vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_8522e7();
-}
diff --git a/test/intrinsics/gen/textureSample/c2f4e8.wgsl b/test/intrinsics/gen/textureSample/c2f4e8.wgsl
deleted file mode 100644
index e6c03a1..0000000
--- a/test/intrinsics/gen/textureSample/c2f4e8.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> f32
-fn textureSample_c2f4e8() {
-  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(), 1);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_c2f4e8();
-}
diff --git a/test/intrinsics/gen/textureSample/e53267.wgsl b/test/intrinsics/gen/textureSample/e53267.wgsl
deleted file mode 100644
index 6ac4cd6..0000000
--- a/test/intrinsics/gen/textureSample/e53267.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32>
-fn textureSample_e53267() {
-  var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_e53267();
-}
diff --git a/test/intrinsics/gen/textureSample/ea7030.wgsl b/test/intrinsics/gen/textureSample/ea7030.wgsl
deleted file mode 100644
index 482686a..0000000
--- a/test/intrinsics/gen/textureSample/ea7030.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32
-fn textureSample_ea7030() {
-  var res: f32 = textureSample(arg_0, arg_1, vec3<f32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSample_ea7030();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl b/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl
deleted file mode 100644
index 17b3557..0000000
--- a/test/intrinsics/gen/textureSampleBias/53b9f7.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
-fn textureSampleBias_53b9f7() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_53b9f7();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl b/test/intrinsics/gen/textureSampleBias/65ac50.wgsl
deleted file mode 100644
index 5a95380..0000000
--- a/test/intrinsics/gen/textureSampleBias/65ac50.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32, offset: vec2<i32>) -> vec4<f32>
-fn textureSampleBias_65ac50() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_65ac50();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl b/test/intrinsics/gen/textureSampleBias/6a9113.wgsl
deleted file mode 100644
index 8c17b47..0000000
--- a/test/intrinsics/gen/textureSampleBias/6a9113.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32>
-fn textureSampleBias_6a9113() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_6a9113();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/80e579.wgsl b/test/intrinsics/gen/textureSampleBias/80e579.wgsl
deleted file mode 100644
index 0ae5cc8..0000000
--- a/test/intrinsics/gen/textureSampleBias/80e579.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32) -> vec4<f32>
-fn textureSampleBias_80e579() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1, 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_80e579();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl b/test/intrinsics/gen/textureSampleBias/81c19a.wgsl
deleted file mode 100644
index f6f996f..0000000
--- a/test/intrinsics/gen/textureSampleBias/81c19a.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, offset: vec2<i32>) -> vec4<f32>
-fn textureSampleBias_81c19a() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_81c19a();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl b/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl
deleted file mode 100644
index d70657e..0000000
--- a/test/intrinsics/gen/textureSampleBias/d3fa1b.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32>
-fn textureSampleBias_d3fa1b() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_d3fa1b();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl b/test/intrinsics/gen/textureSampleBias/df91bb.wgsl
deleted file mode 100644
index b35e5a4..0000000
--- a/test/intrinsics/gen/textureSampleBias/df91bb.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32, offset: vec3<i32>) -> vec4<f32>
-fn textureSampleBias_df91bb() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1.0, vec3<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_df91bb();
-}
diff --git a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl b/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl
deleted file mode 100644
index 408326a..0000000
--- a/test/intrinsics/gen/textureSampleBias/eed7c4.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, bias: f32) -> vec4<f32>
-fn textureSampleBias_eed7c4() {
-  var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(), 1, 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleBias_eed7c4();
-}
diff --git a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl b/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl
deleted file mode 100644
index 3f6096a..0000000
--- a/test/intrinsics/gen/textureSampleCompare/25fcd1.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32
-fn textureSampleCompare_25fcd1() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompare_25fcd1();
-}
diff --git a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl b/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl
deleted file mode 100644
index 1c2c30c..0000000
--- a/test/intrinsics/gen/textureSampleCompare/3a5923.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
-fn textureSampleCompare_3a5923() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompare_3a5923();
-}
diff --git a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl b/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl
deleted file mode 100644
index 1accd53..0000000
--- a/test/intrinsics/gen/textureSampleCompare/63fb83.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
-fn textureSampleCompare_63fb83() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompare_63fb83();
-}
diff --git a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl b/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl
deleted file mode 100644
index 43552d7..0000000
--- a/test/intrinsics/gen/textureSampleCompare/98b85c.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32
-fn textureSampleCompare_98b85c() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompare_98b85c();
-}
diff --git a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl b/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl
deleted file mode 100644
index 073e25a..0000000
--- a/test/intrinsics/gen/textureSampleCompare/a3ca7e.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
-fn textureSampleCompare_a3ca7e() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(), 1, 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompare_a3ca7e();
-}
diff --git a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl b/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl
deleted file mode 100644
index 4291866..0000000
--- a/test/intrinsics/gen/textureSampleCompare/dd431d.wgsl
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
-fn textureSampleCompare_dd431d() {
-  var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(), 1, 1.0);
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompare_dd431d();
-}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl b/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl
deleted file mode 100644
index 7cc7525..0000000
--- a/test/intrinsics/gen/textureSampleCompareLevel/011a8f.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32
-fn textureSampleCompareLevel_011a8f() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleCompareLevel_011a8f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompareLevel_011a8f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleCompareLevel_011a8f();
-}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl b/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl
deleted file mode 100644
index 21a27d8..0000000
--- a/test/intrinsics/gen/textureSampleCompareLevel/1116ed.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32
-fn textureSampleCompareLevel_1116ed() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleCompareLevel_1116ed();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompareLevel_1116ed();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleCompareLevel_1116ed();
-}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl b/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl
deleted file mode 100644
index 30c2867..0000000
--- a/test/intrinsics/gen/textureSampleCompareLevel/1568e3.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32
-fn textureSampleCompareLevel_1568e3() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleCompareLevel_1568e3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompareLevel_1568e3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleCompareLevel_1568e3();
-}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl b/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl
deleted file mode 100644
index 6a6fcee..0000000
--- a/test/intrinsics/gen/textureSampleCompareLevel/2ad2b1.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32
-fn textureSampleCompareLevel_2ad2b1() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleCompareLevel_2ad2b1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompareLevel_2ad2b1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleCompareLevel_2ad2b1();
-}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl b/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl
deleted file mode 100644
index 02d5f74..0000000
--- a/test/intrinsics/gen/textureSampleCompareLevel/4cf3a2.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32
-fn textureSampleCompareLevel_4cf3a2() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(), 1, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleCompareLevel_4cf3a2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompareLevel_4cf3a2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleCompareLevel_4cf3a2();
-}
diff --git a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl b/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl
deleted file mode 100644
index 97401ce..0000000
--- a/test/intrinsics/gen/textureSampleCompareLevel/f8121c.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler_comparison;
-
-// fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32
-fn textureSampleCompareLevel_f8121c() {
-  var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleCompareLevel_f8121c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleCompareLevel_f8121c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleCompareLevel_f8121c();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl b/test/intrinsics/gen/textureSampleGrad/21402b.wgsl
deleted file mode 100644
index 8d8aa0f..0000000
--- a/test/intrinsics/gen/textureSampleGrad/21402b.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
-fn textureSampleGrad_21402b() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_21402b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_21402b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_21402b();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl b/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl
deleted file mode 100644
index 5c242be..0000000
--- a/test/intrinsics/gen/textureSampleGrad/2ecd8f.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
-fn textureSampleGrad_2ecd8f() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1, vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_2ecd8f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_2ecd8f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_2ecd8f();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl b/test/intrinsics/gen/textureSampleGrad/468f88.wgsl
deleted file mode 100644
index 7749ccd..0000000
--- a/test/intrinsics/gen/textureSampleGrad/468f88.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
-fn textureSampleGrad_468f88() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_468f88();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_468f88();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_468f88();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/521263.wgsl b/test/intrinsics/gen/textureSampleGrad/521263.wgsl
deleted file mode 100644
index 7f832e9..0000000
--- a/test/intrinsics/gen/textureSampleGrad/521263.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32>
-fn textureSampleGrad_521263() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), vec2<f32>(), vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_521263();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_521263();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_521263();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl b/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl
deleted file mode 100644
index 47a84a9..0000000
--- a/test/intrinsics/gen/textureSampleGrad/5312f4.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
-fn textureSampleGrad_5312f4() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_5312f4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_5312f4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_5312f4();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl b/test/intrinsics/gen/textureSampleGrad/872f00.wgsl
deleted file mode 100644
index cfb073f..0000000
--- a/test/intrinsics/gen/textureSampleGrad/872f00.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32>
-fn textureSampleGrad_872f00() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(), 1, vec2<f32>(), vec2<f32>(), vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_872f00();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_872f00();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_872f00();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl b/test/intrinsics/gen/textureSampleGrad/e383db.wgsl
deleted file mode 100644
index e2f4c94..0000000
--- a/test/intrinsics/gen/textureSampleGrad/e383db.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32>
-fn textureSampleGrad_e383db() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), 1, vec3<f32>(), vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_e383db();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_e383db();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_e383db();
-}
diff --git a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl b/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl
deleted file mode 100644
index aa909fa..0000000
--- a/test/intrinsics/gen/textureSampleGrad/e9a2f7.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>, offset: vec3<i32>) -> vec4<f32>
-fn textureSampleGrad_e9a2f7() {
-  var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(), vec3<f32>(), vec3<f32>(), vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleGrad_e9a2f7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleGrad_e9a2f7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleGrad_e9a2f7();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl b/test/intrinsics/gen/textureSampleLevel/02be59.wgsl
deleted file mode 100644
index 421b596..0000000
--- a/test/intrinsics/gen/textureSampleLevel/02be59.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32) -> f32
-fn textureSampleLevel_02be59() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_02be59();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_02be59();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_02be59();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl b/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl
deleted file mode 100644
index c8a3064..0000000
--- a/test/intrinsics/gen/textureSampleLevel/0bdd9a.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, level: f32) -> vec4<f32>
-fn textureSampleLevel_0bdd9a() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_0bdd9a();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_0bdd9a();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_0bdd9a();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl b/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl
deleted file mode 100644
index c7a2186..0000000
--- a/test/intrinsics/gen/textureSampleLevel/1b0291.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: i32) -> f32
-fn textureSampleLevel_1b0291() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_1b0291();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_1b0291();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_1b0291();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl b/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl
deleted file mode 100644
index c7a13c2..0000000
--- a/test/intrinsics/gen/textureSampleLevel/1bf73e.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32) -> f32
-fn textureSampleLevel_1bf73e() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_1bf73e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_1bf73e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_1bf73e();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl b/test/intrinsics/gen/textureSampleLevel/302be4.wgsl
deleted file mode 100644
index a1c1612..0000000
--- a/test/intrinsics/gen/textureSampleLevel/302be4.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32) -> vec4<f32>
-fn textureSampleLevel_302be4() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_302be4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_302be4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_302be4();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl b/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl
deleted file mode 100644
index bda5904..0000000
--- a/test/intrinsics/gen/textureSampleLevel/47daa4.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32, offset: vec2<i32>) -> f32
-fn textureSampleLevel_47daa4() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_47daa4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_47daa4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_47daa4();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl b/test/intrinsics/gen/textureSampleLevel/690d95.wgsl
deleted file mode 100644
index d748cdc..0000000
--- a/test/intrinsics/gen/textureSampleLevel/690d95.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, offset: vec2<i32>) -> vec4<f32>
-fn textureSampleLevel_690d95() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_690d95();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_690d95();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_690d95();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/979816.wgsl b/test/intrinsics/gen/textureSampleLevel/979816.wgsl
deleted file mode 100644
index 4636091..0000000
--- a/test/intrinsics/gen/textureSampleLevel/979816.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_external;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32>
-fn textureSampleLevel_979816() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_979816();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_979816();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_979816();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl b/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl
deleted file mode 100644
index 18304c8..0000000
--- a/test/intrinsics/gen/textureSampleLevel/9bd37b.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32, offset: vec3<i32>) -> vec4<f32>
-fn textureSampleLevel_9bd37b() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0, vec3<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_9bd37b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_9bd37b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_9bd37b();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl b/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl
deleted file mode 100644
index ffb83eb..0000000
--- a/test/intrinsics/gen/textureSampleLevel/a4af26.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d_array<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32, offset: vec2<i32>) -> vec4<f32>
-fn textureSampleLevel_a4af26() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 1.0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_a4af26();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_a4af26();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_a4af26();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl b/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl
deleted file mode 100644
index 3cf621a..0000000
--- a/test/intrinsics/gen/textureSampleLevel/abfcc0.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_3d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
-fn textureSampleLevel_abfcc0() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_abfcc0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_abfcc0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_abfcc0();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl b/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl
deleted file mode 100644
index bca3189..0000000
--- a/test/intrinsics/gen/textureSampleLevel/ae5e39.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_cube_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: i32) -> f32
-fn textureSampleLevel_ae5e39() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1, 0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_ae5e39();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_ae5e39();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_ae5e39();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl b/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl
deleted file mode 100644
index 07958ef..0000000
--- a/test/intrinsics/gen/textureSampleLevel/ba93b3.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_depth_2d_array;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32, offset: vec2<i32>) -> f32
-fn textureSampleLevel_ba93b3() {
-  var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1, 0, vec2<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_ba93b3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_ba93b3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_ba93b3();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl b/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl
deleted file mode 100644
index 9dc6e15..0000000
--- a/test/intrinsics/gen/textureSampleLevel/c32df7.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_cube<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32>
-fn textureSampleLevel_c32df7() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_c32df7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_c32df7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_c32df7();
-}
diff --git a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl b/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl
deleted file mode 100644
index f58dfd1..0000000
--- a/test/intrinsics/gen/textureSampleLevel/c6aca6.wgsl
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_2d<f32>;
-@group(1) @binding(1) var arg_1: sampler;
-
-// fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32>
-fn textureSampleLevel_c6aca6() {
-  var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(), 1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureSampleLevel_c6aca6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureSampleLevel_c6aca6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureSampleLevel_c6aca6();
-}
diff --git a/test/intrinsics/gen/textureStore/05ce15.wgsl b/test/intrinsics/gen/textureStore/05ce15.wgsl
deleted file mode 100644
index 8bccc96..0000000
--- a/test/intrinsics/gen/textureStore/05ce15.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba32float, write>, coords: vec2<i32>, value: vec4<f32>)
-fn textureStore_05ce15() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_05ce15();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_05ce15();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_05ce15();
-}
diff --git a/test/intrinsics/gen/textureStore/064c7f.wgsl b/test/intrinsics/gen/textureStore/064c7f.wgsl
deleted file mode 100644
index 71130e4..0000000
--- a/test/intrinsics/gen/textureStore/064c7f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
-
-// fn textureStore(texture: texture_storage_2d<rg32float, write>, coords: vec2<i32>, value: vec4<f32>)
-fn textureStore_064c7f() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_064c7f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_064c7f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_064c7f();
-}
diff --git a/test/intrinsics/gen/textureStore/068641.wgsl b/test/intrinsics/gen/textureStore/068641.wgsl
deleted file mode 100644
index 7b10529..0000000
--- a/test/intrinsics/gen/textureStore/068641.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba16uint, write>, coords: vec3<i32>, value: vec4<u32>)
-fn textureStore_068641() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_068641();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_068641();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_068641();
-}
diff --git a/test/intrinsics/gen/textureStore/0af6b5.wgsl b/test/intrinsics/gen/textureStore/0af6b5.wgsl
deleted file mode 100644
index d66614e..0000000
--- a/test/intrinsics/gen/textureStore/0af6b5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<r32float, write>;
-
-// fn textureStore(texture: texture_storage_2d<r32float, write>, coords: vec2<i32>, value: vec4<f32>)
-fn textureStore_0af6b5() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0af6b5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_0af6b5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_0af6b5();
-}
diff --git a/test/intrinsics/gen/textureStore/0c3dff.wgsl b/test/intrinsics/gen/textureStore/0c3dff.wgsl
deleted file mode 100644
index 4ace9a9..0000000
--- a/test/intrinsics/gen/textureStore/0c3dff.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba16uint, write>, coords: vec2<i32>, value: vec4<u32>)
-fn textureStore_0c3dff() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_0c3dff();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_0c3dff();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_0c3dff();
-}
diff --git a/test/intrinsics/gen/textureStore/102722.wgsl b/test/intrinsics/gen/textureStore/102722.wgsl
deleted file mode 100644
index a096321..0000000
--- a/test/intrinsics/gen/textureStore/102722.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, write>;
-
-// fn textureStore(texture: texture_storage_1d<r32uint, write>, coords: i32, value: vec4<u32>)
-fn textureStore_102722() {
-  textureStore(arg_0, 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_102722();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_102722();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_102722();
-}
diff --git a/test/intrinsics/gen/textureStore/1bbd08.wgsl b/test/intrinsics/gen/textureStore/1bbd08.wgsl
deleted file mode 100644
index 922921b..0000000
--- a/test/intrinsics/gen/textureStore/1bbd08.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba8unorm, write>, coords: vec3<i32>, value: vec4<f32>)
-fn textureStore_1bbd08() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1bbd08();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_1bbd08();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_1bbd08();
-}
diff --git a/test/intrinsics/gen/textureStore/1c02e7.wgsl b/test/intrinsics/gen/textureStore/1c02e7.wgsl
deleted file mode 100644
index df6bca8..0000000
--- a/test/intrinsics/gen/textureStore/1c02e7.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<r32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
-fn textureStore_1c02e7() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_1c02e7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_1c02e7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_1c02e7();
-}
diff --git a/test/intrinsics/gen/textureStore/22d955.wgsl b/test/intrinsics/gen/textureStore/22d955.wgsl
deleted file mode 100644
index 716aa42..0000000
--- a/test/intrinsics/gen/textureStore/22d955.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba8uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
-fn textureStore_22d955() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_22d955();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_22d955();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_22d955();
-}
diff --git a/test/intrinsics/gen/textureStore/26bf70.wgsl b/test/intrinsics/gen/textureStore/26bf70.wgsl
deleted file mode 100644
index 083e62a..0000000
--- a/test/intrinsics/gen/textureStore/26bf70.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba32uint, write>, coords: vec2<i32>, value: vec4<u32>)
-fn textureStore_26bf70() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_26bf70();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_26bf70();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_26bf70();
-}
diff --git a/test/intrinsics/gen/textureStore/2796b4.wgsl b/test/intrinsics/gen/textureStore/2796b4.wgsl
deleted file mode 100644
index dce9df6..0000000
--- a/test/intrinsics/gen/textureStore/2796b4.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rg32sint, write>, coords: vec3<i32>, value: vec4<i32>)
-fn textureStore_2796b4() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2796b4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_2796b4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_2796b4();
-}
diff --git a/test/intrinsics/gen/textureStore/2ac6c7.wgsl b/test/intrinsics/gen/textureStore/2ac6c7.wgsl
deleted file mode 100644
index 35cec99..0000000
--- a/test/intrinsics/gen/textureStore/2ac6c7.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<r32float, write>;
-
-// fn textureStore(texture: texture_storage_1d<r32float, write>, coords: i32, value: vec4<f32>)
-fn textureStore_2ac6c7() {
-  textureStore(arg_0, 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ac6c7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_2ac6c7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_2ac6c7();
-}
diff --git a/test/intrinsics/gen/textureStore/2eb2a4.wgsl b/test/intrinsics/gen/textureStore/2eb2a4.wgsl
deleted file mode 100644
index ad1ccd5..0000000
--- a/test/intrinsics/gen/textureStore/2eb2a4.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba16uint, write>, coords: i32, value: vec4<u32>)
-fn textureStore_2eb2a4() {
-  textureStore(arg_0, 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2eb2a4();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_2eb2a4();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_2eb2a4();
-}
diff --git a/test/intrinsics/gen/textureStore/2ed2a3.wgsl b/test/intrinsics/gen/textureStore/2ed2a3.wgsl
deleted file mode 100644
index bcf4113..0000000
--- a/test/intrinsics/gen/textureStore/2ed2a3.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba8snorm, write>, coords: i32, value: vec4<f32>)
-fn textureStore_2ed2a3() {
-  textureStore(arg_0, 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_2ed2a3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_2ed2a3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_2ed2a3();
-}
diff --git a/test/intrinsics/gen/textureStore/31745b.wgsl b/test/intrinsics/gen/textureStore/31745b.wgsl
deleted file mode 100644
index 5dea4e1..0000000
--- a/test/intrinsics/gen/textureStore/31745b.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rg32sint, write>, coords: vec2<i32>, value: vec4<i32>)
-fn textureStore_31745b() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_31745b();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_31745b();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_31745b();
-}
diff --git a/test/intrinsics/gen/textureStore/32f368.wgsl b/test/intrinsics/gen/textureStore/32f368.wgsl
deleted file mode 100644
index 50f4e66..0000000
--- a/test/intrinsics/gen/textureStore/32f368.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba16float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
-fn textureStore_32f368() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_32f368();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_32f368();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_32f368();
-}
diff --git a/test/intrinsics/gen/textureStore/331aee.wgsl b/test/intrinsics/gen/textureStore/331aee.wgsl
deleted file mode 100644
index 4bc9a4d..0000000
--- a/test/intrinsics/gen/textureStore/331aee.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba32float, write>, coords: vec3<i32>, value: vec4<f32>)
-fn textureStore_331aee() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_331aee();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_331aee();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_331aee();
-}
diff --git a/test/intrinsics/gen/textureStore/38e8d7.wgsl b/test/intrinsics/gen/textureStore/38e8d7.wgsl
deleted file mode 100644
index 6cfe7a0..0000000
--- a/test/intrinsics/gen/textureStore/38e8d7.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<r32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
-fn textureStore_38e8d7() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_38e8d7();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_38e8d7();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_38e8d7();
-}
diff --git a/test/intrinsics/gen/textureStore/3a52ac.wgsl b/test/intrinsics/gen/textureStore/3a52ac.wgsl
deleted file mode 100644
index 92cb0bb..0000000
--- a/test/intrinsics/gen/textureStore/3a52ac.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba16sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
-fn textureStore_3a52ac() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3a52ac();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_3a52ac();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_3a52ac();
-}
diff --git a/test/intrinsics/gen/textureStore/3bb7a1.wgsl b/test/intrinsics/gen/textureStore/3bb7a1.wgsl
deleted file mode 100644
index c665a5b..0000000
--- a/test/intrinsics/gen/textureStore/3bb7a1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<r32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
-fn textureStore_3bb7a1() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bb7a1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_3bb7a1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_3bb7a1();
-}
diff --git a/test/intrinsics/gen/textureStore/3bec15.wgsl b/test/intrinsics/gen/textureStore/3bec15.wgsl
deleted file mode 100644
index b56de8d..0000000
--- a/test/intrinsics/gen/textureStore/3bec15.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba8uint, write>, coords: i32, value: vec4<u32>)
-fn textureStore_3bec15() {
-  textureStore(arg_0, 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_3bec15();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_3bec15();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_3bec15();
-}
diff --git a/test/intrinsics/gen/textureStore/441ba8.wgsl b/test/intrinsics/gen/textureStore/441ba8.wgsl
deleted file mode 100644
index a110f0c..0000000
--- a/test/intrinsics/gen/textureStore/441ba8.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba32uint, write>, coords: vec3<i32>, value: vec4<u32>)
-fn textureStore_441ba8() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_441ba8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_441ba8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_441ba8();
-}
diff --git a/test/intrinsics/gen/textureStore/4fc057.wgsl b/test/intrinsics/gen/textureStore/4fc057.wgsl
deleted file mode 100644
index b746370..0000000
--- a/test/intrinsics/gen/textureStore/4fc057.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba8snorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
-fn textureStore_4fc057() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_4fc057();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_4fc057();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_4fc057();
-}
diff --git a/test/intrinsics/gen/textureStore/5a2f8f.wgsl b/test/intrinsics/gen/textureStore/5a2f8f.wgsl
deleted file mode 100644
index b9fc23d..0000000
--- a/test/intrinsics/gen/textureStore/5a2f8f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba16sint, write>, coords: i32, value: vec4<i32>)
-fn textureStore_5a2f8f() {
-  textureStore(arg_0, 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_5a2f8f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_5a2f8f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_5a2f8f();
-}
diff --git a/test/intrinsics/gen/textureStore/60975f.wgsl b/test/intrinsics/gen/textureStore/60975f.wgsl
deleted file mode 100644
index 3408855..0000000
--- a/test/intrinsics/gen/textureStore/60975f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba8unorm, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
-fn textureStore_60975f() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_60975f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_60975f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_60975f();
-}
diff --git a/test/intrinsics/gen/textureStore/682fd6.wgsl b/test/intrinsics/gen/textureStore/682fd6.wgsl
deleted file mode 100644
index 7d74607..0000000
--- a/test/intrinsics/gen/textureStore/682fd6.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rg32uint, write>, coords: vec2<i32>, value: vec4<u32>)
-fn textureStore_682fd6() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_682fd6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_682fd6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_682fd6();
-}
diff --git a/test/intrinsics/gen/textureStore/6b75c3.wgsl b/test/intrinsics/gen/textureStore/6b75c3.wgsl
deleted file mode 100644
index 16dc47d..0000000
--- a/test/intrinsics/gen/textureStore/6b75c3.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba32float, write>, coords: i32, value: vec4<f32>)
-fn textureStore_6b75c3() {
-  textureStore(arg_0, 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b75c3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_6b75c3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_6b75c3();
-}
diff --git a/test/intrinsics/gen/textureStore/6b80d2.wgsl b/test/intrinsics/gen/textureStore/6b80d2.wgsl
deleted file mode 100644
index 95535c4..0000000
--- a/test/intrinsics/gen/textureStore/6b80d2.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, write>;
-
-// fn textureStore(texture: texture_storage_1d<r32sint, write>, coords: i32, value: vec4<i32>)
-fn textureStore_6b80d2() {
-  textureStore(arg_0, 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6b80d2();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_6b80d2();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_6b80d2();
-}
diff --git a/test/intrinsics/gen/textureStore/6cff2e.wgsl b/test/intrinsics/gen/textureStore/6cff2e.wgsl
deleted file mode 100644
index 26320a2..0000000
--- a/test/intrinsics/gen/textureStore/6cff2e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, write>;
-
-// fn textureStore(texture: texture_storage_2d<r32uint, write>, coords: vec2<i32>, value: vec4<u32>)
-fn textureStore_6cff2e() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6cff2e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_6cff2e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_6cff2e();
-}
diff --git a/test/intrinsics/gen/textureStore/6da692.wgsl b/test/intrinsics/gen/textureStore/6da692.wgsl
deleted file mode 100644
index dd40882..0000000
--- a/test/intrinsics/gen/textureStore/6da692.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba16uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
-fn textureStore_6da692() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_6da692();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_6da692();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_6da692();
-}
diff --git a/test/intrinsics/gen/textureStore/731349.wgsl b/test/intrinsics/gen/textureStore/731349.wgsl
deleted file mode 100644
index ca0d0ef..0000000
--- a/test/intrinsics/gen/textureStore/731349.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba8unorm, write>, coords: vec2<i32>, value: vec4<f32>)
-fn textureStore_731349() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_731349();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_731349();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_731349();
-}
diff --git a/test/intrinsics/gen/textureStore/752da6.wgsl b/test/intrinsics/gen/textureStore/752da6.wgsl
deleted file mode 100644
index 6310341..0000000
--- a/test/intrinsics/gen/textureStore/752da6.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba32sint, write>, coords: vec2<i32>, value: vec4<i32>)
-fn textureStore_752da6() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_752da6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_752da6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_752da6();
-}
diff --git a/test/intrinsics/gen/textureStore/77c0ae.wgsl b/test/intrinsics/gen/textureStore/77c0ae.wgsl
deleted file mode 100644
index f122e9f..0000000
--- a/test/intrinsics/gen/textureStore/77c0ae.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba8uint, write>, coords: vec2<i32>, value: vec4<u32>)
-fn textureStore_77c0ae() {
-  textureStore(arg_0, vec2<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_77c0ae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_77c0ae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_77c0ae();
-}
diff --git a/test/intrinsics/gen/textureStore/7cec8d.wgsl b/test/intrinsics/gen/textureStore/7cec8d.wgsl
deleted file mode 100644
index 5b0f47b..0000000
--- a/test/intrinsics/gen/textureStore/7cec8d.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
-fn textureStore_7cec8d() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7cec8d();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_7cec8d();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_7cec8d();
-}
diff --git a/test/intrinsics/gen/textureStore/7f7fae.wgsl b/test/intrinsics/gen/textureStore/7f7fae.wgsl
deleted file mode 100644
index d1d8004..0000000
--- a/test/intrinsics/gen/textureStore/7f7fae.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba8unorm, write>, coords: i32, value: vec4<f32>)
-fn textureStore_7f7fae() {
-  textureStore(arg_0, 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_7f7fae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_7f7fae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_7f7fae();
-}
diff --git a/test/intrinsics/gen/textureStore/804942.wgsl b/test/intrinsics/gen/textureStore/804942.wgsl
deleted file mode 100644
index 6c76b00..0000000
--- a/test/intrinsics/gen/textureStore/804942.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, write>;
-
-// fn textureStore(texture: texture_storage_2d<r32sint, write>, coords: vec2<i32>, value: vec4<i32>)
-fn textureStore_804942() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_804942();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_804942();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_804942();
-}
diff --git a/test/intrinsics/gen/textureStore/805dae.wgsl b/test/intrinsics/gen/textureStore/805dae.wgsl
deleted file mode 100644
index 962a3ff..0000000
--- a/test/intrinsics/gen/textureStore/805dae.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba8snorm, write>, coords: vec2<i32>, value: vec4<f32>)
-fn textureStore_805dae() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_805dae();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_805dae();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_805dae();
-}
diff --git a/test/intrinsics/gen/textureStore/83bcc1.wgsl b/test/intrinsics/gen/textureStore/83bcc1.wgsl
deleted file mode 100644
index 657a679..0000000
--- a/test/intrinsics/gen/textureStore/83bcc1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rg32uint, write>, coords: i32, value: vec4<u32>)
-fn textureStore_83bcc1() {
-  textureStore(arg_0, 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_83bcc1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_83bcc1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_83bcc1();
-}
diff --git a/test/intrinsics/gen/textureStore/872747.wgsl b/test/intrinsics/gen/textureStore/872747.wgsl
deleted file mode 100644
index cbb964b..0000000
--- a/test/intrinsics/gen/textureStore/872747.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
-
-// fn textureStore(texture: texture_storage_1d<rg32float, write>, coords: i32, value: vec4<f32>)
-fn textureStore_872747() {
-  textureStore(arg_0, 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_872747();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_872747();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_872747();
-}
diff --git a/test/intrinsics/gen/textureStore/8e0479.wgsl b/test/intrinsics/gen/textureStore/8e0479.wgsl
deleted file mode 100644
index 98b7f8c..0000000
--- a/test/intrinsics/gen/textureStore/8e0479.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
-fn textureStore_8e0479() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8e0479();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_8e0479();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_8e0479();
-}
diff --git a/test/intrinsics/gen/textureStore/8f71a1.wgsl b/test/intrinsics/gen/textureStore/8f71a1.wgsl
deleted file mode 100644
index a1298a4..0000000
--- a/test/intrinsics/gen/textureStore/8f71a1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba16sint, write>, coords: vec3<i32>, value: vec4<i32>)
-fn textureStore_8f71a1() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_8f71a1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_8f71a1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_8f71a1();
-}
diff --git a/test/intrinsics/gen/textureStore/969534.wgsl b/test/intrinsics/gen/textureStore/969534.wgsl
deleted file mode 100644
index d87249f..0000000
--- a/test/intrinsics/gen/textureStore/969534.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba32sint, write>, coords: i32, value: vec4<i32>)
-fn textureStore_969534() {
-  textureStore(arg_0, 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_969534();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_969534();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_969534();
-}
diff --git a/test/intrinsics/gen/textureStore/9a3ecc.wgsl b/test/intrinsics/gen/textureStore/9a3ecc.wgsl
deleted file mode 100644
index 0bfd6b0..0000000
--- a/test/intrinsics/gen/textureStore/9a3ecc.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba32sint, write>, coords: vec3<i32>, value: vec4<i32>)
-fn textureStore_9a3ecc() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9a3ecc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_9a3ecc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_9a3ecc();
-}
diff --git a/test/intrinsics/gen/textureStore/9d9cd5.wgsl b/test/intrinsics/gen/textureStore/9d9cd5.wgsl
deleted file mode 100644
index 776ac7c..0000000
--- a/test/intrinsics/gen/textureStore/9d9cd5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
-fn textureStore_9d9cd5() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9d9cd5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_9d9cd5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_9d9cd5();
-}
diff --git a/test/intrinsics/gen/textureStore/9e3ec5.wgsl b/test/intrinsics/gen/textureStore/9e3ec5.wgsl
deleted file mode 100644
index 7b643ca..0000000
--- a/test/intrinsics/gen/textureStore/9e3ec5.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba16sint, write>, coords: vec2<i32>, value: vec4<i32>)
-fn textureStore_9e3ec5() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_9e3ec5();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_9e3ec5();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_9e3ec5();
-}
diff --git a/test/intrinsics/gen/textureStore/ac67aa.wgsl b/test/intrinsics/gen/textureStore/ac67aa.wgsl
deleted file mode 100644
index 19bbe72..0000000
--- a/test/intrinsics/gen/textureStore/ac67aa.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rg32uint, write>, coords: vec3<i32>, value: vec4<u32>)
-fn textureStore_ac67aa() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ac67aa();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_ac67aa();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_ac67aa();
-}
diff --git a/test/intrinsics/gen/textureStore/b706b1.wgsl b/test/intrinsics/gen/textureStore/b706b1.wgsl
deleted file mode 100644
index 6eb9f07..0000000
--- a/test/intrinsics/gen/textureStore/b706b1.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba8sint, write>, coords: vec3<i32>, value: vec4<i32>)
-fn textureStore_b706b1() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_b706b1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_b706b1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_b706b1();
-}
diff --git a/test/intrinsics/gen/textureStore/bbcb7f.wgsl b/test/intrinsics/gen/textureStore/bbcb7f.wgsl
deleted file mode 100644
index fc16ac9..0000000
--- a/test/intrinsics/gen/textureStore/bbcb7f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba8sint, write>, coords: vec2<i32>, value: vec4<i32>)
-fn textureStore_bbcb7f() {
-  textureStore(arg_0, vec2<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bbcb7f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_bbcb7f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_bbcb7f();
-}
diff --git a/test/intrinsics/gen/textureStore/be6e30.wgsl b/test/intrinsics/gen/textureStore/be6e30.wgsl
deleted file mode 100644
index 4cd6834..0000000
--- a/test/intrinsics/gen/textureStore/be6e30.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, write>;
-
-// fn textureStore(texture: texture_storage_2d<rgba16float, write>, coords: vec2<i32>, value: vec4<f32>)
-fn textureStore_be6e30() {
-  textureStore(arg_0, vec2<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_be6e30();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_be6e30();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_be6e30();
-}
diff --git a/test/intrinsics/gen/textureStore/bf775c.wgsl b/test/intrinsics/gen/textureStore/bf775c.wgsl
deleted file mode 100644
index b367132..0000000
--- a/test/intrinsics/gen/textureStore/bf775c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba8sint, write>, coords: i32, value: vec4<i32>)
-fn textureStore_bf775c() {
-  textureStore(arg_0, 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_bf775c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_bf775c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_bf775c();
-}
diff --git a/test/intrinsics/gen/textureStore/c5af1e.wgsl b/test/intrinsics/gen/textureStore/c5af1e.wgsl
deleted file mode 100644
index e4cbfa9..0000000
--- a/test/intrinsics/gen/textureStore/c5af1e.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba16float, write>, coords: vec3<i32>, value: vec4<f32>)
-fn textureStore_c5af1e() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c5af1e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_c5af1e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_c5af1e();
-}
diff --git a/test/intrinsics/gen/textureStore/c863be.wgsl b/test/intrinsics/gen/textureStore/c863be.wgsl
deleted file mode 100644
index b3d05f8..0000000
--- a/test/intrinsics/gen/textureStore/c863be.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rg32float, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>)
-fn textureStore_c863be() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_c863be();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_c863be();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_c863be();
-}
diff --git a/test/intrinsics/gen/textureStore/d73b5c.wgsl b/test/intrinsics/gen/textureStore/d73b5c.wgsl
deleted file mode 100644
index 29a764d..0000000
--- a/test/intrinsics/gen/textureStore/d73b5c.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rg32sint, write>, coords: i32, value: vec4<i32>)
-fn textureStore_d73b5c() {
-  textureStore(arg_0, 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_d73b5c();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_d73b5c();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_d73b5c();
-}
diff --git a/test/intrinsics/gen/textureStore/dd7d81.wgsl b/test/intrinsics/gen/textureStore/dd7d81.wgsl
deleted file mode 100644
index 4730c2e..0000000
--- a/test/intrinsics/gen/textureStore/dd7d81.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba8snorm, write>, coords: vec3<i32>, value: vec4<f32>)
-fn textureStore_dd7d81() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dd7d81();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_dd7d81();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_dd7d81();
-}
diff --git a/test/intrinsics/gen/textureStore/dde364.wgsl b/test/intrinsics/gen/textureStore/dde364.wgsl
deleted file mode 100644
index 7050247..0000000
--- a/test/intrinsics/gen/textureStore/dde364.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rg32uint, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>)
-fn textureStore_dde364() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_dde364();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_dde364();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_dde364();
-}
diff --git a/test/intrinsics/gen/textureStore/e885e8.wgsl b/test/intrinsics/gen/textureStore/e885e8.wgsl
deleted file mode 100644
index fd0c31c..0000000
--- a/test/intrinsics/gen/textureStore/e885e8.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba16float, write>, coords: i32, value: vec4<f32>)
-fn textureStore_e885e8() {
-  textureStore(arg_0, 1, vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_e885e8();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_e885e8();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_e885e8();
-}
diff --git a/test/intrinsics/gen/textureStore/eb702f.wgsl b/test/intrinsics/gen/textureStore/eb702f.wgsl
deleted file mode 100644
index 283888d..0000000
--- a/test/intrinsics/gen/textureStore/eb702f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<r32float, write>;
-
-// fn textureStore(texture: texture_storage_3d<r32float, write>, coords: vec3<i32>, value: vec4<f32>)
-fn textureStore_eb702f() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb702f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_eb702f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_eb702f();
-}
diff --git a/test/intrinsics/gen/textureStore/eb78b9.wgsl b/test/intrinsics/gen/textureStore/eb78b9.wgsl
deleted file mode 100644
index db051b1..0000000
--- a/test/intrinsics/gen/textureStore/eb78b9.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, write>;
-
-// fn textureStore(texture: texture_storage_3d<r32sint, write>, coords: vec3<i32>, value: vec4<i32>)
-fn textureStore_eb78b9() {
-  textureStore(arg_0, vec3<i32>(), vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_eb78b9();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_eb78b9();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_eb78b9();
-}
diff --git a/test/intrinsics/gen/textureStore/ee6acc.wgsl b/test/intrinsics/gen/textureStore/ee6acc.wgsl
deleted file mode 100644
index b6db2d0..0000000
--- a/test/intrinsics/gen/textureStore/ee6acc.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
-
-// fn textureStore(texture: texture_storage_3d<rg32float, write>, coords: vec3<i32>, value: vec4<f32>)
-fn textureStore_ee6acc() {
-  textureStore(arg_0, vec3<i32>(), vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ee6acc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_ee6acc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_ee6acc();
-}
diff --git a/test/intrinsics/gen/textureStore/ef9f2f.wgsl b/test/intrinsics/gen/textureStore/ef9f2f.wgsl
deleted file mode 100644
index 51c8545..0000000
--- a/test/intrinsics/gen/textureStore/ef9f2f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, write>;
-
-// fn textureStore(texture: texture_storage_3d<r32uint, write>, coords: vec3<i32>, value: vec4<u32>)
-fn textureStore_ef9f2f() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_ef9f2f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_ef9f2f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_ef9f2f();
-}
diff --git a/test/intrinsics/gen/textureStore/f8dead.wgsl b/test/intrinsics/gen/textureStore/f8dead.wgsl
deleted file mode 100644
index 8cd8a24..0000000
--- a/test/intrinsics/gen/textureStore/f8dead.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, write>;
-
-// fn textureStore(texture: texture_storage_3d<rgba8uint, write>, coords: vec3<i32>, value: vec4<u32>)
-fn textureStore_f8dead() {
-  textureStore(arg_0, vec3<i32>(), vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f8dead();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_f8dead();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_f8dead();
-}
diff --git a/test/intrinsics/gen/textureStore/f9be83.wgsl b/test/intrinsics/gen/textureStore/f9be83.wgsl
deleted file mode 100644
index a5f5b60..0000000
--- a/test/intrinsics/gen/textureStore/f9be83.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rg32sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
-fn textureStore_f9be83() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_f9be83();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_f9be83();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_f9be83();
-}
diff --git a/test/intrinsics/gen/textureStore/fb9a8f.wgsl b/test/intrinsics/gen/textureStore/fb9a8f.wgsl
deleted file mode 100644
index e8002d0..0000000
--- a/test/intrinsics/gen/textureStore/fb9a8f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, write>;
-
-// fn textureStore(texture: texture_storage_1d<rgba32uint, write>, coords: i32, value: vec4<u32>)
-fn textureStore_fb9a8f() {
-  textureStore(arg_0, 1, vec4<u32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fb9a8f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_fb9a8f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_fb9a8f();
-}
diff --git a/test/intrinsics/gen/textureStore/fbf53f.wgsl b/test/intrinsics/gen/textureStore/fbf53f.wgsl
deleted file mode 100644
index eefd540..0000000
--- a/test/intrinsics/gen/textureStore/fbf53f.wgsl
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-@group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
-
-// fn textureStore(texture: texture_storage_2d_array<rgba8sint, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>)
-fn textureStore_fbf53f() {
-  textureStore(arg_0, vec2<i32>(), 1, vec4<i32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  textureStore_fbf53f();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  textureStore_fbf53f();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  textureStore_fbf53f();
-}
diff --git a/test/intrinsics/gen/transpose/2585cd.wgsl b/test/intrinsics/gen/transpose/2585cd.wgsl
deleted file mode 100644
index d693d25..0000000
--- a/test/intrinsics/gen/transpose/2585cd.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<4, 3, f32>) -> mat<3, 4, f32>
-fn transpose_2585cd() {
-  var res: mat3x4<f32> = transpose(mat4x3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_2585cd();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_2585cd();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_2585cd();
-}
diff --git a/test/intrinsics/gen/transpose/31d679.wgsl b/test/intrinsics/gen/transpose/31d679.wgsl
deleted file mode 100644
index 2f5b72a..0000000
--- a/test/intrinsics/gen/transpose/31d679.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<2, 2, f32>) -> mat<2, 2, f32>
-fn transpose_31d679() {
-  var res: mat2x2<f32> = transpose(mat2x2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_31d679();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_31d679();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_31d679();
-}
diff --git a/test/intrinsics/gen/transpose/31e37e.wgsl b/test/intrinsics/gen/transpose/31e37e.wgsl
deleted file mode 100644
index 0246329..0000000
--- a/test/intrinsics/gen/transpose/31e37e.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<4, 2, f32>) -> mat<2, 4, f32>
-fn transpose_31e37e() {
-  var res: mat2x4<f32> = transpose(mat4x2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_31e37e();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_31e37e();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_31e37e();
-}
diff --git a/test/intrinsics/gen/transpose/4ce359.wgsl b/test/intrinsics/gen/transpose/4ce359.wgsl
deleted file mode 100644
index 5f8c9cc..0000000
--- a/test/intrinsics/gen/transpose/4ce359.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<2, 4, f32>) -> mat<4, 2, f32>
-fn transpose_4ce359() {
-  var res: mat4x2<f32> = transpose(mat2x4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_4ce359();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_4ce359();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_4ce359();
-}
diff --git a/test/intrinsics/gen/transpose/4dc9a1.wgsl b/test/intrinsics/gen/transpose/4dc9a1.wgsl
deleted file mode 100644
index f98f9e2..0000000
--- a/test/intrinsics/gen/transpose/4dc9a1.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<2, 3, f32>) -> mat<3, 2, f32>
-fn transpose_4dc9a1() {
-  var res: mat3x2<f32> = transpose(mat2x3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_4dc9a1();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_4dc9a1();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_4dc9a1();
-}
diff --git a/test/intrinsics/gen/transpose/854336.wgsl b/test/intrinsics/gen/transpose/854336.wgsl
deleted file mode 100644
index 9dccf31..0000000
--- a/test/intrinsics/gen/transpose/854336.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<3, 3, f32>) -> mat<3, 3, f32>
-fn transpose_854336() {
-  var res: mat3x3<f32> = transpose(mat3x3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_854336();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_854336();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_854336();
-}
diff --git a/test/intrinsics/gen/transpose/c1b600.wgsl b/test/intrinsics/gen/transpose/c1b600.wgsl
deleted file mode 100644
index e0fc4fc..0000000
--- a/test/intrinsics/gen/transpose/c1b600.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<4, 4, f32>) -> mat<4, 4, f32>
-fn transpose_c1b600() {
-  var res: mat4x4<f32> = transpose(mat4x4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_c1b600();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_c1b600();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_c1b600();
-}
diff --git a/test/intrinsics/gen/transpose/d8f8ba.wgsl b/test/intrinsics/gen/transpose/d8f8ba.wgsl
deleted file mode 100644
index a09be46..0000000
--- a/test/intrinsics/gen/transpose/d8f8ba.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<3, 4, f32>) -> mat<4, 3, f32>
-fn transpose_d8f8ba() {
-  var res: mat4x3<f32> = transpose(mat3x4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_d8f8ba();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_d8f8ba();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_d8f8ba();
-}
diff --git a/test/intrinsics/gen/transpose/ed4bdc.wgsl b/test/intrinsics/gen/transpose/ed4bdc.wgsl
deleted file mode 100644
index 0ed170e..0000000
--- a/test/intrinsics/gen/transpose/ed4bdc.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn transpose(mat<3, 2, f32>) -> mat<2, 3, f32>
-fn transpose_ed4bdc() {
-  var res: mat2x3<f32> = transpose(mat3x2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  transpose_ed4bdc();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  transpose_ed4bdc();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  transpose_ed4bdc();
-}
diff --git a/test/intrinsics/gen/trunc/562d05.wgsl b/test/intrinsics/gen/trunc/562d05.wgsl
deleted file mode 100644
index 65a0b42..0000000
--- a/test/intrinsics/gen/trunc/562d05.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn trunc(vec<3, f32>) -> vec<3, f32>
-fn trunc_562d05() {
-  var res: vec3<f32> = trunc(vec3<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  trunc_562d05();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  trunc_562d05();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  trunc_562d05();
-}
diff --git a/test/intrinsics/gen/trunc/e183aa.wgsl b/test/intrinsics/gen/trunc/e183aa.wgsl
deleted file mode 100644
index 186a1e9..0000000
--- a/test/intrinsics/gen/trunc/e183aa.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn trunc(vec<4, f32>) -> vec<4, f32>
-fn trunc_e183aa() {
-  var res: vec4<f32> = trunc(vec4<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  trunc_e183aa();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  trunc_e183aa();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  trunc_e183aa();
-}
diff --git a/test/intrinsics/gen/trunc/eb83df.wgsl b/test/intrinsics/gen/trunc/eb83df.wgsl
deleted file mode 100644
index 4da7b28..0000000
--- a/test/intrinsics/gen/trunc/eb83df.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn trunc(f32) -> f32
-fn trunc_eb83df() {
-  var res: f32 = trunc(1.0);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  trunc_eb83df();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  trunc_eb83df();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  trunc_eb83df();
-}
diff --git a/test/intrinsics/gen/trunc/f370d3.wgsl b/test/intrinsics/gen/trunc/f370d3.wgsl
deleted file mode 100644
index 0587914..0000000
--- a/test/intrinsics/gen/trunc/f370d3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn trunc(vec<2, f32>) -> vec<2, f32>
-fn trunc_f370d3() {
-  var res: vec2<f32> = trunc(vec2<f32>());
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  trunc_f370d3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  trunc_f370d3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  trunc_f370d3();
-}
diff --git a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl b/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl
deleted file mode 100644
index db4b36b..0000000
--- a/test/intrinsics/gen/unpack2x16float/32a5cf.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn unpack2x16float(u32) -> vec2<f32>
-fn unpack2x16float_32a5cf() {
-  var res: vec2<f32> = unpack2x16float(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  unpack2x16float_32a5cf();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  unpack2x16float_32a5cf();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  unpack2x16float_32a5cf();
-}
diff --git a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl b/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl
deleted file mode 100644
index 0ff4ddd..0000000
--- a/test/intrinsics/gen/unpack2x16snorm/b4aea6.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn unpack2x16snorm(u32) -> vec2<f32>
-fn unpack2x16snorm_b4aea6() {
-  var res: vec2<f32> = unpack2x16snorm(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  unpack2x16snorm_b4aea6();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  unpack2x16snorm_b4aea6();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  unpack2x16snorm_b4aea6();
-}
diff --git a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl b/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl
deleted file mode 100644
index 7a5e3ad..0000000
--- a/test/intrinsics/gen/unpack2x16unorm/7699c0.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn unpack2x16unorm(u32) -> vec2<f32>
-fn unpack2x16unorm_7699c0() {
-  var res: vec2<f32> = unpack2x16unorm(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  unpack2x16unorm_7699c0();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  unpack2x16unorm_7699c0();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  unpack2x16unorm_7699c0();
-}
diff --git a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl b/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl
deleted file mode 100644
index 0692bf2..0000000
--- a/test/intrinsics/gen/unpack4x8snorm/523fb3.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn unpack4x8snorm(u32) -> vec4<f32>
-fn unpack4x8snorm_523fb3() {
-  var res: vec4<f32> = unpack4x8snorm(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  unpack4x8snorm_523fb3();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  unpack4x8snorm_523fb3();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  unpack4x8snorm_523fb3();
-}
diff --git a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl b/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl
deleted file mode 100644
index f0fcae3..0000000
--- a/test/intrinsics/gen/unpack4x8unorm/750c74.wgsl
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn unpack4x8unorm(u32) -> vec4<f32>
-fn unpack4x8unorm_750c74() {
-  var res: vec4<f32> = unpack4x8unorm(1u);
-}
-
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  unpack4x8unorm_750c74();
-  return vec4<f32>();
-}
-
-@stage(fragment)
-fn fragment_main() {
-  unpack4x8unorm_750c74();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  unpack4x8unorm_750c74();
-}
diff --git a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl b/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl
deleted file mode 100644
index a006547..0000000
--- a/test/intrinsics/gen/workgroupBarrier/a17f7f.wgsl
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Tint Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by tools/intrinsic-gen
-// using the template:
-//   test/intrinsics/intrinsics.wgsl.tmpl
-// and the intrinsic defintion file:
-//   src/intrinsics.def
-//
-// Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// fn workgroupBarrier()
-fn workgroupBarrier_a17f7f() {
-  workgroupBarrier();
-}
-
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  workgroupBarrier_a17f7f();
-}
diff --git a/test/intrinsics/intrinsics.wgsl.tmpl b/test/intrinsics/intrinsics.wgsl.tmpl
deleted file mode 100644
index 254fb16..0000000
--- a/test/intrinsics/intrinsics.wgsl.tmpl
+++ /dev/null
@@ -1,273 +0,0 @@
-{{- /*
---------------------------------------------------------------------------------
-Template file for use with tools/intrinsic-gen to generate the wgsl files in the
-./gen/... subdirectories
-
-See:
-* tools/cmd/intrinsic-gen/gen for structures used by this template
-* https://golang.org/pkg/text/template/ for documentation on the template syntax
---------------------------------------------------------------------------------
-*/ -}}
-
-{{- /* For each permutation of each overload of each function... */ -}}
-{{- range .Sem.Functions -}}
-{{-   range .Overloads  -}}
-{{-     range Permute . -}}
-{{- /*    Generate a ./gen/<function>/<permuataion-hash>.wgsl file using
-          the Permutation macro defined below                             */ -}}
-{{-       $file := printf "./gen/%v/%v.wgsl" .Function.Name .Hash -}}
-{{-       $content := Eval "Permutation" . -}}
-{{-       WriteFile $file $content -}}
-{{-     end  }}
-{{-   end  }}
-{{- end  }}
-
-
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-                          define "Permutation"                            -}}
-{{- /* Emits the body of the intrinsic permuation .wgsl file              */ -}}
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-   $function    := .Function.Name -}}
-{{-   $permutation := printf "%v_%v" $function .Hash -}}
-{{-   $args        := Map -}}
-
-{{- /* Generate RW storage buffer parameters */ -}}
-{{-   $sb_rw_fields := Eval "EmitBufferFields" "overload"    .
-                                               "var_name"    "sb_rw"
-                                               "storage"     "storage"
-                                               "access"      "read_write"
-                                               "args"        $args -}}
-{{-   if $sb_rw_fields -}}
-struct SB_RW {
-{{- $sb_rw_fields -}}
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-{{    end -}}
-
-{{- /* Generate RO storage buffer parameters */ -}}
-{{-   $sb_ro_fields := Eval "EmitBufferFields" "overload"    .
-                                               "var_name"    "sb_ro"
-                                               "storage"     "storage"
-                                               "access"      "read"
-                                               "args"        $args -}}
-{{-   if $sb_ro_fields -}}
-struct SB_RO {
-{{- $sb_ro_fields -}}
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-{{    end -}}
-
-{{- /* Generate uniform buffer parameters */ -}}
-{{-   $ub_fields := Eval "EmitBufferFields" "overload"    .
-                                            "var_name"    "ub"
-                                            "storage"     "uniform"
-                                            "access"      "read"
-                                            "args"        $args -}}
-{{-   if $ub_fields -}}
-struct UB {
-{{- $ub_fields -}}
-};
-@group(0) @binding(1) var<uniform> ub : UB;
-{{    end -}}
-
-{{- /* Generate module-scoped handle variables */ -}}
-{{-   range $i, $p := .Parameters  }}
-{{-     $class := Eval "StorageClass" $p.Type -}}
-{{-     if eq "ptr" $p.Type.Target.Name -}}
-{{-       $el_type := Eval "Type" (index $p.Type.TemplateArguments 1)}}
-{{-       if eq "handle" $class -}}
-            @group(1) @binding({{$i}}) var arg_{{$i}}: {{$el_type}};
-{{          $args.Put $i (printf "&arg_%v" $i) -}}
-{{-       else if eq "workgroup" $class -}}
-            var<workgroup> arg_{{$i}}: {{$el_type}};
-{{          $args.Put $i (printf "&arg_%v" $i) -}}
-{{-       else if eq "private" $class -}}
-            var<private> arg_{{$i}}: {{$el_type}};
-{{          $args.Put $i (printf "&arg_%v" $i) -}}
-{{-       end -}}
-{{-     else -}}
-{{-       $type := Eval "Type" $p.Type}}
-{{-       if eq "handle" $class -}}
-            @group(1) @binding({{$i}}) var arg_{{$i}}: {{$type}};
-{{          $args.Put $i (printf "arg_%v" $i) -}}
-{{-       else if eq "workgroup" $class -}}
-            var<workgroup> arg_{{$i}}: {{$type}};
-{{          $args.Put $i (printf "arg_%v" $i) -}}
-{{-       else if eq "private" $class -}}
-            var<private> arg_{{$i}}: {{$type}};
-{{          $args.Put $i (printf "arg_%v" $i) -}}
-{{-       end -}}
-{{-     end -}}
-{{-   end -}}
-
-{{- /* Generate the function that calls the intrinsic */ -}}
-{{- /*newline*/}}
-// {{$.Overload}}
-fn {{$permutation}}() {
-{{/* Build the parameters either as 'var' or inline values */ -}}
-{{-   range $i, $p := .Parameters -}}
-{{-     $class := Eval "StorageClass" $p.Type -}}
-{{-     if eq "function" $class -}}
-{{-       if eq "ptr" $p.Type.Target.Name -}}
-{{- /*indent*/}}  var arg_{{$i}}: {{template "Type" index $p.Type.TemplateArguments 1}};
-{{          $args.Put $i (printf "&arg_%v" $i) -}}
-{{-       else -}}
-{{-         $args.Put $i (Eval "ArgumentValue" $p) -}}
-{{-       end -}}
-{{-     end -}}
-{{-   end -}}
-
-{{- /* Make the call to the intrinsic */ -}}
-{{- /*indent*/}}  {{/*indent*/ -}}
-{{-   if .ReturnType -}}
-  var res{{if IsDeclarable .ReturnType}}: {{template "Type" .ReturnType}}{{end}} = {{/* preserve space after = */ -}}
-{{-   end -}}
-  {{$function}}(
-{{-   range $i, $p := .Parameters -}}
-{{-     if $i -}}, {{end}}{{$args.Get $i -}}
-{{-   end -}}
-  );
-}
-{{/*new line*/ -}}
-
-{{- if .CanBeUsedInStage.Vertex }}
-@stage(vertex)
-fn vertex_main() -> @builtin(position) vec4<f32> {
-  {{$permutation}}();
-  return vec4<f32>();
-}
-{{ end -}}
-
-{{- if .CanBeUsedInStage.Fragment }}
-@stage(fragment)
-fn fragment_main() {
-  {{$permutation}}();
-}
-{{ end -}}
-
-{{- if .CanBeUsedInStage.Compute }}
-@stage(compute) @workgroup_size(1)
-fn compute_main() {
-  {{$permutation}}();
-}
-{{ end -}}
-
-{{- end -}}
-
-
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-                       define "EmitBufferFields"                          -}}
-{{- /* Emits a struct with the fields that match the given storage class  */ -}}
-{{- /* and access.                                                        */ -}}
-{{- /* Argument is a map with the following expected keys:                */ -}}
-{{- /*  'overload' - the current overload                                 */ -}}
-{{- /*  'var_name' - name of the variable of the structure type           */ -}}
-{{- /*  'storage'  - filtered storage class                               */ -}}
-{{- /*  'access'   - filtered access                                      */ -}}
-{{- /*  'args'     - argument map that's populated with the fields        */ -}}
-{{- /* ------------------------------------------------------------------ */ -}}
-{{- $overload       := .Get "overload" -}}
-{{- $var_name       := .Get "var_name" -}}
-{{- $filter_storage := .Get "storage"  -}}
-{{- $filter_access  := .Get "access"   -}}
-{{- $args           := .Get "args"     -}}
-{{-   range $i, $p := $overload.Parameters  }}
-{{-     $storage := Eval "StorageClass" $p.Type -}}
-{{-     $access  := Eval "Access"       $p.Type -}}
-{{-     if and (eq $filter_storage $storage) (eq $filter_access $access) }}
-{{-       if eq "ptr" $p.Type.Target.Name  }}
-  arg_{{$i}}: {{template "Type" (index $p.Type.TemplateArguments 1)}};
-{{          $args.Put $i (printf "&%v.arg_%v" $var_name $i) -}}
-{{-       else  }}
-  arg_{{$i}}: {{template "Type" $p.Type}};
-{{          $args.Put $i (printf "%v.arg_%v" $var_name $i) -}}
-{{-       end -}}
-{{-     end -}}
-{{-   end -}}
-{{ end -}}
-
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-                           define "StorageClass"                          -}}
-{{- /* Returns the storage class for the given Fully Qualified Name       */ -}}
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-   $name := .Target.Name -}}
-{{-   if             eq $name "array"   -}}storage
-{{-   else if HasPrefix $name "texture" -}}handle
-{{-   else if HasPrefix $name "sampler" -}}handle
-{{-   else if        eq $name "ptr"     -}}{{(index .TemplateArguments 0).Target.Name}}
-{{-   else                              -}}function
-{{-   end -}}
-{{- end -}}
-
-
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-                           define "Access"                                -}}
-{{- /* Returns the access for the given Fully Qualified Name              */ -}}
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-   $name := .Target.Name -}}
-{{-   if eq $name "ptr"     -}}{{(index .TemplateArguments 2).Target.Name}}
-{{-   else -}}
-{{- /*  Emit the default for the storage class */ -}}
-{{- /*  https://gpuweb.github.io/gpuweb/wgsl/#storage-class */ -}}
-{{-     $storage := Eval "StorageClass" . -}}
-{{-          if eq $storage "function" -}}read_write
-{{-     else if eq $storage "private" -}}read_write
-{{-     else if eq $storage "workgroup" -}}read_write
-{{-     else if eq $storage "uniform" -}}read
-{{-     else if eq $storage "storage" -}}read
-{{-     else if eq $storage "handle" -}}read
-{{-     end -}}
-{{-   end -}}
-{{- end -}}
-
-
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-                          define "ArgumentValue"                          -}}
-{{- /* Returns a value that can be used for the parameter argument        */ -}}
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-   $ty := .Type -}}
-{{-   if      eq $ty.Target.Name "i32" -}}
-{{- /* If the parameter has the name 'level', then use '0' as the value.  */ -}}
-{{- /* Some texture arguments require the level parameter to be 0, and    */ -}}
-{{- /* constraint is not described in the definition file.                */ -}}
-{{-     if   eq .Name "level"            -}}0
-{{-     else                             -}}1
-{{-     end                              -}}
-{{-   else if eq $ty.Target.Name "u32" -}}1u
-{{-   else if eq $ty.Target.Name "f32" -}}1.0
-{{-   else                             -}}{{template "Type" $ty}}()
-{{-   end                              -}}
-{{- end -}}
-
-
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-                                define "Type"                             -}}
-{{- /* Emits the WGSL for the Fully Qualified Name argument               */ -}}
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-   if IsType .Target -}}
-{{-     if      eq .Target.Name "vec" -}}vec{{index .TemplateArguments 0}}<{{template "Type" index .TemplateArguments 1}}>
-{{-     else if eq .Target.Name "mat" -}}mat{{index .TemplateArguments 0}}x{{index .TemplateArguments 1}}<{{template "Type" index .TemplateArguments 2}}>
-{{-     else                          -}}{{.Target.Name}}{{template "TemplateArguments" .TemplateArguments}}
-{{-     end                           -}}
-{{-   else if IsEnumEntry   .Target   -}}{{.Target.Name}}
-{{-   else if IsEnumMatcher .Target   -}}{{(index .Target.Options 0).Name}}
-{{-   else                            -}}<unhandled-fully-qualified-name-target={{- printf "%T" .Target -}}>
-{{-   end                             -}}
-{{- end -}}
-
-
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-                          define "TemplateArguments"                      -}}
-{{- /* Emits the WGSL for the template argument list                      */ -}}
-{{- /* ------------------------------------------------------------------ */ -}}
-{{-   if . -}}
-<
-{{-    range $i, $a := . -}}
-{{-      if $i -}}, {{  end -}}
-{{-      if IsInt $a -}}{{- . -}}
-{{-      else        -}}{{- template "Type" $a -}}
-{{-      end -}}
-{{-    end -}}
->
-{{-   end -}}
-{{- end -}}
diff --git a/test/intrinsics/repeated_use.wgsl.expected.glsl b/test/intrinsics/repeated_use.wgsl.expected.glsl
deleted file mode 100644
index f759523..0000000
--- a/test/intrinsics/repeated_use.wgsl.expected.glsl
+++ /dev/null
@@ -1,105 +0,0 @@
-SKIP: FAILED
-
-intrinsics/repeated_use.wgsl:5:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:6:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:7:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:9:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:10:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:11:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1., 2., 3.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:13:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:14:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:15:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1., 2.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:17:9 warning: use of deprecated intrinsic
-    _ = isNormal(1.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:18:9 warning: use of deprecated intrinsic
-    _ = isNormal(2.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:19:9 warning: use of deprecated intrinsic
-    _ = isNormal(3.);
-        ^^^^^^^^
-
-#version 310 es
-precision mediump float;
-
-bvec4 tint_isNormal(vec4 param_0) {
-  uint4 exponent = asuint(param_0) & 0x7f80000;
-  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-bvec3 tint_isNormal_1(vec3 param_0) {
-  uint3 exponent = asuint(param_0) & 0x7f80000;
-  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-bvec2 tint_isNormal_2(vec2 param_0) {
-  uint2 exponent = asuint(param_0) & 0x7f80000;
-  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-bool tint_isNormal_3(float param_0) {
-  uint exponent = asuint(param_0) & 0x7f80000;
-  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-
-void tint_symbol() {
-  tint_isNormal(vec4(0.0f, 0.0f, 0.0f, 0.0f));
-  tint_isNormal(vec4(1.0f));
-  tint_isNormal(vec4(1.0f, 2.0f, 3.0f, 4.0f));
-  tint_isNormal_1(vec3(0.0f, 0.0f, 0.0f));
-  tint_isNormal_1(vec3(1.0f));
-  tint_isNormal_1(vec3(1.0f, 2.0f, 3.0f));
-  tint_isNormal_2(vec2(0.0f, 0.0f));
-  tint_isNormal_2(vec2(1.0f));
-  tint_isNormal_2(vec2(1.0f, 2.0f));
-  tint_isNormal_3(1.0f);
-  tint_isNormal_3(2.0f);
-  tint_isNormal_3(3.0f);
-}
-
-layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
-void main() {
-  tint_symbol();
-  return;
-}
-Error parsing GLSL shader:
-ERROR: 0:5: 'uint4' : undeclared identifier 
-ERROR: 0:5: '' : compilation terminated 
-ERROR: 2 compilation errors.  No code generated.
-
-
-
diff --git a/test/intrinsics/repeated_use.wgsl.expected.hlsl b/test/intrinsics/repeated_use.wgsl.expected.hlsl
deleted file mode 100644
index 5886624..0000000
--- a/test/intrinsics/repeated_use.wgsl.expected.hlsl
+++ /dev/null
@@ -1,88 +0,0 @@
-intrinsics/repeated_use.wgsl:5:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:6:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:7:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:9:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:10:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:11:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1., 2., 3.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:13:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:14:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:15:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1., 2.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:17:9 warning: use of deprecated intrinsic
-    _ = isNormal(1.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:18:9 warning: use of deprecated intrinsic
-    _ = isNormal(2.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:19:9 warning: use of deprecated intrinsic
-    _ = isNormal(3.);
-        ^^^^^^^^
-
-bool4 tint_isNormal(float4 param_0) {
-  uint4 exponent = asuint(param_0) & 0x7f80000;
-  uint4 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-bool3 tint_isNormal_1(float3 param_0) {
-  uint3 exponent = asuint(param_0) & 0x7f80000;
-  uint3 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-bool2 tint_isNormal_2(float2 param_0) {
-  uint2 exponent = asuint(param_0) & 0x7f80000;
-  uint2 clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-bool tint_isNormal_3(float param_0) {
-  uint exponent = asuint(param_0) & 0x7f80000;
-  uint clamped = clamp(exponent, 0x0080000, 0x7f00000);
-  return clamped == exponent;
-}
-
-[numthreads(1, 1, 1)]
-void main() {
-  tint_isNormal(float4(0.0f, 0.0f, 0.0f, 0.0f));
-  tint_isNormal(float4((1.0f).xxxx));
-  tint_isNormal(float4(1.0f, 2.0f, 3.0f, 4.0f));
-  tint_isNormal_1(float3(0.0f, 0.0f, 0.0f));
-  tint_isNormal_1(float3((1.0f).xxx));
-  tint_isNormal_1(float3(1.0f, 2.0f, 3.0f));
-  tint_isNormal_2(float2(0.0f, 0.0f));
-  tint_isNormal_2(float2((1.0f).xx));
-  tint_isNormal_2(float2(1.0f, 2.0f));
-  tint_isNormal_3(1.0f);
-  tint_isNormal_3(2.0f);
-  tint_isNormal_3(3.0f);
-  return;
-}
diff --git a/test/intrinsics/repeated_use.wgsl.expected.msl b/test/intrinsics/repeated_use.wgsl.expected.msl
deleted file mode 100644
index 848c224..0000000
--- a/test/intrinsics/repeated_use.wgsl.expected.msl
+++ /dev/null
@@ -1,67 +0,0 @@
-intrinsics/repeated_use.wgsl:5:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:6:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:7:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:9:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:10:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:11:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1., 2., 3.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:13:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:14:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:15:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1., 2.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:17:9 warning: use of deprecated intrinsic
-    _ = isNormal(1.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:18:9 warning: use of deprecated intrinsic
-    _ = isNormal(2.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:19:9 warning: use of deprecated intrinsic
-    _ = isNormal(3.);
-        ^^^^^^^^
-
-#include <metal_stdlib>
-
-using namespace metal;
-kernel void tint_symbol() {
-  isnormal(float4());
-  isnormal(float4(1.0f));
-  isnormal(float4(1.0f, 2.0f, 3.0f, 4.0f));
-  isnormal(float3());
-  isnormal(float3(1.0f));
-  isnormal(float3(1.0f, 2.0f, 3.0f));
-  isnormal(float2());
-  isnormal(float2(1.0f));
-  isnormal(float2(1.0f, 2.0f));
-  isnormal(1.0f);
-  isnormal(2.0f);
-  isnormal(3.0f);
-  return;
-}
-
diff --git a/test/intrinsics/repeated_use.wgsl.expected.spvasm b/test/intrinsics/repeated_use.wgsl.expected.spvasm
deleted file mode 100644
index 3e3beb0..0000000
--- a/test/intrinsics/repeated_use.wgsl.expected.spvasm
+++ /dev/null
@@ -1,168 +0,0 @@
-intrinsics/repeated_use.wgsl:5:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:6:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:7:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:9:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:10:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:11:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1., 2., 3.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:13:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:14:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:15:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1., 2.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:17:9 warning: use of deprecated intrinsic
-    _ = isNormal(1.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:18:9 warning: use of deprecated intrinsic
-    _ = isNormal(2.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:19:9 warning: use of deprecated intrinsic
-    _ = isNormal(3.);
-        ^^^^^^^^
-
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 0
-; Bound: 109
-; Schema: 0
-               OpCapability Shader
-         %11 = OpExtInstImport "GLSL.std.450"
-               OpMemoryModel Logical GLSL450
-               OpEntryPoint GLCompute %main "main"
-               OpExecutionMode %main LocalSize 1 1 1
-               OpName %main "main"
-       %void = OpTypeVoid
-          %1 = OpTypeFunction %void
-       %bool = OpTypeBool
-     %v4bool = OpTypeVector %bool 4
-      %float = OpTypeFloat 32
-    %v4float = OpTypeVector %float 4
-         %10 = OpConstantNull %v4float
-       %uint = OpTypeInt 32 0
-%uint_133693440 = OpConstant %uint 133693440
-%uint_524288 = OpConstant %uint 524288
-%uint_133169152 = OpConstant %uint 133169152
-     %v4uint = OpTypeVector %uint 4
-    %float_1 = OpConstant %float 1
-         %25 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
-    %float_2 = OpConstant %float 2
-    %float_3 = OpConstant %float 3
-    %float_4 = OpConstant %float 4
-         %36 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
-     %v3bool = OpTypeVector %bool 3
-    %v3float = OpTypeVector %float 3
-         %46 = OpConstantNull %v3float
-     %v3uint = OpTypeVector %uint 3
-         %55 = OpConstantComposite %v3float %float_1 %float_1 %float_1
-         %63 = OpConstantComposite %v3float %float_1 %float_2 %float_3
-     %v2bool = OpTypeVector %bool 2
-    %v2float = OpTypeVector %float 2
-         %73 = OpConstantNull %v2float
-     %v2uint = OpTypeVector %uint 2
-         %82 = OpConstantComposite %v2float %float_1 %float_1
-         %90 = OpConstantComposite %v2float %float_1 %float_2
-       %main = OpFunction %void None %1
-          %4 = OpLabel
-         %17 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
-         %18 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
-         %19 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
-         %20 = OpBitcast %v4uint %10
-         %21 = OpBitwiseAnd %v4uint %20 %17
-         %22 = OpExtInst %v4uint %11 UClamp %21 %18 %19
-          %5 = OpIEqual %v4bool %21 %22
-         %26 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
-         %27 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
-         %28 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
-         %29 = OpBitcast %v4uint %25
-         %30 = OpBitwiseAnd %v4uint %29 %26
-         %31 = OpExtInst %v4uint %11 UClamp %30 %27 %28
-         %23 = OpIEqual %v4bool %30 %31
-         %37 = OpCompositeConstruct %v4uint %uint_133693440 %uint_133693440 %uint_133693440 %uint_133693440
-         %38 = OpCompositeConstruct %v4uint %uint_524288 %uint_524288 %uint_524288 %uint_524288
-         %39 = OpCompositeConstruct %v4uint %uint_133169152 %uint_133169152 %uint_133169152 %uint_133169152
-         %40 = OpBitcast %v4uint %36
-         %41 = OpBitwiseAnd %v4uint %40 %37
-         %42 = OpExtInst %v4uint %11 UClamp %41 %38 %39
-         %32 = OpIEqual %v4bool %41 %42
-         %48 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
-         %49 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
-         %50 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
-         %51 = OpBitcast %v3uint %46
-         %52 = OpBitwiseAnd %v3uint %51 %48
-         %53 = OpExtInst %v3uint %11 UClamp %52 %49 %50
-         %43 = OpIEqual %v3bool %52 %53
-         %56 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
-         %57 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
-         %58 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
-         %59 = OpBitcast %v3uint %55
-         %60 = OpBitwiseAnd %v3uint %59 %56
-         %61 = OpExtInst %v3uint %11 UClamp %60 %57 %58
-         %54 = OpIEqual %v3bool %60 %61
-         %64 = OpCompositeConstruct %v3uint %uint_133693440 %uint_133693440 %uint_133693440
-         %65 = OpCompositeConstruct %v3uint %uint_524288 %uint_524288 %uint_524288
-         %66 = OpCompositeConstruct %v3uint %uint_133169152 %uint_133169152 %uint_133169152
-         %67 = OpBitcast %v3uint %63
-         %68 = OpBitwiseAnd %v3uint %67 %64
-         %69 = OpExtInst %v3uint %11 UClamp %68 %65 %66
-         %62 = OpIEqual %v3bool %68 %69
-         %75 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
-         %76 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
-         %77 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
-         %78 = OpBitcast %v2uint %73
-         %79 = OpBitwiseAnd %v2uint %78 %75
-         %80 = OpExtInst %v2uint %11 UClamp %79 %76 %77
-         %70 = OpIEqual %v2bool %79 %80
-         %83 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
-         %84 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
-         %85 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
-         %86 = OpBitcast %v2uint %82
-         %87 = OpBitwiseAnd %v2uint %86 %83
-         %88 = OpExtInst %v2uint %11 UClamp %87 %84 %85
-         %81 = OpIEqual %v2bool %87 %88
-         %91 = OpCompositeConstruct %v2uint %uint_133693440 %uint_133693440
-         %92 = OpCompositeConstruct %v2uint %uint_524288 %uint_524288
-         %93 = OpCompositeConstruct %v2uint %uint_133169152 %uint_133169152
-         %94 = OpBitcast %v2uint %90
-         %95 = OpBitwiseAnd %v2uint %94 %91
-         %96 = OpExtInst %v2uint %11 UClamp %95 %92 %93
-         %89 = OpIEqual %v2bool %95 %96
-         %98 = OpBitcast %uint %float_1
-         %99 = OpBitwiseAnd %uint %98 %uint_133693440
-        %100 = OpExtInst %uint %11 UClamp %99 %uint_524288 %uint_133169152
-         %97 = OpIEqual %bool %99 %100
-        %102 = OpBitcast %uint %float_2
-        %103 = OpBitwiseAnd %uint %102 %uint_133693440
-        %104 = OpExtInst %uint %11 UClamp %103 %uint_524288 %uint_133169152
-        %101 = OpIEqual %bool %103 %104
-        %106 = OpBitcast %uint %float_3
-        %107 = OpBitwiseAnd %uint %106 %uint_133693440
-        %108 = OpExtInst %uint %11 UClamp %107 %uint_524288 %uint_133169152
-        %105 = OpIEqual %bool %107 %108
-               OpReturn
-               OpFunctionEnd
diff --git a/test/intrinsics/repeated_use.wgsl.expected.wgsl b/test/intrinsics/repeated_use.wgsl.expected.wgsl
deleted file mode 100644
index 3f21e25..0000000
--- a/test/intrinsics/repeated_use.wgsl.expected.wgsl
+++ /dev/null
@@ -1,63 +0,0 @@
-intrinsics/repeated_use.wgsl:5:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:6:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:7:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec4<f32>(1., 2., 3., 4.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:9:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:10:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:11:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec3<f32>(1., 2., 3.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:13:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>());
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:14:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:15:9 warning: use of deprecated intrinsic
-    _ = isNormal(vec2<f32>(1., 2.));
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:17:9 warning: use of deprecated intrinsic
-    _ = isNormal(1.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:18:9 warning: use of deprecated intrinsic
-    _ = isNormal(2.);
-        ^^^^^^^^
-
-intrinsics/repeated_use.wgsl:19:9 warning: use of deprecated intrinsic
-    _ = isNormal(3.);
-        ^^^^^^^^
-
-@stage(compute) @workgroup_size(1)
-fn main() {
-  _ = isNormal(vec4<f32>());
-  _ = isNormal(vec4<f32>(1.0));
-  _ = isNormal(vec4<f32>(1.0, 2.0, 3.0, 4.0));
-  _ = isNormal(vec3<f32>());
-  _ = isNormal(vec3<f32>(1.0));
-  _ = isNormal(vec3<f32>(1.0, 2.0, 3.0));
-  _ = isNormal(vec2<f32>());
-  _ = isNormal(vec2<f32>(1.0));
-  _ = isNormal(vec2<f32>(1.0, 2.0));
-  _ = isNormal(1.0);
-  _ = isNormal(2.0);
-  _ = isNormal(3.0);
-}
diff --git a/test/unittest/reader/spirv/SpvLogicalTest_IsNan_Vector.spvasm.expected.hlsl b/test/unittest/reader/spirv/SpvLogicalTest_IsNan_Vector.spvasm.expected.hlsl
index 1c4f659..415f631 100644
--- a/test/unittest/reader/spirv/SpvLogicalTest_IsNan_Vector.spvasm.expected.hlsl
+++ b/test/unittest/reader/spirv/SpvLogicalTest_IsNan_Vector.spvasm.expected.hlsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-warning: use of deprecated intrinsic
+warning: use of deprecated builtin
 void main_1() {
   const bool2 x_1 = isnan(float2(50.0f, 60.0f));
   return;
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
index 6c40eda..7d514df 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.spvasm.expected.glsl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-warning: use of deprecated intrinsic
+warning: use of deprecated builtin
 #version 310 es
 precision mediump float;
 
@@ -92,7 +92,7 @@
 }
 Error parsing GLSL shader:
 ERROR: 0:43: '|' :  wrong operand types: no operation '|' exists that takes a left-hand operand of type ' global bool' and a right operand of type ' temp bool' (or there is no acceptable conversion)
-ERROR: 0:43: '' : compilation terminated 
+ERROR: 0:43: '' : compilation terminated
 ERROR: 2 compilation errors.  No code generated.
 
 
diff --git a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
index 4782e04..604dfed 100644
--- a/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
+++ b/test/vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl.expected.glsl
@@ -8,7 +8,7 @@
 type Arr_1 = @stride(16) array<f32, 1>;
               ^^^^^^
 
-vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl:39:22 warning: use of deprecated intrinsic
+vk-gl-cts/graphicsfuzz/cov-apfloat-module-small-number/0-opt.wgsl:39:22 warning: use of deprecated builtin
   let x_48 : bool = (isInf(x_44) || (x_46 == 1.0));
                      ^^^^^
 
@@ -118,7 +118,7 @@
 }
 Error parsing GLSL shader:
 ERROR: 0:32: '%' :  wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
-ERROR: 0:32: '' : compilation terminated 
+ERROR: 0:32: '' : compilation terminated
 ERROR: 2 compilation errors.  No code generated.